Menu
CoddyTech

Jatuh Secara Acak

Termasuk bagian Perulangan Game dalam perjalanan Pygame di Coddy. Pelajaran 25 dari 32.

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 mudah ditebak, jatuhkan blok di tempat acak. Module random Python memilih angka: random.randint(0, 460) adalah bilangan bulat dari 0 sampai 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 x sebesar 460 menempatkan sisi kanannya tepat di tepi jendela. Dan y = -20 menempatkannya tepat di atas jendela, sehingga blok meluncur masuk dari atas.

challenge icon

Tantangan

Mudah
  1. Tambahkan import random di bagian atas.
  2. Setelah block jatuh, saat block.top > 360, atur block.y = -20 dan atur block.x menjadi random.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()

Semua pelajaran di Perulangan Game

Latihan sendiri: Playground Pygame