我正在 iOS 7 上使用 sprite 工具包编写一个 2D 球类游戏,目前正在努力进行一个物理模拟。
解释一下预期的行为:如果一个球被扔进茶杯,它会绕着圈转,速度变慢,最后停在茶杯的中央。
我试图用重力来存档这个,但是 sprite kit 中的重力只适用于垂直的 X 和 Y 轴,而不适用于 Z 轴。我还尝试通过在 beginContact 上根据球在茶杯中的当前位置切换小物理体的重力值来使用水平重力。但是一些联系人被删除,结果看起来很不真实。
我想我需要在 update: 方法中解决这个问题,但我不知道该走哪条路。 非常欢迎任何建议,我需要说明我不是数学专家,请解释您的前进道路。 :-)
最佳答案
由于在 SpriteKit 中没有对这种行为的内置支持,与其试图破解现有函数来获得你想要的东西,不如在你的 x,y 2D 世界中集成一些已发布的 2D 物理公式可能会更好.我认为模拟磁性或归巢行为之类的东西可能适合此目的。
一个简单的例子是这样的(在场景的 -update: 方法中):
CGFloat strength = 0.5; //(some scaling value)
CGPoint ballLocation = ball.position;
CGPoint cupLocation = cup.position;
[ball.physicsBody applyForce:CGVectorMake((cupLocation.x - ballLocation.x) * strength,
(cupLocation.y - ballLocation.y) * strength)];
关于ios - 如何使用 Sprite Kit 在 2D 游戏中模拟 z 轴的重力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21228604/