Mad*_*ark 3 objective-c ios ios7 sprite-kit
我正在使用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, positionInScene.y);
selectorLine.path = pathToDraw;
Run Code Online (Sandbox Code Playgroud)
任何和所有的想法都表示赞赏,谢谢!
我一直在用工作围绕这在我的代码CGRectIntersectsRect的SKShapeNode边框交叉.
使用CGRectIntersectsRect您的代码看起来像:
if (directionIsDecided == TRUE) {
for (letterTile in letterTileArray) {
if (CGRectIntersectsRect(letterTile.frame, selectorLine.frame)) {
[lettersToBeCalculatedForPoints addObject:letterTile];
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2971 次 |
| 最近记录: |