SpriteKit物理学在方向上应用了脉冲

时间:2014-07-26 13:54:02

标签: sprite-kit physics

我正在使用spriteKit-s物理引擎。我在屏幕上有2个物体(比如玩家和敌人)。现在我试图对敌人使用applyImpulse方法,它应该将它拉向玩家。

CGFloat radians = [Utilites pointPairToBearingDegrees:self.enemy.position 
                                          secondPoint:self.player.position];
CGVector vector = CGVectorMake(500*cosf(radians), 500*sinf(radians));
[self.enemy.physicsBody applyImpulse:vector];

然而,这会在奇怪的方向上施加力量。根本不一致。任何人都知道为什么?

聚苯乙烯。弧度正确计算!!!

由于

1 个答案:

答案 0 :(得分:3)

试试这个......

CGFloat dx = self.player.position.x - self.enemy.position.x;
CGFloat dy = self.player.position.y - self.enemy.position.y;

CGFloat mag = sqrt(dx*dx+dy*dy);

CGVector vector = CGVectorMake(dx/mag*kImpulseScale, dy/mag*kImpulseScale);
[self.enemy.physicsBody applyImpulse:vector];