Ios 停止对精灵施力

Ios 停止对精灵施力,ios,sprite-kit,Ios,Sprite Kit,在我的spritekit游戏中,我致力于在游戏中应用风力。我以某种方式通过多种方式实现了这一点 我尝试的第一种方法是: 尝试一次 在这里的代码中,精灵是第一次按它应该做的那样按下,但是我不能让它停下来 -(void)update:(NSTimeInterval)currentTime { NSLog(@" %d",_time); if (_time == 200 /* | _time==400 */ ) { [self startPush]; } -(void)

在我的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];



    }
尝试两次 我试图改变我的代码,因为我看到了LearnCos2D的这篇文章,他说动作不利于动作

所以我试过这个

在这里,即使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)];
      }

施加零力相当于施加。。。没有什么。你基本上是让身体保持原样的代码:

[_player.physicsBody applyForce:CGVectorMake(0, 0)];
相反,您可能希望将速度向量归零:

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

不同之处在于applyForce充当“添加向量”操作,而上面的一行是“设置向量”操作。

啊,是你!我还认为,如果我以相反的方式施加完全相同的力,它将否定现在施加在它身上的力。另外,使用操作来完成这样的任务可以吗?