2015-08-27 5 views
5

मैं डेमोबॉट्स उदाहरण के माध्यम से काम कर रहा हूं और इसे सभी उपकरणों पर काम करने में बहुत परेशानी है।SKAction (नाम :) को विश्वसनीय तरीके से काम करने के लिए कैसे प्राप्त करें?

https://developer.apple.com/library/prerelease/ios/samplecode/DemoBots/Introduction/Intro.html

वर्तमान समस्या मैं आ रही है कि एक iPad मिनी पर एप्लिकेशन लॉन्च होने लेकिन क्रैश एनिमेशन लोड हो रहा है। यह लाइन है कि एक फ़ाइल से एक कार्रवाई को लोड करता है पर AnimationComponent.swift में दुर्घटनाओं:

let bodyAction: SKAction? 
if let name = bodyActionName { 
    // crash here 
    bodyAction = SKAction(named: name) 
} 
else { 
    bodyAction = nil 
} 

एप्लिकेशन डिबगिंग पता चलता है कि इसकी एक SKAction "ZappedShake" कहा जाता है लोड करने की कोशिश लेकिन सीमा अपवाद से बाहर एक सरणी के साथ दुर्घटनाग्रस्त।

आईफोन 5 एस पर यह ठीक चलता है। मेरा सबसे अच्छा अनुमान है कि तेजी से आईफोन 5 एस के साथ इसकी दौड़ की स्थिति फ़ाइल को धारावाहिक क्रिया के साथ लोड कर रही है, और जब तक निष्पादन इस बिंदु तक पहुंच जाता है तो कार्रवाई उपलब्ध होती है। लेकिन एकल कोर पुराने आईपैड पर फ़ाइल अभी तक लोड नहीं हुई है और कॉल विफल हो गई है।

दोनों असली हार्डवेयर आईओएस 9 13 ए 4325 सी चल रहे हैं, जो एक्सकोड संस्करण 7.0 बीटा 4 (7 ए 165t) पर संकलित हैं।

समस्या को और अधिक कठिन बनाना यह है कि मैं नहीं देख सकता कि फ़ाइल "ZappedShake" - ReferenceActions.sks - वास्तव में लोड की गई है। इसका संदर्भ रेफरेंससेन.स्क द्वारा किया जाता है लेकिन परियोजना में कहीं भी किसी भी कोड या कहीं भी नहीं, मैं देख सकता हूं कि फ़ाइल को संदर्भित किया जा रहा है।

क्या एसकेएक्शन के लिए कुछ प्रकार का नाम सम्मेलन जादुई फ़ाइल लोडिंग तंत्र है? यह आईफोन 5 एस पर क्यों काम करता है, न कि आईपैड पर?

अद्यतन: यह यहाँ के बारे में अधिक मिला: http://asciiwwdc.com/2015/sessions/604

इसके अलावा इस वर्ष हम संदर्भित और instancing पर जोर दिया। हम जानते हैं कि आप अपने गेम के लिए उच्च गुणवत्ता वाली सामग्री और एनिमेशन तैयार करने में काफी समय व्यतीत करते हैं और हम चाहते हैं कि आप उस सामग्री को फिर से उपयोग करें जहां आप चाहें।

हम आपको अपने नोड्स और आपके कार्यों के लिए धारावाहिक डेटा फ़ाइलों को बनाने की अनुमति दे रहे हैं और फिर उन्हें अपने दृश्य में लोड करने के बजाय संदर्भ के रूप में जोड़ सकते हैं।

इस तरह, हर बार जब आप स्रोत संपत्ति कि स्वचालित रूप से अपने खेल की सामग्री में परिलक्षित होता है में बदलाव करते हैं।

