"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Pygame में माउस की दिशा में गोली कैसे चलाएं?

Pygame में माउस की दिशा में गोली कैसे चलाएं?

2024-11-07 को प्रकाशित
ब्राउज़ करें:616

How to shoot a bullet in the direction of the mouse in Pygame?

पाइगेम में माउस की दिशा में गोली कैसे चलाएं

पाइगेम में, कोई एक गोली बना सकता है जिसे माउस की दिशा में फायर किया जाता है। ऐसा करने के लिए, किसी को एक क्लास बनाने की आवश्यकता होगी जो बुलेट का प्रतिनिधित्व करती है और माउस स्थिति के आधार पर इसकी प्रारंभिक स्थिति और दिशा निर्धारित करती है।

बुलेट के लिए क्लास

सबसे पहले, बुलेट के लिए एक क्लास बनाएं। इस वर्ग में गोली की स्थिति, आकार और सतह के लिए विशेषताएँ शामिल होनी चाहिए। सतह वह है जो स्क्रीन पर प्रस्तुत की जाएगी।

import pygame

class Bullet:
    def __init__(self, x, y):
        self.x = x
        self.y = y
        self.height = 7
        self.width = 2
        self.bullet = pygame.Surface((self.width, self.height))
        self.bullet.fill((255, 255, 255))

गेम क्लास फ़ंक्शंस

इसके बाद, गेम के लिए एक क्लास बनाएं। इस वर्ग में गोली चलाने और गोलियां बनाने के कार्य शामिल होंगे।

class Game:
    def __init__(self):
        self.bullets = []
    
    def shoot_bullet(self):
        mouse_x, mouse_y = pygame.mouse.get_pos() # Get the mouse position
        for bullet in self.bullets:
            rise = mouse_y - bullet.y # Calculate the difference between mouse and bullet y position
            run = mouse_x - bullet.x # Calculate the difference between mouse and bullet x position
            angle = math.atan2(rise, run) # Calculate the angle between mouse and bullet

            bullet.x  = math.cos(angle) * 10 # Update bullet x position
            bullet.y  = math.sin(angle) * 10 # Update bullet y position

            # Rotate and draw the bullet
            rotated_bullet = pygame.transform.rotate(bullet.bullet, -math.degrees(angle))
            screen.blit(rotated_bullet, (bullet.x, bullet.y))

    def generate_bullet(self):
        mouse_buttons = pygame.mouse.get_pressed() # Check if mouse is clicked
        if mouse_buttons[0]: # If left mouse button is clicked
            self.bullets.append(Bullet(player.x, player.y)) # Create a new bullet

बुलेट क्लास का उपयोग करके

मुख्य गेम लूप में, गेम क्लास का एक उदाहरण बनाएं और शूट_बुलेट और जेनरेट_बुलेट फ़ंक्शन को कॉल करें।

game = Game()

while running:
    # Event handling

    # Update
    game.shoot_bullet()
    game.generate_bullet()
    
    # Draw
    screen.fill((0, 0, 0))
    for bullet in game.bullets:
        screen.blit(bullet.bullet, (bullet.x, bullet.y))
    pygame.display.update()

यह कोड एक बुलेट बनाएगा जिसे माउस की दिशा में शूट किया जाएगा। गोली तब तक चलती रहेगी जब तक वह स्क्रीन से बाहर नहीं निकल जाती।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3