] यह प्रभाव स्क्रॉलिंग के माध्यम से प्राप्त किया जाता है, जो खेल की दुनिया को खिलाड़ी की स्थिति से स्वतंत्र रूप से स्थानांतरित करने की अनुमति देता है। यह ऑफसेट तब सभी गेम संस्थाओं की स्थिति पर लागू होता है जब वे स्क्रीन पर खींचे जाते हैं। def __init __ (self, camera_func, चौड़ाई, ऊंचाई): self.camera_func = camera_func self.state = rect (0, 0, चौड़ाई, ऊंचाई) DEF लागू करें (स्व, लक्ष्य): टारगेट करें। DEF अद्यतन (स्व, लक्ष्य): self.state = स्व। pixels। l, t, _, _ = target_rect # l = बाएं, t = Top _, _, w, h = कैमरा # w = चौड़ाई, h = ऊंचाई रिटर्न रेक्ट (-l हाफ_विड्थ, -t हाफ_हाइट, डब्ल्यू, एच)
स्तर की सीमाओं को बनाए रखना:
x = -target_rect.center [0] win_width/2 y = -target_rect.center [1] win_height/2 camera.topleft = (pygame.vector2 ((x, y)) - pygame.vector2 (camera.topleft)) * 0.06 # कुछ चिकनाई कूल्स जोड़ें camer.x = max (-(camera.width-win_width), min (0, camera.x)) camera.y = max (-(camera.height-win_height), min (0, camera.y)) वापसी कैमरा
स्क्रॉलिंग को संस्थाओं पर लागू करना:
स्क्रॉलिंग को लागू करना, कैमरा क्लास को इंस्टेंट करना और इसके अपडेट को कॉल करना और मुख्य गेम लूप के भीतर विधियों को लागू करना कैमरा = कैमरा (complex_camera, total_level_width, total_level_height) # कैमरा अपडेट करें camera.update (खिलाड़ी) # सभी संस्थाओं पर स्क्रॉलिंग लागू करें संस्थाओं में ई के लिए: scred.blit (e.image, camera.apply (e))
class Camera: def __init__(self, camera_func, width, height): self.camera_func = camera_func self.state = Rect(0, 0, width, height) def apply(self, target): return target.rect.move(self.state.topleft) def update(self, target): self.state = self.camera_func(self.state, target.rect)
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3