При использовании Cocos проще всего сделать круги CCSprites и затем реагировать на прикосновения к этим спрайтам, используя этот метод в вашем слое:
-(BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event{
Затем итерируйте свои спрайты, используя общую технику, подобную этой:
isTouchHandled= CGRectContainsPoint([sprite boundingbox], [[CCDirector sharedDirector] convertToGL:[touch locationInView: [touch view]]]);
Если isTouchHandled
- ИСТИНА, тогда вы можете делать то, что вам нужно, с этим спрайтом или чем-то еще.
Обратите внимание, что вы можете использовать этот метод либо в самом слое, либо в подклассе спрайта, и в зависимости от того, что вы выберете, вы должны зарегистрировать узел с диспетчером касания, указав его в init
или где-то еще:
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:NO];