2014-10-12 9 views
8

में ऑब्जेक्ट के बच्चे नोड पर स्पर्श का पता लगाएं मेरे पास एक कस्टम क्लास है जो एक एसकेएनोड है, जिसके बदले इसमें कई SKSpriteNodes हैं। क्या मेरे पास इस खेल के दृश्य से इन बच्चों के एसकेएसप्रेट नोड्स पर छूने का कोई तरीका है?SpriteKit

मैं तेजी से

उत्तर

0

आप

आप स्थान प्राप्त कर सकते हैं अपने SKNode के स्थान पर अपने टच के स्थान की तुलना करनी होगी locationInNode():

  • का उपयोग करके निम्न विधियों में से किसी एक पर अपने स्पर्श का touchesBegan()
  • touchesMoved()
  • touchesEnded()
+1

कुछ और विवरण कृपया – user3138007

1

की जांच एप्पल के SceneKitVehicle डेमो। कृपया कोई ported it to Swift

जो कोड आप चाहते हैं वह गेमView.swift फ़ाइल में है। GameView में आप स्पर्श देखेंगेगन ओवरराइड। स्विफ्ट 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") 
    } 
} 

यदि यह स्पष्ट नहीं है, तो इसका मेरा संस्करण यहां है; GameView को स्टोरीबोर्ड के माध्यम से ऐप के व्यू क्लास के रूप में सेट किया गया है।

संबंधित मुद्दे