0
노드가 탭되었는지 여부를 감지하고 싶습니다. 나는 UIGestureRecognizer을 사용하고 있습니다 :SpriteKit : UILongPressGestureRecognizer가 자식 노드를 탭한 경우를 감지합니다.
let longPress = UILongPressGestureRecognizer()
longPress.minimumPressDuration = CFTimeInterval(0.0)
longPress.addTarget(self, action: #selector(self.longPressGesture(longpressGest:)))
self.view?.addGestureRecognizer(longPress)
그리고 호출되는 기능 :
@objc func longPressGesture(longpressGest: UIGestureRecognizer) {
let touchPos = longpressGest.location(in: self.view)
if atPoint(touchPos).name == "jump" {
print("jump")
}
}
내가이 도청 될 때 감지 할
내 버튼 :
let jump = SKSpriteNode(imageNamed: "Any")
jump = CGSize(width: self.size.width*0.06, height: self.size.height*0.08)
jump = CGPoint(x: self.size.width*0.05 - self.size.width/2, y: self.size.height*0.1 - self.size.height/2)
jump.zPosition = 2
jump.name = "jump"
cameraNode.addChild(jump)
Importend : 점프는 내 카메라 노드 노드입니다.
내 카메라 노드 :
self.camera = cameraNode
self.addChild(cameraNode)
let cameraNode = SKCameraNode()
let range = SKRange(constantValue: 0)
let cameraConstraint = SKConstraint.distance(range, to: player)
cameraNode.constraints = [cameraConstraint]
이 코드에서는 "점프"가 인쇄되지 않습니다. 터치 노드를 카메라 노드 나 점프 버튼 시스템과 같은 좌표계로 변환해야한다고 생각합니다. 내 질문 : 어떻게 뷰 좌표를 내 cameraNodes 좌표계로 변환 할 수 있습니까?
P. 나는 이미 작동하지 않는 전체 변환 함수를 시도했다. 어쩌면 내가 잘못했을 수도 있습니다.
라는 방법이있다. 이 오류 메시지가 나타납니다. ** 형식 'SKView 값을 변환 할 수 없습니다?' 'CGPoint '에 대한 예상 인수 형에 ** –
잘못된 값을 사용했습니다. – Knight0fDragon
이미이 도구를 사용해 보았습니다.이'convertPoint (fromView : longpressGest.location (self.view)) '와는 차이가 있습니까? 이게 당신이 쓴거야? –