Menu
CoddyTech

Ortaya Geri Dön

Coddy'nin Pygame ile Oyun Yap kursunda ders 33 / 40.

Bir oyuncu topu kaçırdığında top, kendi tarafındaki pencereden çıkar. Topu tekrar ortaya getir ve diğer tarafa gönder.

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

ball.right < 0, topun tamamının sol kenarı geçtiği; ball.left > 600 ise topun tamamının sağ kenarı geçtiği anlamına gelir. ball.center değerini ayarlamak, Rect'in orta noktası bu konumda olacak şekilde onu hareket ettirir; boyutu aynı kalır.

Burada vx = -vx işlemi güvenlidir: top ortadadır ve her iki raketten de uzaktadır.

challenge icon

Görev

Kolay

Topun tamamı sol veya sağ kenarı geçtiğinde, center değerini (300, 200) yap ve vx değerini tersine çevir.

Kendin dene

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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Pygame ile Oyun Yap bölümündeki tüm dersler

Kendi başına pratik yap: Pygame playground