Cocos2D вращение обнаружение столкновения спрайта - PullRequest
0 голосов
/ 10 марта 2011

Я получил 2 спрайта, шар и стрелу.стрелка не движется.шар вращается в точке привязки.

id rotate = [CCRotateBy actionWithDuration:.5 angle: 360];

Я хочу обнаружить столкновение, когда шар достигает стрелы.Пробовал CGRectIntersectsRect, но он не обнаруживает столкновения.Любая помощь?Спасибо ...

Ответы [ 3 ]

1 голос
/ 11 марта 2011

Возможно, вам не нужен этот ответ, но я бы использовал Box2D или Chipmunk и использовал приложение Vertex Helper для определения вершин.

0 голосов
/ 29 марта 2011

Возможно, вам потребуется преобразовать шар в мировое пространство в методе обновления, а затем вызвать его, а не положение шариков.Если он находится в родительском слое, позиция всегда будет статической относительно своего родителя.

0 голосов
/ 10 марта 2011

использовать метод столкновения окружность-круг .. вот метод ..

-(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
}

обратите внимание, что размер = радиус шара + радиус стрелки * радиус шара + радиус стрелки

описанный выше метод использует (квадрат) + b (квадрат) = c (квадрат) для проверки расстояния между двумя точками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...