cocos2D仅在边缘形状上发生碰撞

时间:2011-11-29 15:12:16

标签: cocos2d-iphone collision-detection

我正在使用cocos2D开发iOS游戏。 我的游戏很简单,有关卡和旋转精灵。 精灵需要从水平的开始到结束而不会失去生命。

所以我有两种可能性:

1°)已经运作良好

  • 基于Tilemap的关卡,使用2D像素样式tilesets
  • 在英雄的精灵边界框的边缘进行自定义碰撞检测,以及瓷砖地图碰撞。

2°)更好的图形和更好的用户体验(没有物理,只有碰撞):

  • 基于矢量图形/ SVG
  • 的地图
  • 使用英雄的精灵形状边缘和地图进行碰撞检测

但是,我读了cocos2D / Box2D文档,我没有在精灵的形状边缘发现碰撞检测。这就像一个像素完美的碰撞(已经找到算法)。

我只想知道我的英雄形状的4个边缘中的一个是否与水平边界相撞,如果是,则哪个形状发生碰撞(因为我的精灵正在旋转)。

有人有想法吗?

非常感谢你的时间。

2 个答案:

答案 0 :(得分:2)

一个多边形应该通过夹具连接到你的英雄身上。 要检测碰撞点,请使用动态(英雄)和静态(墙)体之间的接触。

答案 1 :(得分:0)

只需将你的英雄形状划分为两半,找到英雄形状的像素宽度(半径),如果你的英雄和另一个精灵之间的距离等于或小于这个半径,则检测碰撞。