2017-02-04 3 views
2

Я хочу запустить функцию, когда SpriteNodes находятся в одном положении. Для этого я создал вспомогательный метод как это:событие триггера, когда 2 SpriteNodes находятся в том же положении

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") 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^