敲击时避免精灵的冲击累积

时间:2014-03-20 19:47:36

标签: ios objective-c sprite-kit

我正在使用SpriteKit创建我的第一个iOS游戏,每次点击屏幕时我都会对我的精灵施加冲动,如下所示:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    _ball.physicsBody.velocity = CGVectorMake(0, 0);
    [_ball.physicsBody applyImpulse:CGVectorMake(0, 5)];
}

我试图避免在施加冲动之前将精灵速度设置为零的脉冲累积,但似乎无法正常工作。我也只是在它的速度为零时,通过这样做来有条件地冲动精灵,但它既不起作用。我做错了什么?。

1 个答案:

答案 0 :(得分:0)

你可以尝试:

 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
 {

    CGVector vecVelocity = _ball.physicsBody.velocity;

    if(vecVelocity.dx == 0 && vecVelocity.sx == 0) {

        [_ball.physicsBody applyImpulse:CGVectorMake(0, 5)];
    }

}