我是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