繁体   English   中英

Spritekit / UIBeziers:检测触摸/ nodeAtPoint

[英]Spritekit / UIBeziers: Detecting touches / 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];

问题是我的形状有时太小/太快而无法触摸。 如何使触摸区域大于可见对象?

对于这种事情是否有最佳实践?

非常感谢,伊恩

您可以绘制所需大小的较大形状(或彩色图片)作为播放器形状的父级,并使用完全透明的颜色。

但是,有时会找到父形状,而有时会找到实际形状。 因此,您必须对此进行补偿。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM