- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 spriteKit (objective-C) 构建一个应用程序,我正在使用 intersectsNode 来判断玩家绘制的线条是否与游戏板上的字母拼贴碰撞。我的程序中有另一个运行良好的 intersectsNode 实例,但由于某种原因,这个新场景总是返回 false。我已经检查了参数,spriteKit 唯一说的是确保它们都是同一棵树的 child ,它们肯定是(自己)。一个是 SKSpriteNode,另一个是 SKShapeNode。
if (directionIsDecided == TRUE) {
for (letterTile in letterTileArray) {
if ([letterTile intersectsNode:selectorLine]) {
[lettersToBeCalculatedForPoints addObject:letterTile];
}
}
}
希望我没有忽略一些愚蠢的事情......任何可能导致此函数永远不会返回 true 的想法?
*编辑
好吧,我认为这与我画线的方式有关。我对其进行了更改,以便它检测到与板上产生的元音的碰撞,每个元音都是 letterTile 的子级,现在它告诉我所有元音都与 selecorLine 发生碰撞,即使它没有触及任何元音他们。
这就是我创建 selectorLine 的方式:
实现:
CGMutablePathRef pathToDraw;
SKShapeNode *selectorLine;
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;
TouchesMoved:
UITouch* touch = [touches anyObject];
CGPoint positionInScene = [touch locationInNode:self];
CGPathAddLineToPoint(pathToDraw, NULL, positionInScene.x, positionInScene.y);
selectorLine.path = pathToDraw;
感谢任何和所有的想法,谢谢!
最佳答案
我一直在通过使用 CGRectIntersectsRect
在我的代码中解决这个问题对于 SKShapeNode
边界矩形交点。
使用 CGRectIntersectsRect
你的代码看起来像:
if (directionIsDecided == TRUE) {
for (letterTile in letterTileArray) {
if (CGRectIntersectsRect(letterTile.frame, selectorLine.frame)) {
[lettersToBeCalculatedForPoints addObject:letterTile];
}
}
}
关于ios - intersectsNode 未检测交叉点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20672905/
我正在使用 spriteKit (objective-C) 构建一个应用程序,我正在使用 intersectsNode 来判断玩家绘制的线条是否与游戏板上的字母拼贴碰撞。我的程序中有另一个运行良好的
我在 iOS8.3 上使用 iOS SpriteKit Game Swift 模板。我正在尝试使用函数 func intersectsNode(_ node: SKNode) -> Bool 来检测创
我正在构建一个有点糟糕的平台游戏,我正在尝试检测一个节点的部分是否与另一个节点的部分位于同一位置。我将使用方法: func intersectingNode(node: SKNode) -> SKNo
我是一名优秀的程序员,十分优秀!