2015-07-05 10 views
5

में कस्टम SKNodes का उपयोग करना मैं SKNode के अपने कस्टम उप-वर्गों का उपयोग करके एक स्तर बनाना चाहता हूं। मैंने दृश्य संपादक को एक एसकेएनओड जोड़ने की कोशिश की और "कस्टम क्लास" टैब का उपयोग करके उस वर्ग को दिया जो मैं चाहता हूं लेकिन यह बिल्कुल कुछ नहीं हुआ। नोड अभी भी खाली होगा और जब मैं सिम्युलेटर चलाता हूं तो कुछ भी नहीं दिखाया जाएगा। साथ ही, यह सुनिश्चित करने के लिए कि कक्षा वास्तव में काम करती है, मैंने यह देखने के लिए प्रोग्राम के दृश्य में इसका एक उदाहरण जोड़ा है कि यह दिखाता है या नहीं।spritekit दृश्य संपादक

दृश्य संपादक के माध्यम से दृश्य में मैं अपने कस्टम नोड्स कैसे जोड़ूं?

यहाँ मेरी कस्टम वर्ग कोड है:

class Player: SKSpriteNode { 
    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
     print("Test") 
     self.addChild(SKSpriteNode(imageNamed: "Player.png")) 
    } 
} 
+0

आप एक्सकोड 7 सही का उपयोग कर रहे हैं? –

+0

@ एपिकबाइट हां, मैं हूं। –

उत्तर

5

दो चीजें आप क्या करने की जरूरत है:

1) कस्टम वर्ग की स्थापना जब आप अपने ऐप का नाम के साथ वर्ग के नाम उपसर्ग के लिए है; उदाहरण के लिए My_App_Name.MyClass, जहां _ एक स्थान का प्रतिनिधित्व करता है।

2) आपके SKNode उप-वर्ग को required init?(coder aDecoder: NSCoder) लागू करने की आवश्यकता है।


उदाहरण के लिए, अपने प्रोजेक्ट में कहा जाता है 'MyGame':

enter image description here

class MyNode: SKSpriteNode { 
    // Set this after the node has been initaliser by init(coder:) 
    var someStat: Int = 0 

    required init?(coder aDecoder: NSCoder) { 
     super.init(coder: aDecoder) 
     // To check it worked: 
     print("Yup, all working") 
    } 
} 
+0

ठीक है, मैंने यह किया और मेरे कोडर इनिट में मैंने ग्राफ़िक के साथ नोड में एक SKSpriteNode जोड़ा, लेकिन फिर भी यह कोड के बिना मेरे दृश्य में दिखाई नहीं देगा। –

+0

हम ... यह अजीब है; यह निश्चित रूप से मेरे लिए काम कर रहा है। क्या आपने सफाई करने की कोशिश की है और फिर इसे फिर से चलाया है? आप किस प्रकार का नोड कस्टम वर्ग सेट करने की कोशिश कर रहे हैं? – ABakerSmith

+0

क्या आप अपने कस्टम उपclass से कोड पोस्ट करना चाहते हैं? –

0

मैं Xcode 8. में एक ही समस्या थी यह बेवकूफ लगता है, लेकिन एक कस्टम वर्ग लागू करने के लिए मुझे को चलाने से पहले .sks फ़ाइल को सहेजना पड़ा।

.sks फ़ाइलें स्वचालित रूप से सहेजी नहीं जाती हैं, पाठ फ़ाइलों या स्टोरीबोर्ड के विपरीत।

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