0

嗨,我正在开发 cocos2d 游戏,这是一款带有风景和目标的射击游戏,您面前的目标就像在真实的射击场中一样。对于子弹撞击,我使用粒子效果,在屏幕上的某个点撞击,当撞击目标时,它会播放简单的动画并落在地上。我的游戏非常适合矩形目标,但我也想使用真实的身体形状。所以当粒子撞击身体时它会掉下来。我想使用轮廓跟踪精灵,所以当粒子在腿之间或肩膀之间撞击时,头部射击失败。我使用此代码来检测粒子何时撞击正常矩形目标的目标。

//Sustem 是我的粒子(bullet) CGRect projectileRect = [enemy boundingBox];

if ( CGRectContainsPoint(projectileRect, system.position)) {
    [enemy runAction:_walkAction];}

我尝试使用 vertexHelper 物理编辑器和其他工具但没有成功,我不希望碰撞检测仅在粒子位于某些跟踪点之间时运行某些动作

4

1 回答 1

1

我感觉到你的痛苦。没有简单的方法来检测非方形碰撞。您可以使用 PhysicsEditor 并遵循 Ray 的教程: 如何使用 box2d 进行碰撞检测。我讨厌实现物理引擎的想法(在我看来,这是草率的),以便我可以使用非方形精灵。还有其他方法可以解决它,例如贝塞尔曲线,但在您的情况下(目标射击),我怀疑您将需要尽可能高的准确性。PhysicsEditor 和 box2d/chipmunk 将提供该功能。

于 2012-12-10T03:02:35.553 回答