1
我寫一個遊戲,不斷的得分多少球都被打到 - 的想法是打儘可能多的。我正在使用Cocos2d和Box2d來進行物理和碰撞檢測。Box2D的 - 檢測單隻碰撞
的評分工作,但有時球最終將沿側對方移動,當這一切發生多次衝突記錄。理想情況下,我只希望爲每次真實碰撞記錄一次碰撞(即得分++)。
什麼是實現這一目標的最好方法,因爲我想將比分增加,如果兩個球擊中不止一次,但只有當他們真正發生碰撞,而不是刮對方一起。
即時通訊目前使用下面的代碼在我的蜱功能
//detect collisions
std::vector<MyContact>::iterator pos;
for(pos = _contactListener->_contacts.begin();
pos != _contactListener->_contacts.end(); ++pos) {
MyContact contact = *pos;
b2Body *bodyA = contact.fixtureA->GetBody();
b2Body *bodyB = contact.fixtureB->GetBody();
if (bodyA->GetUserData() != NULL && bodyB->GetUserData() != NULL) {
NSLog(@"Collision!");
score++;
[scoreLabel setString:[NSString stringWithFormat:@"Score: %d", score]];
}
}
感謝這個阿龍,我曾想過類似的東西自己,但無法弄清楚如何再從在那裏一個球擊中它的情況下數組中刪除碰撞,反彈那麼一堵牆再打同一個球場。對於這種情況的任何建議? – Chris
如果我瞭解你,你想限制一個設備在特定的時間內可以得到多少聯繫人?只需存儲什麼物體發生了碰撞並根據計時器進行檢查。如果你需要知道最後一次擊球的球是否存儲了最後一次擊球的對象指針。 –