संपादित करें: यह अब मुझे बहुत अधिक समझ में आता है कि मैंने कोड से एक कदम दूर किया है, मदद के लिए धन्यवाद।जे 2 एमई "टर्न-आधारित" गेम के लिए Gameloop
बस कोडिंग डरावनी के माध्यम से दूसरे दिन ढेर अतिप्रवाह पाया और यह शानदार लग रहा है। चित्रा कि मैं समुदाय को एक समस्या के बारे में पूछूंगा जिसे मैं वर्तमान में काम करने की कोशिश कर रहा हूं।
मैं मध्य 2.0 फोन के लिए j2me का उपयोग कर एक roguelike sortof खेल विकसित कर रहा हूँ। यह परियोजना अभी भी विकास के बुनियादी चरणों में है क्योंकि मुझे पता चलता है कि यह कैसे काम करेगा। जिस हिस्से में मैं वर्तमान में फंस गया हूं उसे थ्रेडिंग के साथ करना है।
इस गेम में एक कस्टम HaxCanvas
वर्ग है जो GameCanvas और कार्यान्वयन को चलाने योग्य बनाता है। यह रन विधि कॉल repaint() और फिर 50 एमएस के लिए सोता है, जिसके परिणामस्वरूप 20 एफपीएस की फ्रेम दर होती है। यह मुझे बाकी के खेल को हर जगह पेंट करने के बिना लिखने की अनुमति देता है और बाद में एनिमेशन और प्रभावों को आसान बनाना चाहिए। (कम से कम सिद्धांत में)।
खेल का प्रवाह गेममैनेजर क्लास द्वारा नियंत्रित होता है, जो मानचित्र पर सभी एनपीसी के माध्यम से लूप करता है, जब तक यह खिलाड़ी की बारी न हो जाए, तब तक उनके मोड़ लेते हैं। इस बिंदु पर मुझे खिलाड़ी को स्थानांतरित करने और/या चीजों पर हमला करने की अनुमति देने के लिए इनपुट प्राप्त करने की आवश्यकता है। मैं मूल रूप से HaxCanvas
की keyPressed
विधि में gameManager.runUntilHeroTurn()
पर कॉल कर रहा था। हालांकि j2me सिस्टम थ्रेड पर पढ़ने के बाद मुझे एहसास हुआ कि कॉलबैक में थोड़ी देर के लिए चलाने की क्षमता के साथ एक विधि डालना एक बुरा विचार है। हालांकि मुझे इनपुट हैंडलिंग करने के लिए कुंजी दबाया जाना चाहिए, क्योंकि मुझे संख्या कुंजी तक पहुंच की आवश्यकता है, और getKeyStates()
इसका समर्थन नहीं करता है।
सोफार मेरे गैमेलोप को अपने स्वयं के धागे में रखने के मेरे प्रयासों के कारण आपदा हुई है। एक अजीब "बेकार ArrayIndexOutOfBoundsException" बिना किसी स्टैक ट्रेस के खेल दिखाता है जब गेम कई मोड़ों के लिए चलाया जाता है।
तो मैं लगता है मेरे सवाल यह है:
एक J2ME में खेल "आधारित बारी", क्या खेल पाश लागू करने के लिए सबसे अच्छा तरीका है इनपुट केवल handeling जब यह खिलाड़ी की बारी है के लिए अनुमति देता है, के लिए?
वैसे, अच्छा सवाल। +1 – Fostah