2014-10-12 11 views

Trả lời

0

Bạn sẽ cần phải so sánh vị trí của Touch của bạn đến vị trí của SKNode bạn

Bạn có thể có được vị trí của liên lạc của bạn theo một trong các phương pháp sau, sử dụng locationInNode():

  • touchesBegan()
  • touchesMoved()
  • touchesEnded()
+1

một số chi tiết khác – user3138007

1

Kiểm tra SceneKitVehicle bản demo của Apple. Ai đó vui lòng ported it to Swift.

Mã bạn muốn có trong tệp GameView.swift. Trong GameView bạn sẽ thấy ghi đè touchesBegan. Đây là phiên bản của tôi cho Swift 2.1:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    guard let scene = self.overlaySKScene else { 
     return 
    } 

    let touch = touches.first! 
    let viewTouchLocation = touch.locationInView(self) 
    let sceneTouchPoint = scene .convertPointFromView(viewTouchLocation) 
    let touchedNode = scene.nodeAtPoint(sceneTouchPoint) 

    if (touchedNode.name == "Play") { 
     print("play") 
    } 
} 

Nếu không rõ; GameView được đặt làm lớp xem của ứng dụng theo cách của Bảng phân cảnh.

Các vấn đề liên quan