2013-10-25 139 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]; 

的問題是,我的形狀有時候觸摸太小/很快。我怎樣才能使觸摸區域大於可見物體?

是否有這種事情的最佳做法?

非常感謝, 伊恩

回答

1

你可以繪製所需大小的播放器形狀的父母體形較大(或彩色精靈),並且使用完全透明的顏色。

但是,這有時會找到父級形狀,其他時候是實際形狀。所以你必須補償這一點。

+0

我試過了,它完美地工作。非常感謝。 – Ian