2014-05-21 89 views
0

在我的精靈套件遊戲中,我正在爲我的遊戲應用風力。我以某種方式實現了這一點。停止對精靈施加力

我嘗試的第一個方法是這樣的: 嘗試一個 在這個代碼在這裏的精靈先推,因爲它應該,但我不能讓它太停止。

-(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設置爲 號很想在此做最後的調整一些幫助犯規甚至停止。

謝謝

-(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)]; 
     } 

回答

2

應用零力相當於應用...什麼都沒有。你基本上離開身體與此代碼:

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

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

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

不同的是,applyForce充當「添加矢量」操作,而上面的行是一個「set vector」操作。

+0

啊你呢!我還想到,如果我以相反的方式應用完全相同的力量,現在就會否定施加在其上的力量。另外,使用動作來完成這樣的任務可以嗎? –