Pygame ialah satu set modul Python merentas platform yang direka untuk menulis permainan video. Ia termasuk grafik komputer dan perpustakaan bunyi yang direka untuk digunakan dengan bahasa pengaturcaraan Python. Pygame bukan enjin pembangunan permainan, tetapi satu set alat dan perpustakaan yang membolehkan pembangun mencipta permainan 2D menggunakan Python.
Pygame menyediakan pelbagai fungsi dan kelas untuk membantu pembangun membuat permainan, termasuk pemuatan dan manipulasi imej, main balik dan rakaman bunyi, pengendalian input papan kekunci dan tetikus, pengurusan sprite dan kumpulan serta pengesanan perlanggaran. Ia juga termasuk sokongan terbina dalam untuk tugas pembangunan permainan biasa seperti animasi, menatal dan peta berasaskan jubin.
Pygame ialah sumber terbuka dan percuma untuk digunakan, dan ia berjalan pada Windows, macOS, Linux dan platform lain. Ia sering digunakan dalam tetapan pendidikan sebagai pengenalan kepada pembangunan permainan atau sebagai alat untuk mengajar konsep pengaturcaraan.
Animasi imbasan radar asas terdiri daripada bahagian berikut -
Bulatan Radar - Ini ialah bulatan yang mewakili julat radar. Ia berpusat pada asalan dan mempunyai jejari tetap.
Radar Scan - Ini ialah garisan berputar mengelilingi pusat bulatan. Ia mewakili pancaran yang dipancarkan daripada radar dengan julat imbasan 360 darjah.
Sasaran Radar - Ini adalah objek yang ingin kita kesan menggunakan radar. Mereka diwakili sebagai titik pada skrin.
Sekarang kita mengetahui komponen animasi imbasan radar, mari kita selami pelaksanaannya menggunakan Pygame.
Sebelum kita mendalami tugas itu, terdapat beberapa perkara yang perlu dipasang pada anda
Sistem-
Senarai tetapan yang disyorkan -
pip pasang Numpy, pygame dan Math
Dijangka pengguna akan dapat mengakses mana-mana IDE kendiri seperti VSCode, PyCharm, Atom atau teks Sublime.
Anda juga boleh menggunakan penyusun Python dalam talian seperti Kaggle.com, Google Cloud Platform atau mana-mana platform lain.
Versi Python yang dikemas kini. Sehingga berita ini ditulis, saya menggunakan versi 3.10.9.
Ketahui tentang penggunaan Jupyter Notebook.
Pengetahuan dan penggunaan persekitaran maya akan bermanfaat tetapi tidak diperlukan.
Juga harapkan orang itu mempunyai pemahaman yang baik tentang statistik dan matematik.
Import Perpustakaan - Kami akan bermula dengan mengimport perpustakaan yang diperlukan - Pygame, NumPy dan Math.
import pygame import math import random
Initialize Game Window - Kami akan menggunakan pustaka Pygame untuk memulakan tetingkap permainan dengan lebar dan ketinggian yang diperlukan.
WIDTH = 800 HEIGHT = 600 pygame.init() screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Radar Sweep Animation") clock = pygame.time.Clock()
Sediakan persekitaran permainan - Kami akan menyediakan persekitaran permainan dengan menentukan warna, latar belakang dan kadar bingkai animasi.
WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) BLUE = (0, 0, 255)
Tentukan Bulatan Radar - Kami akan menentukan bulatan radar dengan jejari dan koordinat pusat yang dikehendaki. Kami juga akan menetapkan warna bulatan dan ketebalan garisan.
radar_circle_radius = 200 radar_circle_center_x = int(WIDTH / 2) radar_circle_center_y = int(HEIGHT / 2)
Tentukan Imbasan Radar - Kami akan mentakrifkan imbasan radar dengan menetapkan sudut awal kepada 0 darjah dan menambahnya setiap bingkai supaya mengimbas 360 darjah. Kami juga akan menetapkan warna dan ketebalan garisan imbasan.
radar_sweep_angle = 0 radar_sweep_length = radar_circle_radius + 50 def update(): # Increment the angle in each frame global radar_sweep_angle radar_sweep_angle += 1 # Draw the radar sweep line def draw_radar_sweep(): x = radar_circle_center_x + radar_sweep_length * math.sin(math.radians(radar_sweep_angle)) y = radar_circle_center_y + radar_sweep_length * math.cos(math.radians(radar_sweep_angle)) pygame.draw.line(screen, BLACK, (radar_circle_center_x, radar_circle_center_y), (x, y), 3)
Tentukan Sasaran Radar - Kami akan mentakrifkan sasaran radar menggunakan koordinat x dan y rawak dalam bulatan radar. Kami juga akan menetapkan warna dan jejari sasaran.
num_targets = 10 target_radius = 10 targets = [] for i in range(num_targets): x = random.randint(radar_circle_center_x - radar_circle_radius, radar_circle_center_x + radar_circle_radius) y = random.randint(radar_circle_center_y - radar_circle_radius, radar_circle_center_y + radar_circle_radius) targets.append((x, y)) # Draw the radar targets def draw_radar_targets(): for target in targets: pygame.draw.circle(screen, BLUE, target, target_radius) distance_to_target = math.sqrt((target[0] - x) ** 2 + (target[1] - y) ** 2) if distance_to_target <= target_radius: pygame.draw.rect(screen, RED, (target[0], target[1], 60, 20)) font = pygame.font.SysFont(None, 25) text = font.render("DETECTED", True, BLACK) screen.blit(text, (target[0], target[1]))
Jalankan Permainan - Kami akan menjalankan permainan dengan mencipta tetingkap pygame, menyediakan pengendali acara yang diperlukan dan menjalankan gelung permainan.
# Main game loop running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False screen.fill(WHITE) update() draw_radar_sweep() draw_radar_targets() pygame.display.update() clock.tick(FPS) # Quit the game pygame.quit()
import pygame import math import random # Initializing the Game Window: WIDTH = 800 HEIGHT = 600 pygame.init() screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Radar Sweep Animation") clock = pygame.time.Clock() # Defining colors: WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) BLUE = (0, 0, 255) # Set the frame rate of the animation FPS = 60 # Defining the Radar Circle: radar_circle_radius = 200 radar_circle_center_x = int(WIDTH / 2) radar_circle_center_y = int(HEIGHT / 2) # Define the radar sweep radar_sweep_angle = 0 radar_sweep_length = radar_circle_radius + 50 # Define the radar targets num_targets = 10 target_radius = 10 targets = [] for i in range(num_targets): x = random.randint(radar_circle_center_x - radar_circle_radius, radar_circle_center_x + radar_circle_radius) y = random.randint(radar_circle_center_y - radar_circle_radius, radar_circle_center_y + radar_circle_radius) targets.append((x, y)) def update(): # Increment the angle in each frame global radar_sweep_angle radar_sweep_angle += 1 # Draw the radar sweep line def draw_radar_sweep(): x = radar_circle_center_x + radar_sweep_length * math.sin(math.radians(radar_sweep_angle)) y = radar_circle_center_y + radar_sweep_length * math.cos(math.radians(radar_sweep_angle)) pygame.draw.line(screen, BLACK, (radar_circle_center_x, radar_circle_center_y), (x, y), 3) # Draw the radar targets def draw_radar_targets(): for target in targets: pygame.draw.circle(screen, BLUE, target, target_radius) distance_to_target = math.sqrt((target[0] - x) ** 2 + (target[1] - y)** 2) if distance_to_target <= target_radius: pygame.draw.rect(screen, RED, (target[0], target[1], 60, 20)) font = pygame.font.SysFont(None, 25) text = font.render("DETECTED", True, BLACK) screen.blit(text, (target[0], target[1])) # Main game loop running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False screen.fill(WHITE) update() draw_radar_sweep() draw_radar_targets() pygame.display.update() clock.tick(FPS) # Quit the game pygame.quit()
Kita boleh melihat output program dan memerhati animasi permainan.
Dalam dokumen ini, kami meneroka cara mencipta animasi imbasan radar menggunakan Pygame dalam Python. Kami mempelajari tentang komponen animasi imbasan radar dan melihat butiran pelaksanaan menggunakan coretan kod dan contoh praktikal. Pygame menyediakan API yang mesra pengguna untuk pembangunan permainan dan merupakan pilihan terbaik untuk mencipta permainan video 2D dan animasi. Dengan pengetahuan yang diperoleh daripada dokumen ini, anda kini seharusnya boleh mencipta animasi imbasan radar anda sendiri menggunakan Pygame.
Atas ialah kandungan terperinci Cipta animasi imbasan radar menggunakan Pygame dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!