Devriye Gemisi
Coddy'nin Pygame Journey'sinin Sprite'lar ve Görseller bölümünün bir parçası. Ders 29 / 36.
Tam bir oyun yapma zamanı: Star Patrol. Düşman gemi dalgaları ekranın üst kısmından aşağı doğru uçar. Geminiz pencerenin alt kısmında devriye gezer; sağa ve sola hareket edip yukarı lazerler ateşler. Kazanmak için her dalgayı yok edin; üç düşmanın geçmesine izin verirseniz veya onlara çarparsanız oyun biter.
Oyundaki her nesne bir sprite olacak: oyuncu, lazerleri, düşmanlar ve patlamaları. 4. bölümde olduğu gibi önce oyuncu gelir:
class Player(pygame.sprite.Sprite):
def __init__(self):
super().__init__()
self.image = ship_image
self.rect = self.image.get_rect(midbottom=(320, 470))Pencereyi oluşturduktan sonra ship_image öğesini bir kez yükleyin. update yöntemi, ok tuşlarıyla Rect'i hareket ettirir ve onu pencerenin içinde tutar. Ana döngü player.update() çağrısını yapar ve gemiyi çizer.
Bu bölümde aynı program ders ders geliştirilir; bu nedenle görevlerde verilen adları kullanın: denetimler oyunun parçalarını bu adlarla bulur.
Görev
Ortaassets/images/ship.pngdosyasınıship_imageiçine yükle.class Player(pygame.sprite.Sprite)yaz: görsel olarakship_imagekullan, alt orta noktası(320, 470)olan bir Rect ayarla ve sol ile sağ tuşlarıyla kare başına 6 piksel hareket ettiren, pencere sınırları içinde tutan birupdateyaz.player = Player()oluştur; her karedeplayer.update()çağır ve doldurma işleminden sonraplayer.imagegörseliniplayer.rectkonumuna blit et.
Kendin dene
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()
Sprite'lar ve Görseller bölümündeki tüm dersler
4Sprite'lar ve Gruplar
Sprite SınıfıGruplarkill() ile Kaldırmaspritecollide ile YakalamaGruba Karşı Grup7Yıldız Devriyesi
Devriye GemisiLazerleri Ateşle2Döndür, Yansıt, Ölçekle
Merkez Etrafında DöndürUçtuğun Yöne DönBir Görseli ÖlçekleOrijinalinden Döndür5Piksel Hassasiyetinde Çarpışmalar
Dikdörtgenler Haksız HissettiriyorMaskelerPiksel Hassasiyetinde Sprite'larDaire Hitbox'ları3Oyun Nesneleri için Sınıflar
İlk SınıfınızMetotlarSelf Nesnenin KendisidirNesneler ListesiGörselli NesnelerBir Alt Sınıf6Sprite Sheet'lerden Animasyon
Bir Sprite Sheet'i KesmekBir Kare SayacıZamanla AnimasyonTek Seferlik Bir PatlamaKendi başına pratik yap: Pygame playground