2017-05-18 3 views
1

제 목표는 SpriteKit 레이블 노드에서 UITouch가 발생했는지 확인하는 것입니다. 보기는 SKView입니다. 내가 사용하고있는 코드의 문제점 (아래)은 터치와 사각형이 다른 좌표계에있는 것처럼 보입니다.UITouch가 SKLabelNode 프레임 내에 있는지 확인하십시오.

이 문제를 해결하기 위해 간단한 수학을 사용할 수 있지만이 문제를 해결할 수있는 간단한 방법이 있습니까? 아니면 제가해야 할 또 다른 방법이 있습니까?

+0

'startButton'은 터치를받는 뷰에 직접 포함되어 있습니까? –

답변

2

장면 내에서 touchesBegan을 무시한다고 가정합니다. 그렇다면 let position = t.location(in: self)을 사용해보세요. 즉 viewself으로 바꿉니다. 그렇게하면 장면을 유지하는 뷰 내의 위치가 아닌 장면 자체 내의 위치를 ​​얻을 수 있습니다.

희망 하시겠습니까?

+0

이것은 정답입니다 ... – Whirlwind

+0

나는이 경우'보기'와'자기 '가 같을 것이라고 생각했지만 분명히 오해했습니다. 이 특별한 경우에'view'와'self'의 차이점은 무엇입니까? – Taylor

+0

기본적으로 장면의 원점 (이 경우'self ')은 왼쪽 아래 구석이고'view'는 원점이 왼쪽 상단 구석에 있습니다. 따라서 '위치'에 긍정적 인 y는 장면 좌표를 사용하여 "화면에 올라가십시오"는 것을 의미합니다. 'position'에 대한 같은 y 값은 뷰 좌표를 사용하여 "화면 아래로"이동한다는 것을 의미합니다. – JohnV

관련 문제