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
如果我了解你,你想限制一个设备在特定的时间内可以得到多少联系人?只需存储什么物体发生了碰撞并根据计时器进行检查。如果你需要知道最后一次击球的球是否存储了最后一次击球的对象指针。 –