2011-11-30 69 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它已經不在屏幕上了!

問候。

回答

0

只是測試,如果身體的y位置低於閾值,你不希望它跨:

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中調用該方法。

所以基本上是一個計時器內的計時器。

相關問題