我有3個NPC,每個都有自己的圓形物理體模擬零重力彈跳球 - 更確切地說,彈跳球永不停止移動,因爲恢復原狀= 1.0; (彈性100%)摩擦= 0.0; (無摩擦)linearDampening = 0.0; (碰撞不會影響NPC)。如果這些NPC中的任何一個碰撞/接觸另一個,則它們的速度增加。他們開始移動的速度非常快,開始迫使關卡邊界/物理實體(據說非動態)實際上從衝擊轉向/移動。下面是我在更新方法中寫的if語句,用於保持這3個NPC的physicalBody.volocities在控制之下。有人可以看看並告訴我是否有更好的方法來做到這一點?我基本上希望所有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");
}
}
的確如此。謝謝。 – Krekin 2015-03-13 15:59:13
@Krekin - 不客氣。 – sangony 2015-03-13 16:01:50