2010-02-15 13 views
18

मैंने एंड्रॉइड के लिए एक गेम लिखा है, और मैंने इसे डेव फोन 1 पर परीक्षण किया है। यह पूरी तरह से काम करता है, गति ठीक है। हालांकि, मुझे यकीन है कि फोन सीपीयू तेजी से बढ़ रहे हैं। वे पहले से ही देव फोन से तेज हो सकते हैं।एंड्रॉइड गेम लूप, गति और फ्रेम दर को नियंत्रित करने के लिए कैसे करें

मैं कैसे सुनिश्चित कर सकता हूं कि मेरा गेम बिल्कुल उसी गति से चलता है चाहे डिवाइस कितना तेज़ हो या कितनी तेज़ हो? क्या आप किसी भी तकनीक के बारे में जानते हैं? क्या मुझे हर बार लूप के शीर्ष पर किसी प्रकार का टाइमर जांचना चाहिए?

मुझे लगता है कि मैं फ्रेम दर का जिक्र कर रहा हूं - लेकिन ज्यादातर गति जिस पर मेरा गेम मुख्य गेम लूप के माध्यम से चलता है।

कोई सिद्धांत या अनुभव बहुत अच्छा होगा! धन्यवाद।

+3

कुछ देखने के लिए बस: गेम के लिए, कभी-कभी नए फोन धीमे होते हैं। मेरे पास एक ओपनजीएल गेम है जो मैं काम कर रहा हूं, जी 1 पर 60 एफपीएस करता है, लेकिन एक Droid पर केवल 30-40 एफपीएस है। रेंडरर Droid पर अलग है और इसमें उच्च रिज़ॉल्यूशन स्क्रीन भी है, जो प्रदर्शन को नुकसान पहुंचाती है। –

उत्तर

15

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

हालांकि, यह अकेले सर्वोत्तम संभव परिणाम नहीं लेता है क्योंकि अंतराल फ्रेम के बीच थोड़ा भिन्न हो सकता है। इस मुद्दे पर एक बहुत अच्छा लेख है: http://gafferongames.com/game-physics/fix-your-timestep/

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

+0

धन्यवाद, यह आलेख एक महान खोज है और जो मैंने पहले से बनाया है उस पर एक आसान कार्यान्वयन है। –

+0

+1 धन्यवाद @lauri जो लिंक आपने दिया है, उसने मुझे बहुत मदद की .. –

+0

क्या आपने "इंटरपोलेशन" भाग भी लागू किया था? –

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