Dans Pygame, on peut créer une balle qui est tirée dans la direction de la souris. Pour ce faire, il faudrait créer une classe qui représente la puce et définir sa position et sa direction initiales en fonction de la position de la souris.
Classe pour la puce
Tout d’abord, créez une classe pour la puce. Cette classe doit inclure des attributs pour la position, la taille et la surface de la balle. La surface est ce qui sera rendu à l'écran.
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))
Fonctions de classe de jeu
Ensuite, créez une classe pour le jeu. Cette classe contiendra des fonctions pour tirer et générer des balles.
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
En utilisant la classe Bullet
Dans la boucle principale du jeu, créez une instance de la classe Game et appelez les fonctions shoot_bullet et generate_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()
Ce code créera une balle qui sera tirée dans la direction de la souris. La balle se déplacera jusqu'à ce qu'elle disparaisse de l'écran.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3