Bergerak di Setiap Frame
Termasuk bagian Python di Jendela Game dalam perjalanan Pygame di Coddy. Pelajaran 7 dari 32.
Perulangan game berjalan 60 kali per detik, jadi satu baris di bagian "Change things here" berjalan sekali setiap frame. Gunakan bagian ini untuk mengubah sebuah variabel sedikit demi sedikit setiap kali:
comet_x = comet_x + 2Bacalah dari kanan: ambil nilai dalam comet_x, tambahkan 2, lalu simpan hasilnya kembali ke comet_x. Jika nilainya 40, sekarang nilainya menjadi 42. Pada frame berikutnya, nilainya menjadi 44, lalu 46.
Komet digambar pada posisi comet_x di setiap frame, jadi setiap frame menampilkannya 2 piksel lebih ke kanan: 120 piksel per detik. Begitulah semua hal bergerak dalam game: sebuah angka berubah sedikit di setiap frame.
comet_x = 40 berada di bagian penyiapan, tempat kode tersebut berjalan sekali. Jika diletakkan di dalam perulangan, kode itu akan mengatur komet kembali ke 40 di setiap frame, sehingga komet tidak bergerak.
Python memiliki bentuk singkat: comet_x += 2 melakukan hal yang sama.
Tantangan
MudahBuat komet terbang: di bagian # Change things here, once a frame., tambahkan 2 ke comet_x pada setiap frame, sehingga komet bergerak 2 piksel ke kanan per frame.
Coba sendiri
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# Siapkan semuanya di sini, sebelum perulangan game.
moon_x = 160
moon_y = 120
comet_x = 40
comet_y = 200
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Ubah yang diperlukan di sini, setiap frame.
screen.fill((20, 24, 48))
# Gambar di sini, setelah mengisi layar.
pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
pygame.draw.circle(screen, (120, 200, 255), (comet_x, comet_y), 8)
pygame.display.flip()
clock.tick(60)
pygame.quit()
Semua pelajaran di Python di Jendela Game
2Angka dan Variabel
Beri Nama pada NilaiBerhitungBergerak di Setiap FrameKata-Kata di LayarAngka Bulat dan PecahanLatihan sendiri: Playground Pygame