2008-10-01 15 views
5

के लिए मैंफ्लैश: चल छोरों धीमी

एक टाइल खेल में मैं एक पूरे के स्तर की एक मिनी नक्शा बना रही हूँ फ्लैश में छोरों बारे में एक प्रश्न .... की है। जिस तरह से यह नक्शा प्रस्तुत करता है वह लूप के लिए दूसरे में लूप के साथ एक फ़ंक्शन है। यह प्रत्येक टाइल स्थिति के माध्यम से चक्र बनाता है और एक नक्शा टुकड़ा (मूल रूप से एक 3x3 पिक्सेल वर्ग) संलग्न करता है जो टाइल के अनुसार रंगीन होता है। वैसे भी, मेरी समस्या यह है कि जब स्तर 50x50 टाइल्स की तरह बड़ा हो जाता है तो मैप रीडरिंग हमेशा के लिए लेता है (3 सेकंड तक)। क्या इसको ठीक करने का कोई तरीका है? या मिनी-मैप करने का दूसरा तरीका है ?? यदि स्तर कभी बड़ा हो जाता है तो यह 10 सेकंड की तरह लग सकता है!

किसी भी मदद की सराहना की जाती है!

धन्यवाद, मैट

+0

क्या आप कोड उदाहरण पोस्ट कर सकते हैं? क्या यह एएस 2 या एएस 3 है? – defmeta

उत्तर

0

यह छोरों खुद को चलाने के लिए, लेकिन क्या, वास्तव में, आप प्रत्येक लूप के अंदर कर रहे हैं के लिए लंबे समय से नहीं लेना चाहिए? मानचित्र के टुकड़े को जोड़ने और रंगने के लिए ऑपरेशन क्या हैं?

-Adam

+0

मैं मानता हूं, यह धीमा हो जाएगा कि कई ऑब्जेक्ट्स लेकिन 3 सेकंड शीर्ष पर थोड़ा सा है। – grapefrukt

3

फ्लैश टाइल्स को तेज़ी से प्रस्तुत नहीं करता है। ग्राफिक्स को संग्रहीत करना बहुत अच्छा है जो बफर में नहीं बदलते हैं और जल्दी ही इस बफर को तुरंत प्रदर्शित करते हैं। मंच पर बच्चे के रूप में जोड़े जाने वाले प्रत्येक ग्राफिक्स ऑब्जेक्ट (या स्प्राइट) को स्वतंत्र रूप से प्रस्तुत किया जाना चाहिए।

आपकी समस्या फ़्लैश है हर फ्रेम 50x50 = 2500 टाइल्स खींचना है! भले ही वे 3x3 पिक्सल हों, फिर भी फ्लैश उन्हें अलग-अलग ऑब्जेक्ट्स के रूप में मानता है।

यह अच्छा होगा अगर आप सब कुछ एक बफर में या एक ऑब्जेक्ट में स्टोर कर सकते हैं और इसे प्रदर्शित कर सकते हैं। इसलिए एकाधिक ऑब्जेक्ट्स के बजाय एक ही ऑब्जेक्ट में इन 3x3 टाइल्स को चित्रित करने का प्रयास करें। हालांकि यह आपकी कार्यक्षमता में बाधा डाल सकता है क्योंकि पूरे ऑब्जेक्ट को प्रत्येक फ्रेम को फिर से प्रस्तुत करना होगा।

कुछ अन्य सुझाव ऑब्जेक्ट को ग्रिड पर बड़ी कोशिकाओं में प्रस्तुत करना हो सकता है। 50x50 होने के बजाय, 10x10 के साथ शुरू करें और फिर प्रत्येक सेल में 5x5 कोशिकाओं को खींचें। यह शायद चीजों को गति देगा।

उम्मीद है कि इससे मदद मिलती है। अगर आपको कोई अच्छा समाधान मिल जाए तो कृपया पोस्ट करें!

1

हां। लूप में बिल्कुल लंबा समय नहीं लगता है। लेकिन प्रत्येक पुनरावृत्ति में मैं लाइब्रेरी से मूवीक्लिप संलग्न कर रहा हूं। वैसे यह एंटरफ्रेम पर ऐसा नहीं कर रहा है, बस जब उपयोगकर्ता रोकें (स्पेस) दबाता है।

1

सबसे अधिक संभावना है (जैसा कि यहां बताया गया है) आपका लूप धीमा है। 0-2500 की गिनती वास्तव में तेज़ है लेकिन यदि आप प्रत्येक पुनरावृत्ति में भारी गणना कर रहे हैं तो यह जोड़ देगा। बेशक कोड को देखे बिना हम आपकी मदद नहीं कर सकते हैं। जबकि आप उसी लूप को चिकनी चलाने के लिए चाल कर सकते हैं (जैसे इसे कई फ्रेमों पर चलाना) लेकिन यदि यह 3sec लूप है तो शायद आप इसे अनुकूलित करने के लिए बहुत कुछ कर सकते हैं - शायद उस सीमा तक जहां यह पर्याप्त चिकनी चलती है , ताकि यह एक बहुत लंबा hickup का कारण नहीं होगा।

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