Buat Latar Berulang
Termasuk bagian Sprite dan Gambar dalam perjalanan Pygame di Coddy. Pelajaran 4 dari 36.
Warna polos membuat langit terlihat membosankan. assets/backgrounds/sky.png adalah gambar berukuran 72 kali 72 yang dibuat agar bisa diulang: letakkan salinannya berdampingan, dan tepinya menyatu tanpa celah. Menutupi jendela dengan salinan satu gambar kecil disebut penyusunan ubin.
Dua perulangan memberikan setiap sudut kiri atas, satu baris kisi setiap kali:
for x in range(0, 640, 72):
for y in range(0, 480, 72):
screen.blit(tile, (x, y))range(0, 640, 72) menghasilkan 0, 72, 144, dan seterusnya hingga 576. Salinan pada 576 mencapai 648, melewati tepi: pygame menggambar bagian yang berada di dalam jendela dan melewati sisanya, sehingga kolom terakhir terpotong dengan rapi.
Ubin-ubin menutupi seluruh jendela, jadi ubin menggantikan screen.fill: gambar ubin terlebih dahulu, lalu gambar semua hal lainnya di atasnya. Gambar ini tidak memiliki piksel tembus pandang, jadi muat dengan .convert(), versi convert_alpha() untuk gambar solid.
Tantangan
Mudah- Setelah
set_mode, muatassets/backgrounds/sky.pngdengan.convert()ke dalam variabel bernamatile. - Ganti
screen.fill(...)dengan dua perulangan yang menggambartilepada setiap(x, y), dengan x dalamrange(0, 640, 72)dan y dalamrange(0, 480, 72). - Tetap gambar kapal setelah ubin.
Coba sendiri
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Sky Tiles")
clock = pygame.time.Clock()
ship = pygame.image.load("assets/images/ship.png").convert_alpha()
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
screen.fill((20, 22, 40))
screen.blit(ship, (288, 360))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Semua pelajaran di Sprite dan Gambar
1Memuat Gambar
Muat GambarTempatkan dengan RectPindahkan GambarBuat Latar BerulangPiksel Tembus Pandang2Putar, 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