【发布时间】:2015-03-13 15:31:17
【问题描述】:
我有 3 个 NPC,每个都有自己的圆形物理体,旨在模拟零重力下的弹力球 - 更准确地说,弹力球由于恢复原状而永不停止移动 = 1.0; (弹性 100%)摩擦力 = 0.0; (无摩擦)linearDampening = 0.0; (碰撞不会影响 NPC)。如果这些 NPC 中的任何一个与另一个 NPC 发生碰撞/接触,则它们的速度会增加。它们开始移动得如此之快,以至于它开始迫使水平边界/物理体(据说是非动态的)实际上从冲击中移动/移动。以下是我在更新方法中编写的 if 语句,以控制这 3 个 NPC 的物理体速度。有人可以看看并告诉我是否有更好的方法吗?我基本上希望所有 3 个 NPC 的最大速度/移动速度在任何时候都不能超过。
-(void)update:(CFTimeInterval)currentTime
{
/* Called before each frame is rendered */
//Track ball velocities.
if (_npcRed.physicsBody.velocity.dx > 1000 || _npcRed.physicsBody.velocity.dy > 1000)
{
NSLog(@"RED's moving too fast; lowering velocity");
_npcRed.physicsBody.velocity = CGVectorMake(500, 500);
}
else
{
NSLog(@"RED's at stable speed");
}
if (_npcBlue.physicsBody.velocity.dx > 1000 || _npcBlue.physicsBody.velocity.dy > 1000)
{
NSLog(@"BLUE's moving too fast; lowering velocity");
_npcBlue.physicsBody.velocity = CGVectorMake(500, 500);
}
else
{
NSLog(@"BLUE's at stable speed");
}
if (_npcGreen.physicsBody.velocity.dx > 1000 || _npcGreen.physicsBody.velocity.dy > 1000)
{
NSLog(@"GREEN's moving too fast; lowering velocity");
_npcGreen.physicsBody.velocity = CGVectorMake(500, 500);
}
else
{
NSLog(@"GREEN's at stable speed");
}
}
【问题讨论】:
标签: objective-c ios8 sprite-kit skphysicsbody