Pygame पर कामचोर कूद

अच्छा ...
मैं आपको pygame लाइब्रेरी के साथ अपना अनुभव बताना और दिखाना चाहता हूं, जो कि अजगर में ग्राफिकल एप्लिकेशन (ज्यादातर आर्केड गेम्स) को लागू करने के लिए एक उत्कृष्ट लाइब्रेरी है। उदाहरण के लिए, (आंशिक रूप से) कामचोर कूद खेल को लागू किया गया था।

त्याग




शुरू करने के बजाय


अजगर। प्रलेखन के मामले में अजगर महान है। वह है, वह समझ में आता है, वह उत्कृष्ट उदाहरणों के बिना नहीं है। Pygame कोई अपवाद नहीं है, इसलिए मेरा सुझाव है कि इस लाइब्रेरी के कार्यान्वयन के विवरण पर ध्यान न दें, लेकिन यह ध्यान दिया जाना चाहिए कि इसके उपकरण आपको एक छवि लोड करने की अनुमति देते हैं, और बस इसे x और y के चारों ओर ले जाते हैं। और कुछ नहीं।

आर्किटेक्चर


हम OOP की सर्वश्रेष्ठ परंपराओं में एप्लिकेशन आर्किटेक्चर को विकसित करने का प्रयास करेंगे। हमारे पास निम्न वर्ग आरेख हैं:

एमवीसी मॉडल के समर्थक पहले से ही रो रहे हैं क्योंकि और तर्क और प्रतिनिधित्व वर्ग के शरीर में जोर देते हैं।
हमारे 3 स्थान हैं:

मूल स्प्राइट ऑब्जेक्ट जिससे सभी गेम ऑब्जेक्ट विरासत में मिले हैं - प्लेटफ़ॉर्म, बटन, मुख्य चरित्र, आदि। योजना के अनुसार, सब कुछ स्पष्ट है।

मुख्य बिंदु


घटनाक्रम

def event(self, event): if event.type == QUIT: sys.exit() elif event.type == KEYUP: if event.key == K_ESCAPE: # do something if event.type == MOUSEMOTION: for btn in self.buttons: if btn.rect.collidepoint(pygame.mouse.get_pos()): #pass btn.changeState(1) 

घटना तंत्र का उपयोग करते हुए, कीस्ट्रोक्स और माउस जोड़तोड़ पारदर्शी रूप से बाधित होते हैं।

छवि

 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 खराब अनुप्रयोग वास्तुकला या भाषा की विशेषताएं - आप तय करते हैं। आपका ध्यान देने के लिए धन्यवाद।
गीथूब पर सूत्र।

Source: https://habr.com/ru/post/In130726/


All Articles