मैं इसे नोड्स के लिए कैसे कर सकता हूं? नोड्स के लिए मैं अपने दृश्य का हिस्सा, शायद एक पृष्ठभूमि तत्व, या हमारे संपादक में एक एक्सकोड के साथ कुछ दृश्यों का डिज़ाइन करता हूं और फिर मैं उन फ़ाइलों को एक्सकोड में अपने मुख्य दृश्य में खींच और छोड़ सकता हूं और यह स्वचालित रूप से एक संदर्भ बना देगा और यह सब आपके लिए तैयार है।

आप कोड आप अच्छी तरह से कर सकते हैं के रूप में में ऐसा करना चाहते हैं, तो आप मैन्युअल रूप से एक SKReferenceNode, निर्माण कर सकते हैं यह एक फ़ाइल नाम या यहां तक ​​कि एक URL और जब उस सामग्री को पहले अपने खेल में प्रस्तुत किया है हम में लोड कर देंगे आवंटित वह सामग्री आपके बंडल में मौजूद फ़ाइल के नवीनतम संस्करण के आधार पर। हम कार्यों के लिए भी वही काम कर सकते हैं। कार्रवाइयों के साथ हमारे महान नए एक्शन एडिटर को देखें और एक्सकोड में कार्रवाइयों को बनाने और लिखने से परे आप उन्हें सभी नाम दे सकते हैं।

ये नाम आपके गेम में उनका उपयोग करने की कुंजी हैं।हमने एक्शन नामांकित एसकेएक्शन के लिए एक चयनकर्ता जोड़ा है। यह ठीक है जैसे यह SKTexture और textureNamed के लिए करता है।

आप जो भी कार्य चाहते हैं उसके नाम पर आप पास करते हैं। हम सभी सीरियलाइज्ड एक्शन फाइलों में अपने ऐप बंडल के अंदर स्वचालित रूप से देखने जा रहे हैं, उचित नाम वाले एक को ढूंढें और उसके बाद उस एप्लिकेशन को सतह पर रखें।

यह बहुत अच्छा लगता है लेकिन मुझे इस पर कोई दस्तावेज नहीं मिल रहा है, या यह गलत होने पर इसे डीबग करने का तरीका पता लगाना है।

उत्तर

0

DemoBots खेल जब Xcode संस्करण 7.0 बीटा 6 (7A192o) के साथ संकलित मज़बूती से चलाने के लिए लगता है।

एक ताजा Xcode की स्थापित के साथ एक अलग मशीन (मेरे घर लैपटॉप) का उपयोग करना समस्या दूर चला जाता है। मैं यह भी ध्यान रखें पहली बार मैंने कोशिश की वहाँ थे कि कुछ मामूली सुधारों मैं नाम बदलने के रूप में ऐसी करना पड़ा संकलन CGPoint.zeroCGPoint.zeroPoint जो मुझे लगता है कि घंटी है कि संस्करण विरोध के कुछ प्रकार था चेतावनी लग रहा था होना चाहिए था करने के लिए। इस बार ताजा स्थापित करने के साथ यह संकलित और बॉक्स से बाहर भाग गया।

मैं अभी भी पूरी तरह से समझ में नहीं आता संदर्भ कार्यों उठाया जा रहा है कि कैसे लेकिन कम से कम मैं अब तो मैं बस वहाँ काम कर कोड नकल कर सकते हैं Demobots के कई काम कर संस्करण है।

1

यह आप नहीं है, यह आईओएस है। https://forums.developer.apple.com/thread/17267

प्रयास करें: 32-बिट उपकरणों को प्रभावित करने कार्रवाई संदर्भ के साथ एक बग एप्पल डेवलपर के मंच पर इस सूत्र के अनुसार, नहीं है

यह समस्या आईओएस 9.2 बीटा 1 में तय किया गया है (iPad मिनी की तरह।) सिम्युलेटर में हाल ही में 64-बिट डिवाइस (जैसे आईफोन 6) पर चल रहा है। या आईओएस 9.2 बीटा 1 में अपने आईपैड मिनी को अपग्रेड करने का प्रयास करें या समस्या को ठीक करने के लिए बस अगले आईओएस रिलीज की प्रतीक्षा करें।

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

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