所以我有一个每秒创建的精灵,它在随机位置(sprite1)和另一个具有固定位置的sprite(sprite2)移动。我想当sprite1与sprite2碰撞时,sprite1就像粘在它上面一样(它停止移动并粘在它上面)。我该怎么办?对不起我的英语我是法国人:/
p.s:sprite2正在用加速度计旋转,所以如果sprite1与它碰撞,我希望它也会旋转:)
答案 0 :(得分:0)
我想,您可以尝试使用box2d来执行此操作。它将有助于检测碰撞并管理旋转,移动等。
答案 1 :(得分:0)
我想,你可以在Cocos2d中完成。
1)首先使用CGRectMake(x,y,width,height)
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。