Menu
CoddyTech

Oyununuzu Tamamlayın

Coddy'nin Pygame ile Oyun Yap kursunda ders 41 / 41.

Rect listesinde tutar: her 400 ms'de yeni bir kaya gelir ve ekranda aynı anda birçok kaya bulunur.

rocks = []

# bir NEW_ROCK zamanlayıcı olayı gerçekleştiğinde:
rocks.append(pygame.Rect(random.randint(0, 450), -30, 30, 30))

# her karede:
for rock in rocks:
    rock.y += 5
    if rock.colliderect(player):
        state = "lost"
rocks = [rock for rock in rocks if rock.top < 360]

Son satır bir liste kavramasıdır: yalnızca hâlâ ekranda olan kayaları içeren yeni bir liste oluşturur; böylece liste sonsuza kadar büyümez.

state adlı bir dizge, "playing", "lost" veya "won", Sky Runner'da olduğu gibi her karenin ne yapacağını belirler. Ayrıca pygame.time.get_ticks(), oyun başladığından beri geçen milisaniyeleri verir; bu da bir zamanlayıcı oluşturur: kazanmak için 20 saniye hayatta kal.

Oyunun bu kursta öğrendiğin her şeyi kullanabilir; Pygame yolculuğunda daha fazlasını da görebilirsin: sprite'lar, resimler, ses, menüler, en yüksek puanlar ve haritalar.

Oyunun sana özgü olsun: renkleri, hızları ve kuralları değiştir. Sonra oyunu oyna. Kazanmak çok zorsa ya da çok çabuk kaybediyorsan, eğlenceli olana kadar sayıları değiştir.

challenge icon

Görev

Kolay

Oyununuzu tamamlayın.

  1. Kendi kendine hareket eden bir şey ekleyin.
  2. Ekranda skor veya zamanlayıcı gibi bir metin gösterin.
  3. Oyuna bir son ekleyin: kazanmanın, kaybetmenin ya da her ikisinin de bir yolu olsun.

“Oyna” düğmesine basın: Bir şey kendi kendine hareket etsin ve metniniz görünsün. Ardından “Kontrol et” düğmesine basın.

Kendin dene

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Rock Dodge")
clock = pygame.time.Clock()

player = pygame.Rect(220, 320, 40, 20)

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT]:
        player.x -= 7
    if keys[pygame.K_RIGHT]:
        player.x += 7
    player.clamp_ip(screen.get_rect())

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (80, 160, 255), player)
    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