2011-11-30 5 views
0

그래서 개체를 빠르게 위로 이동시키는 방법이 있습니다. 코드는 내부에 :일정 시간 동안 메서드 실행

b2Vec2 force; 
force.Set(_body->GetLinearVelocity().x, _body->GetLinearVelocity().y+1.0f); 

for (b2Body* b = _game.world->GetBodyList(); b; b = b->GetNext()) 
{ 
    if (b->GetUserData() == character) 
    { 
     b->SetLinearVelocity(force); 
    } 
} 

코드는 중요하지 않습니다, 나는 그것이 어떤 y 지점에 도달하면 내가 몇 초 후에이 과정을 중지하거나 수있는 방법을 알고 싶어요. 때문에 atm 그것은 화면 밖으로 실행됩니다!

감사합니다. 몸의 y 위치가 임계 값보다 낮은 경우

답변

0

그냥 테스트 당신은 십자가에 못하지 않으 :

for (b2Body* b = _game.world->GetBodyList(); b; b = b->GetNext()) 
{ 
    if (b->GetUserData() == character && b->GetPosition().y < 300) 
    { 
     b->SetLinearVelocity(force); 
    } 
} 
+0

이봐, 실제로 그랬지 만 그 효과는 내가 원하는만큼 현실적인 것처럼 보이지 않습니다. 과일 닌자가 현실적으로 화면에 물건을 쏘는 방법은 어떤 생각입니까? 미리 감사드립니다. –

0

은 당신이 할 수있는 것은 정기적으로 코드가 선택기를 호출에 대한 nstimer을 만드는 것입니다 반복 모드로 설정하십시오. 이것은 영원히 계속 될 것입니다. 그래서 특정 시간이 지나면 그것을 멈추기 위해이 모든 것을 새로운 메소드에 넣고 그 메소드를 새로운 nstimer 내부에서 호출하십시오.

기본적으로 타이머가 타이머 안에 있습니다.

관련 문제