在我的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)];
}
答案 0 :(得分:2)
施加零力相当于应用......没有。您使用此代码基本上离开了正文:
[_player.physicsBody applyForce:CGVectorMake(0, 0)];
相反,你可能想要将速度矢量归零:
_player.physicsBody.velocity = CGVectorMake(0, 0);
区别在于applyForce充当"添加向量"操作,而上面的行是一个"设置向量"操作