Menu
CoddyTech

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.

challenge icon

Tantangan

Sedang
  1. Muat assets/images/ship.png ke dalam ship_image.
  2. Tulis class Player(pygame.sprite.Sprite): image ship_image, Rect dengan bagian tengah bawahnya di (320, 470), dan update yang menggerakkannya sejauh 6 piksel per frame dengan tombol Kiri dan Kanan, lalu membatasinya agar tetap di dalam jendela.
  3. Buat player = Player(); setiap frame, panggil player.update() dan blit player.image pada player.rect setelah 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

Latihan sendiri: Playground Pygame