如何在Spritekit中检测一个节点是否指向另一个节点

问题描述

我创建了两个节点,一个节点包含四个线段和一个旋转杆。当用户触摸屏幕时,我要检测栏是否指向正确的颜色或错误的颜色。

我尝试检查节点之间的距离,但是钢筋的位置没有变化,并且距离始终相同。我不确定我缺少什么。

enter image description here

我正在这样创建圆和条

Bar
    colorBar = createImage()
    changeColor()
    colorBar!.colorBlendFactor = 1.0
    colorBar!.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width: 50,height: 300))
    colorBar!.physicsBody?.affectedByGravity = false
    colorBar!.position = CGPoint(x: self.frame.midX,y: self.frame.midY)
    colorBar!.anchorPoint = CGPoint(x: 0.5,y: 1.0)
    colorWheel!.addChild(colorBar!)

圆圈

    for i in 0...3 {
        let section = SKShapeNode(path: path.cgPath)
        section.fillColor = colors![i]
        section.strokeColor = colors![i]
        section.name = colorNames[i]
        section.zRotation = rotationFactor * CGFloat(i);
        container.addChild(section)
    }

解决方法

不是将一个图像用作圆,而是将图像分为4个节点,并分别为所有节点分配一个物理体。这样,您可以检测到颜色栏节点是否正在触摸特定的颜色节点。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...