小编Mad*_*ark的帖子

intersectsNode未检测到交集

我正在使用spriteKit(objective-C)构建一个应用程序,我正在使用intersectsNode来判断玩家绘制的线条是否与游戏板上的字母图块发生碰撞.我的程序中有另一个intersectsNode实例正常工作,但由于某种原因,这个新方案总是返回false.我已经检查了参数,spriteKit说的唯一一件事就是确保它们都是同一棵树的孩子,他们肯定是(自己).一个是SKSpriteNode,另一个是SKShapeNode.

if (directionIsDecided == TRUE) {
    for (letterTile in letterTileArray) {
        if ([letterTile intersectsNode:selectorLine]) {
            [lettersToBeCalculatedForPoints addObject:letterTile];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

希望我不会忽略一些愚蠢的东西......任何可能导致此功能永远不会返回真实的想法?

*编辑

好吧,我认为这与我如何画线有关.我改变了它,因此它检测到与板上产生的元音碰撞,每个元音都是letterTile的孩子,现在它告诉我所有元音都与selecorLine相撞,即使它没有接触任何元音线.他们.

这就是我创建我的selectorLine的方式:

执行:

    CGMutablePathRef pathToDraw;
    SKShapeNode *selectorLine;
Run Code Online (Sandbox Code Playgroud)

的touchesBegan:

   UITouch* touch = [touches anyObject];
   CGPoint positionInScene = [touch locationInNode:self];

   pathToDraw = CGPathCreateMutable();
   CGPathMoveToPoint(pathToDraw, NULL, positionInScene.x, positionInScene.y);

   selectorLine = [SKShapeNode node];
   selectorLine.path = pathToDraw;
   selectorLine.strokeColor = [SKColor greenColor];
   selectorLine.lineWidth = 10;
   [self addChild:selectorLine];
   selectorLine.zPosition = 101;
Run Code Online (Sandbox Code Playgroud)

TouchesMoved:

    UITouch* touch = [touches anyObject];
    CGPoint positionInScene = [touch locationInNode:self];
    CGPathAddLineToPoint(pathToDraw, NULL, positionInScene.x, …
Run Code Online (Sandbox Code Playgroud)

objective-c ios ios7 sprite-kit

3
推荐指数
1
解决办法
2971
查看次数

标签 统计

ios ×1

ios7 ×1

objective-c ×1

sprite-kit ×1