匀速移动球
我试着做一盒球,球在那里匀速运动。它们互相碰撞时不应该减速。我想我已经设置好了所有的属性,但它没有工作,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;

10-08 09:14
查看更多