Посмотрите на CGRectIntersectsRect .... Я не делал Cocos2D в течение ДЛИТЕЛЬНОГО времени, но я помню, как использовал Планировщик, чтобы регулярно вызывать метод, который обнаруживал бы коллизии, используя метод CGRectIntersectsRect
...
У меня было ограниченное количество спрайтов на экране, и на каждом проходе метода обнаружения столкновений я проверял бы, не пересекаются ли какие-либо из моих вражеских спрайтов с кадрами моего главного героя, используя CGRectIntersectsRect
.
Вот как я это сделал:
Шаг 1:
Реализуйте метод, который использует CGRectIntersectsRect , чтобы проверить, касаются ли рамки спрайта. Это может выглядеть примерно так:
- (BOOL)detectCollision
{
CGRect frame1 = someframe;
CGRect frame2 = anotherframe;
if(CGRectIntersectsRect(frame1, frame2))
return YES;
else
return NO;
}
Реализация планировщика для вызова метода обнаружения столкновений каждую секунду с помощью:
[self schedule: @selector(detectCollision) interval:0.25];
Таким образом, в вашей игре каждый раз, когда вызывается метод collisionDetect, вы можете обнаруживать столкновения. :)