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.
Görev
KolayOyununuzu tamamlayın.
- Kendi kendine hareket eden bir şey ekleyin.
- Ekranda skor veya zamanlayıcı gibi bir metin gösterin.
- 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()
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