当它与它碰撞时,将精灵粘在另一个上

时间:2012-04-22 21:27:55

标签: iphone xcode cocos2d-iphone sprite accelerometer

所以我有一个每秒创建的精灵,它在随机位置(sprite1)和另一个具有固定位置的sprite(sprite2)移动。我想当sprite1与sprite2碰撞时,sprite1就像粘在它上面一样(它停止移动并粘在它上面)。我该怎么办?对不起我的英语我是法国人:/

p.s:sprite2正在用加速度计旋转,所以如果sprite1与它碰撞,我希望它也会旋转:)

3 个答案:

答案 0 :(得分:0)

我想,您可以尝试使用box2d来执行此操作。它将有助于检测碰撞并管理旋转,移动等。

答案 1 :(得分:0)

我想,你可以在Cocos2d中完成。

1)首先使用CGRectMake(x,y,width,height)

为sprite1和sprite2设置rect

2)正如你所说,sprite1在随机位置移动并且sprite2固定在特定位置,你可以使用CGRectIntersectsRect([sprite1 bounds],[sprite2 bounds])检查它们是否发生碰撞。

3)如果它相交,请设置sprite1.position = sprite2.position

注意:你说sprite1正在旋转,rect只能适合常规的body。如果你想要更好的碰撞或精灵的物理属性,你可以去box2d。

答案 2 :(得分:0)

如果你不想使用Box2d(它可以处理圆形碰撞),你可以尝试这样的事情:

1。)检测碰撞,是两个圆心之间的距离(x,y),小于两个圆半径的总和。

2。)使Sprite1坚持Sprite2,停止Sprite1的移动,并将相对delta(x,y)保存到Sprite2,然后每当Sprite2移动或旋转时,将相同的delta移动和旋转应用于Sprite1。