2013-10-25 3 views
1

Я создаю мой игрок так:Spritekit/UIBeziers: Обнаружение касаний/nodeAtPoint

UIBezierPath *pPath = [UIBezierPath bezierPathWithArcCenter:CGPointMake(0, 0) 
                radius:10 
               startAngle:0 
                endAngle:DEGREES_TO_RADIANS(360) 
                clockwise:YES]; 
_player = [[SKShapeNode alloc] init]; 
_player.path = pPath.CGPath; 
[_player setFillColor:[UIColor blueColor]]; 
[_player setStrokeColor:[UIColor clearColor]]; 
_player.position = arenaCentre; 
_player.zPosition = 1; 
_player.name = @"player"; 

Я тогда обнаружить штрихи на этот объект с помощью:

SKSpriteNode *touchedNode = (SKSpriteNode *)[self nodeAtPoint:touchLocation]; 

Проблема заключается в том, что моя форма иногда слишком маленький/быстрый. Как я могу сделать зону касания более крупной, чем видимый объект?

Есть ли наилучшая практика для такого рода вещей?

Большое спасибо, Ian

ответ

1

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

Однако это иногда может найти родительскую форму, а также другую фактическую форму. Поэтому вы должны это компенсировать.

+0

Я пробовал, и он отлично работает. Большое спасибо. – Ian

Смежные вопросы