我有两个精灵,球和箭。箭头没有移动。球在它的锚点上旋转。
id rotate = [CCRotateBy actionWithDuration:.5 angle: 360];当球到达箭头时,我想要检测碰撞。已尝试使用CGRectIntersectsRect,但未检测到冲突。有什么帮助吗?谢谢..。
发布于 2011-03-11 06:55:18
你可能不想要这个答案,但我会使用Box2D或花栗鼠,并使用顶点助手应用程序来指定顶点。
发布于 2011-03-10 10:57:03
使用圆-圆碰撞方法..下面是方法..
-(float)asbs:(CGPoint)_arrowPos ballPos:(CGPoint)_ballPos
{
float x = _arrowPos.x-_ballPos.x;
float y = _arrowPos.y-_ballPos.y;
float xy = x*x+y*y;
return xy;
}
if([self asbs:arrow.position ballPos:ball.position]<=size)
{
//collision
}请注意,尺寸=球半径+箭头半径*球半径+箭头半径
上面的方法是使用a(正方形)+b(正方形)=c(正方形)来检查两点之间的距离。
发布于 2011-03-29 04:04:01
您可能需要在update方法中将球转换为世界空间,然后调用它而不是球的位置。如果它位于父层中,则相对于其父层的位置将始终是静态的。
https://stackoverflow.com/questions/5254698
复制相似问题