&&&] ऐसा इसलिए है क्योंकि शूटिंग और खिलाड़ी आंदोलन को अलग -अलग छोरों में अलग कर दिया गया था। इसे संबोधित करने के लिए, हमें उन्हें एक एकल मुख्य लूप में संयोजित करने की आवश्यकता है, जहां दोनों व्यवहार एक साथ अपडेट किए जाते हैं। मूल कोड ने कुछ समय का उपयोग किया जो असीम रूप से जारी रहा। इसे ठीक करने के लिए, हमें एक ऐसी स्थिति के साथ लूप का उपयोग करने की आवश्यकता है जो यह जांचती है कि क्या गोली शीर्ष पर पहुंच गई है। &&&] आयात pygame, OS
# बॉयलरप्लेट सेटअप को संक्षिप्तता के लिए छोड़ दिया गया
क्लास प्लेयर:
def __init __ (स्व, x, y, ऊंचाई, चौड़ाई):
...
def ड्रा (स्व):
...
def move_left (स्व):
...
def move_right (स्व):
...
क्लास बुलेट:
def __init __ (स्व, x, y):
...
DEF अद्यतन (स्व):
...
def ड्रा (स्व):
...
# गोलियों की सूची
गोलियां = []
# प्रारंभिक खिलाड़ी
पी = खिलाड़ी (600, 500, 50, 30)
# मुख्य खेल लूप
रन = सच
जबकि रन:
क्लॉक.टिक (100)
# घटनाओं को संभालें
Pygame.event.get () में घटना के लिए:
यदि event.type == pygame.quit:
रन = गलत
यदि event.type == pygame.keydown:
यदि event.key == pygame.k_space:
बुलेट्स.एपेंड (बुलेट (P.X P.Width // 2, P.Y))
# अद्यतन वस्तुओं
keys = pygame.key.get_pressed ()
यदि कुंजी [pygame.k_left]:
p.move_left ()
यदि कुंजी [pygame.k_right]:
p.move_right ()
गोलियों में बी के लिए:
B.update ()
# अद्यतन स्थिति और अगर यह ऑफ-स्क्रीन जाता है तो गोली निकालें
अगर b.y & lt; 0:
बुलेट्स.रेमोव (बी)
# अद्यतन फ्रेम
डी.फिल ((98, 98, 98))
गोलियों में बी के लिए:
b.draw ()
p.draw ()
win.update ()
मुख्य लूप लगातार अपडेट करता है और खिलाड़ी और गोलियों को खींचता है, यह सुनिश्चित करना कि वे दोनों स्क्रीन पर मौजूद हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3