我正在编写一个小游戏。为此,我需要一些墙。因此我使用了:
Wall[w] = [[SKShapeNode alloc] init];
Wall[w].path = WallPos[w];
Wall[w].lineWidth = 4;
Wall[w].strokeColor = [UIColor whiteColor];
Wall[w].zPosition = 3;
[self addChild: Wall[w]];
Wall 是一个 SKShapeNodes 数组,在@interface 中设置,所以我可以在每个方法中使用它。WallPos 包含 CGMutablePathRefs。在 TouchesBegan 和 TouchesMoved 中,我调用了一个方法来检查您是否触摸过其中一堵墙。我还有一些 SKShapeNodes,它们是矩形,为了检查它们是否被触摸,我使用过
if ([SomeShape containsPoint: Position] {
//Do some stuff
}
但是用一条线它不起作用。有时我正在触线,但什么也没有发生。然后我看到了这个:Detecting Touch on SKShapeNode that is a Line,我试图这样做:
for (int i = 0; i < NrWalls; i++) {
if (CGRectContainsPoint(Wall[i].frame, Position)) {
[self GameOver];
}
}
但是现在我触摸的每一个点都给我设置了一个“游戏结束”!
有没有人有想法,我怎么能检查线是否被触摸?
谢谢你的帮助!
DXXL