Ios 停止对精灵施力
在我的spritekit游戏中,我致力于在游戏中应用风力。我以某种方式通过多种方式实现了这一点 我尝试的第一种方法是: 尝试一次 在这里的代码中,精灵是第一次按它应该做的那样按下,但是我不能让它停下来Ios 停止对精灵施力,ios,sprite-kit,Ios,Sprite Kit,在我的spritekit游戏中,我致力于在游戏中应用风力。我以某种方式通过多种方式实现了这一点 我尝试的第一种方法是: 尝试一次 在这里的代码中,精灵是第一次按它应该做的那样按下,但是我不能让它停下来 -(void)update:(NSTimeInterval)currentTime { NSLog(@" %d",_time); if (_time == 200 /* | _time==400 */ ) { [self startPush]; } -(void)
-(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充当“添加向量”操作,而上面的一行是“设置向量”操作。啊,是你!我还认为,如果我以相反的方式施加完全相同的力,它将否定现在施加在它身上的力。另外,使用操作来完成这样的任务可以吗?