我是Objective-C的新手。我目前正在使用Cocos2D和Box2D进行游戏。我的问题是当3个物体碰撞在一起时,游戏崩溃。现在让我详细描述我的游戏:如何在Box2D中同时检测三个物体之间的碰撞?
在我的游戏中,我有一个站在建筑物顶部的主角。在大楼下面有这条路。敌人从道路以各种随机速度从右边进入屏幕并从左边退出。我创造了敌人b2_kinematicBodies
,并使用SetLinearVelocity()
为他们每个人设置了随机速度。主角射击敌人。射弹(被射击的物体)是b2_dynamicBody
。当射弹击中敌人时,射弹和敌人都被毁灭。在游戏过程中,有时以较低的速度移动的敌人越过以较高的速度移动的敌人。如果一个弹丸在两个敌人重叠时击中两个敌人,另一个则要通过另一个,那么游戏就会崩溃!请帮我解决一下这个。
我使用b2contactListener
类检测到碰撞。
我之前没有提到过的一件事是,我并没有将敌人创造为个体独特的身体。相反,我曾经创造它,使之移动,我打电话里面的init这个方法(它创建的敌人,并使其移动)如下:
[self schedule:@selector(addRightTarget) interval:2.0];
我不明白你的意思是“铸成错误的课堂”。请原谅我,因为我对objective-c是新手,实际上是编程本身。我已经摧毁了我的碰撞检测功能中的物体。不幸的是,当应用程序崩溃时,我没有得到异常文本。 – 2011-03-27 09:30:57
通常我的敌人不会相互碰撞(反弹)。我认为这是因为我将它们创建为运动机构。相反,速度较快的人会穿过另一个(速度较慢的人),就好像另一个人不存在一样! 顺便说一句,我真的很感谢你的帮助我!谢谢! – 2011-03-27 09:33:17
就运动机构而言,它们不会相互碰撞。 – Tayyab 2011-03-31 11:45:48