Pindahkan Gambar
Termasuk bagian Sprite dan Gambar dalam perjalanan Pygame di Coddy. Pelajaran 3 dari 36.
Kapal berada di bagian bawah jendela. Untuk menerbangkannya ke kiri dan kanan, gerakkan Rect-nya dengan tombol panah, seperti saat kamu menggerakkan persegi di bagian 2:
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
ship_rect.x -= 6
if keys[pygame.K_RIGHT]:
ship_rect.x += 6Baris blit tidak berubah: baris itu menggambar di posisi Rect saat ini.
Sebuah Rect dapat menjaga dirinya tetap berada di dalam Rect lain. screen.get_rect() adalah Rect jendela, (0, 0, 640, 480), dan
ship_rect.clamp_ip(screen.get_rect())memindahkan ship_rect kembali ke dalamnya saat keluar. _ip berarti in place: kode ini mengubah ship_rect itu sendiri. ship_rect.clamp(...) tanpa akhiran itu membiarkan ship_rect tetap seperti semula dan memberikan Rect baru kepadamu.
Tantangan
Mudah- Dalam perulangan, sebelum menggambar, menahan tombol Left menggerakkan
ship_rect6 piksel ke kiri dan menahan tombol Right menggerakkannya 6 piksel ke kanan. - Lalu, jaga agar tetap berada di dalam jendela dengan
ship_rect.clamp_ip(screen.get_rect()).
Coba sendiri
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Space Images")
clock = pygame.time.Clock()
ship = pygame.image.load("assets/images/ship.png").convert_alpha()
ship_rect = ship.get_rect(center=(320, 400))
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, ship_rect)
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