2017-02-04 36 views
2

我想在SpriteNodes位于相同位置时触发一个函数。 对于我创建一个辅助方法是这样的:触发事件,当2个SpriteNode位于相同位置时

func checkPositions(){ 
    if taxiNode.position.x == passenger.position.x { 
     print("same position") 
    } 
} 

我触发这个函数从SpriteKit循环的更新功能中。我可以看到节点处于相同的位置,但打印语句从不显示在屏幕上。

任何想法我做错了什么? 或者,如果这些节点位于相同的位置,那么类似的方法会如何,这有助于我发现?

我有用一如既往的帮助......

+0

我觉得position.y也比较 – Ram

+0

是的,我这样做也行,不过这并不帮助:-() – boehmatron

回答

3

当比较两个CGFloat你可以使用:

public func isEqual(to other: CGFloat) -> Bool 
换句话说

,你可以这样做:

func checkPositions(){ 
    if taxiNode.position.x.isEqual(to: passenger.position.x) { 
     print("same position") 
    } 
} 

加法

如果要比较两个CGPoint还有:

public func equalTo(_ point2: CGPoint) -> Bool 

使用

let point: CGPoint = CGPoint.zero 
let destination: CGPoint = CGPoint.zero 
if point.equalTo(destination) { 
    print("same position") 
} 
相关问题