Papan Skor
Termasuk bagian Proyek dalam perjalanan Pygame di Coddy. Pelajaran 16 dari 31.
Bola yang keluar di sisi kanan menghasilkan poin untuk pemain kiri, dan sebaliknya. Bagi pengujian menjadi dua, agar setiap sisi tahu siapa yang mencetak poin:
if ball.left > 600:
left_score += 1
ball.center = (300, 200)
vx = -vx
if ball.right < 0:
right_score += 1
ball.center = (300, 200)
vx = -vxTampilkan kedua skor dalam satu baris di bagian atas, di tengah: f"{left_score} : {right_score}" menampilkan 2 : 1.
Tantangan
Mudah- Sebelum perulangan, buat
font = pygame.font.Font(None, 36),left_score = 0, danright_score = 0. - Pisahkan reset menjadi dua bagian: bola yang melewati tepi kanan menambahkan 1 ke
left_score, bola yang melewati tepi kiri menambahkan 1 keright_score. Keduanya mengembalikan bola ke tengah dan membalikvx. - Render
f"{left_score} : {right_score}"dengan warna(240, 240, 240), di tengah pada posisi(300, 30).
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)
if ball.right < 0 or ball.left > 600:
ball.center = (300, 200)
vx = -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()
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Proyek
Latihan sendiri: Playground Pygame