Menu
CoddyTech

Kembali ke Tengah

Pelajaran 33 dari 40 dalam kursus Buat Game dengan Pygame di Coddy.

Saat pemain meleset, bola keluar dari jendela di sisi mereka. Kembalikan bola ke tengah dan arahkan ke sisi lainnya.

if ball.right < 0 or ball.left > 600:
    ball.center = (300, 200)
    vx = -vx

ball.right < 0 berarti seluruh bola sudah melewati tepi kiri, sedangkan ball.left > 600 berarti seluruh bola sudah melewati tepi kanan. Mengatur ball.center memindahkan Rect sehingga bagian tengahnya berada di titik tersebut; ukurannya tetap sama.

vx = -vx di sini aman: bola berada di tengah, jauh dari paddle mana pun.

challenge icon

Tantangan

Mudah

Saat seluruh bola melewati tepi kiri atau kanan, atur center-nya ke (300, 200) dan balikkan vx.

Coba sendiri

import pygame

pygame.init()
screen = pygame.display.set_mode((600, 400))
pygame.display.set_caption("Pong")
clock = pygame.time.Clock()

ball = pygame.Rect(293, 193, 14, 14)
vx, vy = 5, 4
left = pygame.Rect(20, 160, 12, 80)
right = pygame.Rect(568, 160, 12, 80)

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_w]:
        left.y -= 6
    if keys[pygame.K_s]:
        left.y += 6
    if keys[pygame.K_UP]:
        right.y -= 6
    if keys[pygame.K_DOWN]:
        right.y += 6
    left.clamp_ip(screen.get_rect())
    right.clamp_ip(screen.get_rect())

    ball.x += vx
    ball.y += vy
    if ball.top <= 0 or ball.bottom >= 400:
        vy = -vy
    if ball.colliderect(left):
        vx = abs(vx)
    if ball.colliderect(right):
        vx = -abs(vx)

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (80, 160, 255), left)
    pygame.draw.rect(screen, (235, 80, 80), right)
    pygame.draw.rect(screen, (255, 196, 0), ball)
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Buat Game dengan Pygame

Latihan sendiri: Playground Pygame