Putar Mengelilingi Titik Tengah
Termasuk bagian Sprite dan Gambar dalam perjalanan Pygame di Coddy. Pelajaran 6 dari 36.
Kapal yang berbelok membutuhkan gambar yang sudah diputar. pygame.transform.rotate(image, angle) memberimu Surface baru: gambar yang diputar berlawanan arah jarum jam sebesar angle derajat. Sudut negatif memutarnya searah jarum jam. Gambar aslinya tidak berubah.
Persegi yang diputar tidak muat dalam persegi dengan ukuran yang sama, jadi Surface baru berukuran lebih besar: kapal yang diputar 45 derajat berukuran 90 kali 90 piksel. Tempelkan gambar itu di sudut kiri atas yang lama, dan bagian tengahnya akan bergeser ke bawah dan ke kanan. Akibatnya, kapal tampak bergoyang di sekitar jendela saat diputar.
Alih-alih begitu, pertahankan posisi bagian tengahnya. Minta gambar yang diputar untuk membuat Rect dengan bagian tengah di titik yang sama:
rotated = pygame.transform.rotate(ship, angle)
rotated_rect = rotated.get_rect(center=(320, 240))
screen.blit(rotated, rotated_rect)Putar ship asli sebesar seluruh nilai angle pada setiap frame. Arah kapal adalah angka dalam angle, dan gambarnya dibuat berdasarkan angka tersebut.
Tantangan
Sedang- Sebelum perulangan, buat
angle = 0. - Menahan Left menambahkan 3 ke
anglepada setiap frame (berlawanan arah jarum jam); menahan Right mengurangi 3. - Pada setiap frame, putar
shipsebesarangledan gambar hasilnya dengan titik tengahnya di(320, 240).
Coba sendiri
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Turn the Ship")
clock = pygame.time.Clock()
ship = pygame.image.load("assets/images/ship.png").convert_alpha()
ship_rect = ship.get_rect(center=(320, 240))
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
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