Untitled
unknown
plain_text
a year ago
3.0 kB
1
Indexable
import pygame import random # Inicjalizacja Pygame pygame.init() # Ustawienia ekranu WIDTH, HEIGHT = 800, 600 WHITE = (255, 255, 255) BLACK = (0, 0, 0) FPS = 60 # Utworzenie okna gry screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Ping Pong") # Inicjalizacja zegara clock = pygame.time.Clock() # Klasy gracza i paletki class Paddle(pygame.sprite.Sprite): def __init__(self, color, width, height): super().__init__() self.image = pygame.Surface([width, height]) self.image.fill(color) self.rect = self.image.get_rect() class Ball(pygame.sprite.Sprite): def __init__(self, color, width, height): super().__init__() self.image = pygame.Surface([width, height]) self.image.fill(color) self.rect = self.image.get_rect() self.speed = [random.choice([-5, 5]), random.choice([-5, 5])] def update(self): self.rect.x += self.speed[0] self.rect.y += self.speed[1] if self.rect.top <= 0 or self.rect.bottom >= HEIGHT: self.speed[1] = -self.speed[1] if self.rect.left <= 0 or self.rect.right >= WIDTH: self.speed[0] = -self.speed[0] # Funkcja główna gry def main(): # Inicjalizacja gracza i paletki player = Paddle(WHITE, 10, 100) computer = Paddle(WHITE, 10, 100) player.rect.x = 20 player.rect.y = HEIGHT // 2 - 50 computer.rect.x = WIDTH - 30 computer.rect.y = HEIGHT // 2 - 50 # Inicjalizacja piłki ball = Ball(WHITE, 10, 10) ball.rect.x = WIDTH // 2 ball.rect.y = HEIGHT // 2 # Grupy spritów all_sprites = pygame.sprite.Group() all_sprites.add(player, computer, ball) # Pętla gry running = True while running: # Sprawdzenie zdarzeń for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Kontrola gracza keys = pygame.key.get_pressed() if keys[pygame.K_w]: player.rect.y -= 5 if keys[pygame.K_s]: player.rect.y += 5 # Automatyczna kontrola paletki komputera if ball.rect.y < computer.rect.y + 50: computer.rect.y -= 5 elif ball.rect.y > computer.rect.y + 50: computer.rect.y += 5 # Aktualizacja położenia piłki ball.update() # Sprawdzenie kolizji piłki z paletkami if pygame.sprite.collide_rect(ball, player) or pygame.sprite.collide_rect(ball, computer): ball.speed[0] = -ball.speed[0] # Wyczyszczenie ekranu screen.fill(BLACK) # Rysowanie spritów all_sprites.draw(screen) # Aktualizacja ekranu pygame.display.flip() clock.tick(FPS) # Wyjście z gry pygame.quit() # Rozpoczęcie gry if __name__ == "__main__": main()
Editor is loading...
Leave a Comment