Rastgele Düşüşler
Coddy'nin Pygame Journey'sinin Oyun Döngüsü bölümünün bir parçası. Ders 25 / 32.
Blok alt kenarı geçince, yeniden düşmesi için onu üst kenarın üzerine taşı. block.top > 360 olduğunda üst kenarı alt kenarı geçmiş olur.
Oyunu daha az tahmin edilebilir hâle getirmek 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 (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 piksel genişliğinde, bu yüzden x değerinin 460 olması sağ kenarını pencerenin kenarına getirir. y = -20 ise onu pencerenin hemen üzerine yerleştirir, böylece üstten içeri doğru kayar.
Görev
Kolay- En üste
import randomekle. - Blok düştükten sonra,
block.top > 360olduğundablock.y = -20değerini ayarla veblock.xdeğerinirandom.randint(0, 460)olarak ayarla.
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()
Oyun Döngüsü bölümündeki tüm dersler
1Bir Kareyi Hareket Ettir
Bir Pencere AçArka Planı Doldur2Şekiller ve Renkler
Daireler, Çizgiler, ÇokgenlerKonturlar ve KöşelerŞekillerden Oluşan Bir SahneDeğişen Renkler5Blokları Yakala
SepetDüşen Bir BlokKendi başına pratik yap: Pygame playground