Menu
CoddyTech

Rastgele Düşüşler

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

Blok alt kenarı geçince, yeniden düşmesi için onu üst kenarın üzerine geri koy. block.top > 360 olduğunda üst kenarı alt kenarı geçmiş olur.

Oyunu daha az tahmin edilebilir kılmak için bloğu rastgele bir yere bırak. Python'ın random modülü sayılar seçer: random.randint(0, 460), 0 ile 460 arasında, her ikisi de dahil, bir tam sayıdır.

import random

if block.top > 360:
    block.y = -20
    block.x = random.randint(0, 460)

Neden 460? Blok 20 genişliğinde, bu yüzden x değerinin 460 olması sağ kenarını pencerenin kenarına getirir. y = -20 olması ise onu pencerenin hemen üzerine koyar, böylece üstten içeri kayar.

challenge icon

Görev

Kolay

Her bloktan sonra yeni bir bloğu rastgele bir yere bırak.

  1. En üste import random ekle.
  2. Blok düştükten sonra, block.top > 360 olduğunda block.y = -20 olarak ayarla ve block.x değerini random.randint(0, 460) olarak ayarla.

“Oyna” düğmesine bas: bloklar rastgele yerlere düşmeye devam eder. Ardından “Kontrol et” düğmesine bas.

Kendin dene

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Catch the Blocks")
clock = pygame.time.Clock()

basket = pygame.Rect(200, 330, 80, 16)
block = pygame.Rect(220, 0, 20, 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]:
        basket.x -= 8
    if keys[pygame.K_RIGHT]:
        basket.x += 8
    basket.clamp_ip(screen.get_rect())

    block.y += 3

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (80, 160, 255), basket)
    pygame.draw.rect(screen, (235, 80, 80), block)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()

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

Kendi başına pratik yap: Pygame playground