停止对精灵施加力

时间:2014-05-21 13:09:18

标签: ios sprite-kit

在我的spritekit游戏中,我正在努力对我的游戏施加类似强力的风。我已经以某种方式实现了这一点。

我尝试的第一种方式是: 尝试一次 在这段代码中,精灵首先被按下,但是我不能把它停下来。

-(void)update:(NSTimeInterval)currentTime {

   NSLog(@" %d",_time);
  if (_time == 200 /* | _time==400 */ ) {

  [self startPush];


  }
    -(void)startPush
    {

      SKAction *startPush = [SKAction runBlock:^{
        [_player.physicsBody applyForce:CGVectorMake(50, 0)];
      }];


      SKAction *wait = [SKAction waitForDuration:1];
      SKAction *stopPush = [SKAction runBlock:^{

     //   [_player.physicsBody applyForce:CGVectorMake(-50, 0)];
        [_player.physicsBody applyForce:CGVectorMake(0, 0)];


      }];
      SKAction *sequence = [SKAction sequence:@[startPush, wait,stopPush]];
      [self runAction:sequence];



    }

尝试两次 我试图改变我的代码,因为我在LearnCocos2d看到这篇文章,他说AKActions不利于动作。

Constant movement in SpriteKit

所以我试过这个

即使pushOn设置为No,推送也不会停止。 在这方面做最后的调整会有所帮助。

谢谢

-(void)update:(NSTimeInterval)currentTime {

   NSLog(@" %d",_time);
  if (_time == 200 /* | _time==400 */ ) {


    windOn=NO;
  }else  if (_time==300)
{
pushOn=NO;
}

  if (pushOn)
  {

      {

        [_player.physicsBody applyForce:CGVectorMake(0.1, 0)];
      }

1 个答案:

答案 0 :(得分:2)

施加零力相当于应用......没有。您使用此代码基本上离开了正文:

[_player.physicsBody applyForce:CGVectorMake(0, 0)];

相反,你可能想要将速度矢量归零:

_player.physicsBody.velocity = CGVectorMake(0, 0);

区别在于applyForce充当"添加向量"操作,而上面的行是一个"设置向量"操作