Menu
CoddyTech

Hedefe Ulaş

Coddy'nin Pygame ile Oyun Yap kursunda ders 8 / 40.

Bir oyunun bir hedefi olmalıdır. Sağ alt köşeye yeşil bir kare çizin ve oyuncunun karesi bunun içine girdiğinde oyuncu kazansın.

Hedef (420, 300) konumunda ve 60'a 60 boyutundadır. Oyuncunun karesi, sol tarafı 420 veya daha büyük ve üst tarafı 300 veya daha büyük olduğunda hedefin içindedir. Her ikisi de doğru olmalıdır; bu yüzden bunları and ile birleştirin.

Kazanma durumu kalıcı olmalıdır. Bunu False ile başlayan ve yalnızca True olan 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 tekrar geri almaz; bu nedenle kare hedeften çıksa bile arka plan yeşil kalır.

challenge icon

Görev

Kolay
  1. Döngüden önce won = False olarak ayarla.
  2. x ve y değerlerini sınırlandırdıktan sonra, x >= 420 ve y >= 300 olduğunda won = True olarak ayarla.
  3. won doğruysa ekranı (40, 110, 70) ile, değilse (30, 30, 46) ile doldur.
  4. 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()
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Pygame ile Oyun Yap bölümündeki tüm dersler

Kendi başına pratik yap: Pygame playground