Hedefe Ulaş
Coddy'nin Pygame Journey'sinin Oyun Döngüsü bölümünün bir parçası. Ders 8 / 32.
Bir oyunun bir hedefi olmalıdır. Sağ alt köşeye yeşil bir kare çizin; oyuncunun karesi bu karenin içine girdiğinde oyuncu kazanır.
Hedef (420, 300) konumunda ve 60'a 60 boyutundadır. Oyuncunun karesi, sol kenarı 420 veya daha büyük ve üst kenarı 300 veya daha büyük olduğunda hedefin içindedir. İkisi de doğru olmalıdır, bu yüzden onları and ile birleştirin.
Kazanma durumu kalıcı olmalıdır. Bunu False ile başlayan ve yalnızca True değerine dönüşen bir değişkende tutun:
won = False
while running:
# kareyi hareket ettir
if x >= 420 and y >= 300:
won = True
if won:
screen.fill((40, 110, 70))
else:
screen.fill((30, 30, 46))won bir kez True olduğunda, hiçbir şey onu yeniden eski hâline döndürmez; bu nedenle kare hedeften çıksa bile arka plan yeşil kalır.
Görev
Kolay- Döngüden önce
won = Falseolarak ayarla. xveydeğerlerini sınırlandırdıktan sonra,x >= 420vey >= 300olduğundawon = Trueolarak ayarla.wondoğru olduğunda ekranı(40, 110, 70)ile, aksi hâlde(30, 30, 46)ile doldur.- Oyuncunun karesinden önce hedefi çiz:
(420, 300, 60, 60)konumunda yeşil(60, 200, 120).
Kendin dene
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Move the Square")
clock = pygame.time.Clock()
x, y = 220, 160
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
speed = 4
if keys[pygame.K_SPACE]:
speed = 8
if keys[pygame.K_LEFT]:
x -= speed
if keys[pygame.K_RIGHT]:
x += speed
if keys[pygame.K_UP]:
y -= speed
if keys[pygame.K_DOWN]:
y += speed
x = max(0, min(x, 480 - 40))
y = max(0, min(y, 360 - 40))
screen.fill((30, 30, 46))
pygame.draw.rect(screen, (255, 196, 0), (x, y, 40, 40))
pygame.display.flip()
clock.tick(60)
pygame.quit()
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Oyun Döngüsü bölümündeki tüm dersler
1Bir Kareyi Hareket Ettir
Bir Pencere AçArka Planı DoldurKendi başına pratik yap: Pygame playground