Tempatkan dengan Rect
Termasuk bagian Sprite dan Gambar dalam perjalanan Pygame di Coddy. Pelajaran 2 dari 36.
Menghitung sudut kiri atas secara manual berarti menjumlahkan posisi untuk setiap gambar yang kamu letakkan. Setiap Surface bisa memberikan Rect dengan ukurannya sendiri:
ship_rect = ship.get_rect(center=(320, 400))get_rect() saja menghasilkan Rect(0, 0, 64, 64). Kata kunci menempatkan Rect: center, midbottom, topleft, atau titik lain yang dimiliki Rect. Di sini, titik tengah kapal berada di (320, 400), lalu pygame menghitung sudutnya, yaitu (288, 368).
Blit gambar pada Rect, maka gambar akan berada di sudut kiri atas Rect:
screen.blit(ship, ship_rect)Sekarang Rect menjadi posisi kapal. Ubah ship_rect.x atau ship_rect.centery, lalu frame berikutnya akan menggambar kapal di sana. Beginilah setiap gambar dalam game bergerak: simpan Rect, ubah Rect, lalu blit pada Rect. Rect ini juga yang kamu gunakan untuk menguji tabrakan, seperti di bagian 2.
Tantangan
Mudah- Setelah memuat
ship, buatship_rect = ship.get_rect(center=(320, 400)). - Gambar
shippadaship_rect, bukan pada titik tetap.
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()
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, 208))
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
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