嗨,我正在研究cocos2d游戏中某种具有风景和目标的射击游戏,你可以在真实的射击范围内拥有目标。对于子弹撞击我使用的粒子效果会影响屏幕上的某个点,当对目标产生影响时,它会播放简单的动画并落在地面上。我的游戏工作完美与矩形目标,但我也想使用真正的身体形状。因此,当粒子撞击身体时,它会下降。我想使用轮廓描绘的精灵,所以当粒子在腿之间或肩膀之间撞击时,头部射击失败。我使用此代码来检测粒子何时影响正常矩形目标的目标。
// Sustem是我的粒子(子弹) CGRect projectileRect = [enemy boundingBox];
if ( CGRectContainsPoint(projectileRect, system.position)) {
[enemy runAction:_walkAction];}
我尝试使用vertexHelper物理编辑器和其他工具但没有成功,我没有 希望碰撞检测仅在粒子位于某些跟踪点之间时运行某些动作
答案 0 :(得分:1)
我感觉到你的痛苦。没有简单的方法来检测非方形碰撞。你可以使用PhysicsEditor并按照Ray的教程: how to use box2d for just collision detection。我讨厌实现物理引擎的想法(在我看来,它是草率的),以便我可以使用非方形精灵。还有其他方法,比如bezier曲线,但在你的情况下(目标射击),我怀疑你需要尽可能多的精确度。 PhysicsEditor和box2d / chipmunk将提供。