我尝试使用SpriteKit设计游戏,但我对单位有疑问。根据SpriteKit指南,它使用SI单位,我尝试编写一个射弹运动代码。根据{{3}}, T-Flight = 2 * V-YComp / g
我在我的代码中应用以下参数:
V-YComp = 20 m/sec
g = 10 m/sec^2
根据以上参数,T-Flight必须为4秒。
我使用以下行将速度应用于对象:
ball.physicsBody?.velocity = CGVectorMake(0, 20)
由于上面的代码,对象不会被抛出。
以下引自Xcode指南:
The physics body’s velocity vector, measured in meters per second.
有什么问题?
答案 0 :(得分:0)
您正在应用固定速度。
相反,你应该使用apply impulse:
[ball.physicsBody applyImpulse:CGVectorMake(0, 20)];
另外,请记住将其设置为动态,以便物理与您的精灵一起使用:
ball.physicsBody.dynamic = YES;