self adalah object
Termasuk bagian Sprite dan Gambar dalam perjalanan Pygame di Coddy. Pelajaran 12 dari 36.
Satu class bisa membuat objek sebanyak yang kamu mau, dan masing-masing memiliki atributnya sendiri. Beri __init__ parameter kecepatan, lalu dua bintang bisa jatuh dengan kecepatan yang berbeda:
slow = Star(200, 0, 1)
fast = Star(440, 0, 3)Saat kamu menulis slow.update(), Python menjalankan Star.update(slow): self adalah slow, jadi self.y += self.speed menggerakkan slow sejauh 1. fast.update() menjalankan baris yang sama dengan self yang diatur ke fast, lalu menggerakkannya sejauh 3. Satu method, dua objek, dan keduanya tidak mengubah angka milik objek yang lain.
Itulah sebabnya setiap nilai yang dimiliki objek harus diawali dengan self.. Nama tanpa itu, seperti speed, adalah variabel lokal biasa milik method: variabel itu hilang saat method berakhir.
Tantangan
Mudah- Beri
__init__parameter ketiga,speed, lalu simpan sebagaiself.speed. - Ganti
stardengan dua bintang:slow = Star(200, 0, 1)danfast = Star(440, 0, 3). - Perbarui dan gambar kedua bintang di setiap frame.
Coba sendiri
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Falling Star")
clock = pygame.time.Clock()
class Star:
def __init__(self, x, y):
self.x = x
self.y = y
self.speed = 2
def update(self):
self.y += self.speed
if self.y > 480:
self.y = 0
def draw(self, screen):
pygame.draw.circle(screen, (255, 255, 255), (self.x, self.y), 4)
star = Star(320, 0)
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
star.update()
screen.fill((20, 22, 40))
star.draw(screen)
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