Jatuhan Acak
Pelajaran 11 dari 40 dalam kursus Buat Game dengan Pygame di Coddy.
Saat blok jatuh melewati bagian bawah, letakkan kembali di atas bagian atas agar jatuh lagi. Bagian atasnya melewati bagian bawah saat block.top > 360.
Agar permainan tidak terlalu mudah diprediksi, jatuhkan blok di tempat acak. Module random di Python memilih angka: random.randint(0, 460) adalah bilangan bulat dari 0 hingga 460, termasuk keduanya.
import random
if block.top > 360:
block.y = -20
block.x = random.randint(0, 460)Mengapa 460? Lebar blok adalah 20, jadi nilai x sebesar 460 menempatkan sisi kanannya tepat di tepi jendela. Dan y = -20 menempatkannya tepat di atas jendela, sehingga blok masuk dari atas.
Tantangan
Mudah- Tambahkan
import randomdi bagian atas. - Setelah blok jatuh, saat
block.top > 360, aturblock.y = -20dan aturblock.xmenjadirandom.randint(0, 460).
Coba sendiri
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()
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Buat Game dengan Pygame
2Peristiwa dan Tabrakan
KeranjangBalok yang JatuhLatihan sendiri: Playground Pygame