iOS 中具有权重的(物理)字符串

发布于 2025-01-03 03:31:47 字数 179 浏览 0 评论 0原文

我想在 iOS 中实现一个带有权重的(物理)字符串,它对加速度计输入做出反应并与视图边界发生碰撞。

在此处输入图像描述

最简单的方法是什么?我宁愿避免使用像 Box2D 这样的外部框架,除非本机解决方案太复杂。

I'd like to implement a (physical) string with a weight in iOS, that reacts to accelerometer input and colides against the view bounds.

enter image description here

What is the simplest way to do this? I would prefer to avoid using external frameworks like Box2D, unless of course a native solution is too complicated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

居里长安 2025-01-10 03:31:47

如果你需要它在重力作用下加速并在到达边缘时真实地弹跳,你需要使用物理框架(除非你想拿出一本物理书并自己做方程),因为 UIKit 中没有内置这样的框架。

我建议您尝试 Chipmunk 而不是 Box2D。我发现 Cocoa 更容易使用,因为它是纯 C 而不是 C++。它还有一个 Objective-C 包装器,但开发人员对其收费(纯 C 库是免费的)。

这是我整理的简单的 iPhone 花栗鼠物理示例

它使用加速计和 UIKit 进行绘图 - 只需用您自己的对象替换板条箱即可。 (加速度计在模拟器中不起作用,您必须在手机上尝试)。

更新:现在你已经添加了图像,我意识到你的意思是绳子上的鲍勃(我以为你的意思是落在屏幕周围的 UILabel,哈哈!)。这是另一个示例,其中包含板条箱之间的系绳。如果你使用这个加上 Chipmunk 文档 你应该能够弄清楚该怎么做。

您需要将绳子的一端连接到一个静态物体,或者一个具有无限质量的物体(不包括在我的示例中)。

如果您想要一个真实的字符串,则需要将其分解为几个短约束,而不是一个长约束,但如果您对物理库没有太多经验,我建议您从简单的开始。

If you need it to accelerate under gravity and bounce realistically when it hits the edge, you'll need to use a physics framework (unless you feel like getting out a physics book and doing the equations yourself) as there's nothing like that built into UIKit.

I'd recommend you try Chipmunk instead of Box2D. I've found it easier to use with Cocoa as it's pure C and not C++. It also has an Objective-C wrapper, but the developer charges for it (the plain C library is free).

Here's a simple iPhone Chipmunk physics example I put together.

It uses the accelerometer and UIKit for drawing - just replace the crates with your own objects. (The accelerometer doesn't work in the simulator, you'll have to try it on a phone).

UPDATE: now you've added the image I realise you mean a bob on a string (I thought you meant a UILabel that falls around the screen, lol!). Here's another example that includes a tether between crates. If you use this plus the Chipmunk docs you should be able to figure out what to do.

You'll need to attach one end of the string to a static object, or one with infinite mass (not included in my example).

If you want a realistic string, you'll need to break it up into several short constraints instead of just one long one, but I suggest you start simple if you've not got much experience with physics libraries.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文