मैं मूल रूप से C64 खेल के विकास के मूल आधार का पता लगाने की कोशिश कर रहा हूं, और मैं कुछ बुनियादी, लेकिन महत्वपूर्ण चीजों पर कुछ सलाह का उपयोग कर सकता हूं: वास्तव में स्क्रीन पर वह सब क्या है, और इसे कैसे खींचना है?
काताकिस / डेनारिस पर एक नज़र डालें :
स्क्रीन पर कम से कम 9 अलग-अलग चीजें हैं:
- अलग-अलग फोंट के साथ स्कोर बार
- जहाज ही
- जहाज से जुड़ा एक उपग्रह, वियोज्य
- माध्यमिक हथियार प्रोजेक्टाइल
- प्राथमिक हथियार प्रोजेक्टाइल
- मूविंग ऑब्जेक्ट्स (दुश्मन जहाज हो सकते हैं)
- स्थिति पट्टी, जहाज की एक छवि, जीवन की संख्या और तीन खंड जो भर सकते हैं
- प्राथमिक हथियार चार्ज बार, अंत तक भर सकता है
- पृष्ठभूमि में एक स्क्रॉल स्टारफील्ड
- (स्क्रीन पर क्रमांकित नहीं) ठोस वस्तुएं जैसे चट्टानें या धातु की दीवारें जो पृष्ठभूमि का हिस्सा हैं
C64 केवल 8 स्प्राइट प्रति क्षैतिज स्कैन लाइन का समर्थन करता है, इसलिए मुझे नहीं लगता कि स्क्रीन के बीच में सब कुछ स्प्राइट हो सकता है? मुझे लगता है कि टक्कर की आवश्यकता के लिए कुछ भी एक स्प्राइट होगा (क्योंकि मैं स्प्राइट के साथ हार्डवेयर टकराव का पता लगा सकता हूं), लेकिन फिर भी मैं जल्दी से 8 स्प्राइट्स की सीमा मारा। इसके अलावा, मेरे हथियार एक प्रक्षेप्य से अधिक आग लगा सकते हैं - मेरा जहाज, उपग्रह और 6 गोलियां पहले से ही एक पंक्ति में 8 स्प्राइट होंगी (वीडियो में लगभग 50 सेकंड देखें)।
इसके अलावा, कौन सा ग्राफिक्स मोड इस तरह के गेम का उपयोग करेगा? प्रोग्रामिंग हैंडबुक बिट मैप मोड को सूचीबद्ध करता है जो अनिवार्य रूप से सीधे स्क्रीन मेमोरी को संशोधित करता है। क्या यह वह विधा है जिसमें मुझे आमतौर पर काम करना चाहिए? मैं सभी गैर-स्प्राइट तत्वों को एक साथ स्क्रीन पर लाने के लिए कैसे बनाऊंगा?
स्कोर और स्टेटस बार में बहुत सारा सामान स्टैटिक है ("एरिया: 01" या "फ्रेम"), इसलिए मुझे लगता है कि जब स्तर शुरू होगा तो मैं उन्हें सिर्फ एक बार पॉपुलेट करूंगा। जिन चीज़ों को अपडेट करने की ज़रूरत है - स्कोर, सबसे नीचे वाली चार्ज बार - स्क्रीन को काली के साथ मेमोरी को भरने और फिर नए स्कोर को अपने फ्रेम में ड्रा करके अपडेट किया जाएगा?
या क्या मुझे हर फ्रेम पर पूरी स्क्रीन खींचनी है?