2012-06-29 8 views
5

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

A screen from JADE by Thomas Biskup क्या कोई स्पष्ट तरीका है कि आप इस तरह के बारे में कुछ करेंगे? जावा में नया होने के नाते, मुझे वास्तव में पता नहीं है कि सबसे अच्छी विधि क्या होगी।

अस्पष्ट होने के लिए खेद है!

धन्यवाद

+4

टेक्स्ट-मोड के बजाए एक स्विंग जीयूआई एप्लीकेशन लिखें। यह बहुत आसान साबित होगा, और एक सुंदर परिणाम के साथ। –

+2

जावा यूनिकोड का उपयोग करता है, ASCII नहीं। सावधान रहे। –

+0

धन्यवाद, मैं अब स्विंग में देख रहा हूँ। क्या कोई स्विंग विंडो संपादक है जो एक्लिप्स के साथ काम करता है? जो कुछ मुझे लगता है वह प्राचीन –

उत्तर

4

JDK में ऐसी कोई (सरल) घटक नहीं है - अगर आप रंग की जरूरत नहीं है, एक JTextArea प्रदर्शित करने के लिए ASCII-कला (एक निश्चित-चौड़ाई फ़ॉन्ट सेट करने के बाद) का इस्तेमाल किया जा सकता है। आपको सावधान रहना होगा कि अक्षर संबंधी मुद्दों में भाग न लें (यदि आप यूएस-एएससीआईआई 7-बिट तक नहीं टिकते हैं)। रंगीन डिस्प्ले को संभालने वाला एक घटक लिखना (और हो सकता है कि अनुक्रम से बचें, संक्षेप में कंसोल विंडो को अनुकरण करें) बहुत कठिन नहीं होगा, लेकिन अगर आपने जावा के साथ शुरुआत की है तो यह एक अनचाहे चुनौती साबित हो सकती है।

आप जावा में अपना गेम भी लिख सकते हैं और सिस्टम कंसोल में ASCII प्रदर्शित करना छोड़ सकते हैं (आपका गेम स्टडआउट के लिए आसान आउटपुट होगा)।

संपादित करें: रंगीन ASCII को आपके आंतरिक प्रारूप को (सरल) HTML में परिवर्तित करके प्राप्त किया जा सकता है और HTML को जेएलएबल का उपयोग करके प्रदर्शित किया जा सकता है। यह शायद सबसे सुरुचिपूर्ण विधि नहीं है, लेकिन इसे लागू करने के लिए उचित रूप से सरल होना चाहिए (और आजकल हार्डवेयर की गति के साथ इस दृष्टिकोण के साथ कोई मुद्दा नहीं होना चाहिए)। यह दृष्टिकोण उस क्षमता पर बनाता है जिसे आप केवल JLabel.setText() का उपयोग कर सकते हैं और एक HTML टैग के साथ शुरू होने वाली स्ट्रिंग पास कर सकते हैं। जेएलएबल तब पूरे पाठ को एचटीएमएल के रूप में व्याख्या करता है।

+0

मैं कहने जा रहा था (पहले दो पैराग्राफ पढ़ने के बाद), क्या मैं सिर्फ एक मोनोस्पेस्ड फ़ॉन्ट का उपयोग नहीं कर सकता और इसे एचटीएमएल के साथ प्रारूपित नहीं कर सकता और इसे जेएलएबल में डाल सकता हूं .. एक चीज जिसे मैं टालना चाहता हूं वह पेंट फ्लिकर हो रहा है, मैं पहले एक ही नियंत्रण में सबकुछ प्रदर्शित करते समय उस समस्या में भाग गया है, पहले कभी जावा में ऐसा करने की कोशिश नहीं की। मैं झुकाऊंगा और देखूंगा कि मैं किसके साथ आ सकता हूं। धन्यवाद! –

2

Trystan के Ascii Panel, और उसके ब्लॉग और ट्यूटोरियल को roguelike here बनाने पर देखें।

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

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