检查SKSpriteNode何时通过某个点或线

时间:2015-12-11 01:38:30

标签: swift sprite-kit skspritenode

在我的游戏中,有一个SKSpriteNode,我们称之为" gate,"在场景中向上移动。当门到达屏幕顶部时,它会向下移动到底部并再次向上行进。

玩家失败的方式是,位于场景顶部的恒定y位置的角色与门碰撞。我有碰撞和死亡'一切顺利,但现在我需要检查角色是否成功通过'通过'大门(意思是大门移过角色而没有击中他)。 基本上,我需要知道如何检查一个移动节点何时越过某个y位置(在这种情况下,该位置是角色的y位置)。如果发生这种情况,我想将分数提高一个。

以下是情况的草图: (click here for the rough sketch)

我尝试过的一件事是在更新方法中,如果门的y位置等于角色的y位置,我知道两个节点已经交叉,所以我应该增加分数。它看起来像这样:

override func update(currentTime: CFTimeInterval) {
    if gate.position.y == character.position.y {
        print("score")
        score++

    }
}

但似乎不起作用。还有其他方法可以检查大门何时越过角色的位置?

谢谢!

1 个答案:

答案 0 :(得分:0)

可能发生的是y坐标不一样。例如,如果> y<-Matrix(c(1,2,1,2),2,2) > sin(y) 2 x 2 Matrix of class "dgeMatrix" [,1] [,2] [1,] 0.8414710 0.8414710 [2,] 0.9092974 0.9092974 > sin(y) Error in match(x, table, nomatch = 0L) : object '.Generic' not found gate.position.y = 100,它将无效。试试这个:

character. position.y = 101

您可以调整数字10以查看最佳效果。希望这有帮助