2014-05-21 3 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]; 



    } 

시도 두 나는 그가 AKActions이 운동에 대한 나쁜했다 어디 LearnCocos2d에 의해이 게시물을 본 이후 코드를 변경 시도 .

Constant movement in SpriteKit

그래서 나는 또한 다음은이

을 시도 pushOn이의 마지막 비틀기를하고 약간의 도움을 싶어요 호 로 설정되어있는 경우에도 중지 나던 밀어.

가 0 힘을 가하면 당신이

-(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.velocity = CGVectorMake(0, 0); 

의 차이는 applyForce는 "벡터를 추가"작업의 역할을한다는 것입니다 대신

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

당신은 아마 속도 벡터를 제로로 원 :이 코드와 같이 당신은 기본적으로 몸을 떠난다 위의 행은 "세트 벡터"연산입니다.

+0

아 당신! 나는 또한 똑같은 힘을 똑같이 적용하면 반대 방향으로 힘을 가하는 것을 부정 할 수 있다는 생각을했습니다. 또한, 그러한 작업을 수행하기위한 조치를 사용하여도 괜찮습니까? –