Kapal Patroli
Termasuk bagian Sprite dan Gambar dalam perjalanan Pygame di Coddy. Pelajaran 29 dari 36.
Saatnya membuat game lengkap: Star Patrol. Gelombang kapal musuh terbang turun dari atas. Kapalmu berpatroli di bagian bawah jendela, bergerak ke kiri dan kanan, lalu menembakkan laser ke atas. Hancurkan setiap gelombang untuk menang. Jika tiga musuh lolos atau kapalmu menabrak mereka, game berakhir.
Setiap object dalam game akan menjadi sprite: pemain, lasernya, musuh, dan ledakan mereka. Pemain dibuat terlebih dahulu, seperti di bab 4:
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = ship_image
self.rect = self.image.get_rect(midbottom=(320, 470))Muat ship_image satu kali, setelah membuat jendela. update-nya menggerakkan Rect dengan tombol panah dan menjaganya tetap berada di dalam jendela. Perulangan utama memanggil player.update() dan menggambar kapal.
Bab ini mengembangkan program yang sama pelajaran demi pelajaran, jadi pertahankan nama yang diberikan oleh tugas: pemeriksaan akan menemukan bagian-bagian game berdasarkan nama tersebut.
Tantangan
Sedang- Muat
assets/images/ship.pngke dalamship_image. - Tulis
class Player(pygame.sprite.Sprite): imageship_image, Rect dengan bagian tengah bawahnya di(320, 470), danupdateyang menggerakkannya sejauh 6 piksel per frame dengan tombol Kiri dan Kanan, lalu membatasinya agar tetap di dalam jendela. - Buat
player = Player(); setiap frame, panggilplayer.update()dan blitplayer.imagepadaplayer.rectsetelah mengisi layar.
Coba sendiri
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Star Patrol")
clock = pygame.time.Clock()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((12, 14, 30))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Semua pelajaran di Sprite dan Gambar
2Putar, Cerminkan, Ubah Skala
Putar Mengelilingi Titik TengahHadap ke Arah TerbangmuUbah Skala GambarPutar dari Gambar Asli3class untuk object game
class pertamamumethodself adalah objectlist berisi objectobject dengan gambarsubclass6Animasi dari Sprite Sheet
Memotong Sprite SheetPenghitung FrameMenganimasikan dengan WaktuLedakan Sekali JalanLatihan sendiri: Playground Pygame