Dalam Pygame, seseorang boleh mencipta peluru yang dilepaskan ke arah tetikus. Untuk melakukan ini, seseorang perlu mencipta kelas yang mewakili peluru dan menetapkan kedudukan dan arah awalnya berdasarkan kedudukan tetikus.
Kelas untuk Bullet
Mula-mula, buat kelas untuk bullet. Kelas ini harus termasuk atribut untuk kedudukan peluru, saiz dan permukaan. Permukaan ialah perkara yang akan dipaparkan pada skrin.
<code class="python">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))</code>
Fungsi Kelas Permainan
Seterusnya, buat kelas untuk permainan. Kelas ini akan mengandungi fungsi untuk menembak dan menjana peluru.
<code class="python">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</code>
Menggunakan Kelas Bullet
Dalam gelung permainan utama, buat contoh kelas Permainan dan panggil fungsi shoot_bullet dan generate_bullet.
<code class="python">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()</code>
Kod ini akan mencipta peluru yang ditembak ke arah tetikus. Peluru akan bergerak sehingga ia keluar dari skrin.
Atas ialah kandungan terperinci Bagaimana untuk menembak peluru ke arah tetikus di Pygame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!