匀速移动球
我试着做一盒球,球在那里匀速运动。它们互相碰撞时不应该减速。我想我已经设置好了所有的属性,但它没有工作,30秒后所有的球停止移动。
盒子设置如下:
self.physicsBody = SKPhysicsBody(edgeLoopFromRect: self.frame)
self.physicsBody.dynamic = false
self.physicsBody.restitution = 1
self.physicsBody.friction = 0
球设置如下:
这是物理引擎的错误还是我遗漏了什么?
最佳答案
如果你想让它们一直有一个恒定的速度,没有任何变化,你必须在skscene更新中将它们的速度设置为一个固定长度的向量。物理引擎并不是严格按照能量守恒定律设计的…或者有人会争辩说一些能量是通过加热设备而消散的。;)
保持相同方向但将矢量长度/速度调整为固定值的一般原则(伪代码):
CGPoint velocity = somePhysicsBody.velocity;
velocity = normalized(velocity);
velocity = multiply(velocity, desiredSpeed);
somePhysicsBody.velocity = velocity;