अच्छा ...
मैं आपको pygame लाइब्रेरी के साथ अपना अनुभव बताना और दिखाना चाहता हूं, जो कि अजगर में ग्राफिकल एप्लिकेशन (ज्यादातर आर्केड गेम्स) को लागू करने के लिए एक उत्कृष्ट लाइब्रेरी है। उदाहरण के लिए, (आंशिक रूप से) कामचोर कूद खेल को लागू किया गया था।
त्याग
- हां, मैंने अन्य लोगों के चित्रों का उपयोग किया - मुझे शर्म आती है और मैं इसे जल्द ही ठीक कर दूंगा।
- चरित्र अब केवल कूद सकता है, लेकिन मैं खेल को अंत तक खत्म करने की योजना बना रहा हूं।
- हां, यह विचार नया नहीं है, लेकिन यह अच्छा निकला।
- हां, सबसे अधिक संभावना बकवास है - खेल लिखने के लिए एक व्याख्या की गई भाषा का उपयोग करने के लिए।
- मैं एक पेशेवर प्रोग्रामर नहीं हूं और यह मेरी मुख्य गतिविधि नहीं है।
शुरू करने के बजाय
अजगर। प्रलेखन के मामले में अजगर महान है। वह है, वह समझ में आता है, वह उत्कृष्ट उदाहरणों के बिना नहीं है। Pygame कोई अपवाद नहीं है, इसलिए मेरा सुझाव है कि इस लाइब्रेरी के कार्यान्वयन के विवरण पर ध्यान न दें, लेकिन यह ध्यान दिया जाना चाहिए कि इसके उपकरण आपको एक छवि लोड करने की अनुमति देते हैं, और बस इसे x और y के चारों ओर ले जाते हैं। और कुछ नहीं।
आर्किटेक्चर
हम
OOP की सर्वश्रेष्ठ परंपराओं में एप्लिकेशन आर्किटेक्चर को विकसित करने का प्रयास करेंगे। हमारे पास निम्न वर्ग आरेख हैं:
एमवीसी मॉडल के समर्थक पहले से ही रो रहे हैं क्योंकि और तर्क और प्रतिनिधित्व वर्ग के शरीर में जोर देते हैं।
हमारे 3 स्थान हैं:
- StartLocation - मेनू और गेम का निमंत्रण यहां घूम रहा है।
- GameLocation - विषय ही।
- निकास - उत्पादन, परिणाम, धूमधाम- ovations।
मूल स्प्राइट ऑब्जेक्ट जिससे सभी गेम ऑब्जेक्ट विरासत में मिले हैं - प्लेटफ़ॉर्म, बटन, मुख्य चरित्र, आदि। योजना के अनुसार, सब कुछ स्पष्ट है।
मुख्य बिंदु
घटनाक्रम
def event(self, event): if event.type == QUIT: sys.exit() elif event.type == KEYUP: if event.key == K_ESCAPE:
घटना तंत्र का उपयोग करते हुए, कीस्ट्रोक्स और माउस जोड़तोड़ पारदर्शी रूप से बाधित होते हैं।
छवि
self.img_l = pygame.image.load('img/doodle_l.png').convert() self.image = self.img_l self.image.set_colorkey(self.image.get_at((0,0)), RLEACCEL) self.rect = self.image.get_rect() self.rect.center = (self.x,self.y)
हम स्प्राइट्स के लिए चित्र लोड करते हैं।
संघर्ष
self.doodle.getLegsRect().colliderect(spr.getSurfaceRect())
कोलाइडर विधि सही साबित होती है अगर आयतें स्प्राइट्स प्रतिच्छेद को दर्शाती हैं।
स्क्रीनशॉट की एक जोड़ी


टूडू
- गेमप्ले का काम करें
- नए स्प्राइट्स ड्रा करें
- ध्वनियाँ जोड़ें
- आंकड़े जोड़ें
- सही प्लेटफॉर्म लोकेशन एल्गोरिदम
- तीर नियंत्रण जोड़ें
और क्या?
एक आफ्टरवर्ड के बजाय
Pygame के साथ अधिग्रहण को पूरा माना जा सकता है, डोडर कूदता है और जीवन का आनंद लेता है, लेकिन एक ही समय में प्रोसेसर लोड 50-70% तक हो जाता है, जो एक चर्चा नहीं है। यह क्या है,
govnokod खराब अनुप्रयोग वास्तुकला या भाषा की विशेषताएं - आप तय करते हैं। आपका ध्यान देने के लिए धन्यवाद।
गीथूब पर सूत्र।