list berisi object
Termasuk bagian Sprite dan Gambar dalam perjalanan Pygame di Coddy. Pelajaran 13 dari 36.
Dua bintang bernama belum membentuk langit. Empat puluh bintang memerlukan list: buat object di dalam perulangan, lalu tambahkan masing-masing.
stars = []
for i in range(40):
x = random.randint(0, 639)
y = random.randint(0, 479)
speed = random.randint(1, 3)
stars.append(Star(x, y, speed))Lalu, satu perulangan memperbarui semuanya dan perulangan lainnya menggambar semuanya:
for star in stars:
star.update()Di dalam for, star adalah setiap object secara bergiliran, jadi star.update() menggerakkan bintang itu dengan kecepatannya sendiri. Menambahkan seratus bintang lagi hanya mengubah satu angka; kode untuk memperbarui dan menggambar tetap sama.
Buat list sekali, sebelum perulangan game. List yang dibuat di dalam perulangan akan menjadi list baru berisi bintang-bintang baru di setiap frame, semuanya kembali ke posisi awal, sehingga tidak ada yang bergerak.
Tantangan
Sedang- Tambahkan
import randomdi bagian atas. - Sebelum perulangan, buat
stars: sebuah list berisi 40 object Star, masing-masing dengan x acak dari 0 sampai 639, y acak dari 0 sampai 479, dan kecepatan acak dari 1 sampai 3. - Di dalam perulangan, perbarui setiap star di
stars, lalu gambar setiap star setelah pengisian. Hapusslowdanfast.
Coba sendiri
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Falling Stars")
clock = pygame.time.Clock()
class Star:
def __init__(self, x, y, speed):
self.x = x
self.y = y
self.speed = speed
def update(self):
self.y += self.speed
if self.y > 480:
self.y = 0
def draw(self, screen):
pygame.draw.circle(screen, (255, 255, 255), (self.x, self.y), 4)
slow = Star(200, 0, 1)
fast = Star(440, 0, 3)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
slow.update()
fast.update()
screen.fill((20, 22, 40))
slow.draw(screen)
fast.draw(screen)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
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