Ubah Skala Gambar
Termasuk bagian Sprite dan Gambar dalam perjalanan Pygame di Coddy. Pelajaran 8 dari 36.
Boss dalam suatu level sebaiknya terlihat besar, dan penghitung nyawa memerlukan kapal-kapal kecil. File yang sama bisa digunakan untuk keduanya: penskalaan membuat salinan dengan ukuran berbeda.
boss = pygame.transform.scale_by(boss, 2)
icon = pygame.transform.scale(ship, (32, 32))scale_by(image, 2) mengalikan kedua sisi dengan 2: boss berukuran 64 kali 64 menjadi 128 kali 128. scale(image, (w, h)) membuatnya tepat berukuran w kali h piksel, meskipun itu membuat gambarnya teregang.
Penskalaan lambat dibandingkan dengan blit, dan setiap salinan baru membuat piksel sedikit lebih buram atau kotak-kotak. Lakukan penskalaan sekali sebelum perulangan, dari file asli, lalu gambar salinan yang sudah diskalakan di setiap frame.
Buat Rect setelah melakukan penskalaan. Rect yang dibuat dari gambar berukuran 64 kali 64 akan memiliki ukuran lama, dan center=(320, 150) akan menempatkan boss besar tidak di tengah.
Tantangan
Mudah- Ubah skala boss sebesar 2 sebelum perulangan, lalu buat
boss_rectdari gambar yang sudah diubah skalanya, dengan titik tengah di(320, 150). - Buat
icon: ship yang diubah skalanya menjadi(32, 32). - Gambar
icontiga kali, dengan sudut kiri atasnya di(10, 10),(50, 10), dan(90, 10).
Coba sendiri
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Boss Fight")
clock = pygame.time.Clock()
boss = pygame.image.load("assets/images/boss.png").convert_alpha()
boss_rect = boss.get_rect(center=(320, 150))
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(boss, boss_rect)
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