/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/python/py-502-312-015/main.py
108 строк
3 KB
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
import pygame import random WIDTH = 800 HEIGHT = 600 FPS = 60 # Цвета WHITE = (255, 255, 255) BLACK = (0, 0, 0) RED = (255, 0, 0) GREEN = (0, 255, 0) BLUE = (0, 0, 255) class Player(pygame.sprite.Sprite): def __init__(self): super().__init__() self.image = pygame.Surface((50, 50)) self.image.fill(GREEN) self.rect = self.image.get_rect() self.rect.center = (WIDTH / 2, HEIGHT / 2) self.speed = 5 def update(self): keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: self.rect.x -= self.speed if keys[pygame.K_RIGHT]: self.rect.x += self.speed if keys[pygame.K_UP]: self.rect.y -= self.speed if keys[pygame.K_DOWN]: self.rect.y += self.speed # Границы экрана if self.rect.left < 0: self.rect.left = 0 if self.rect.right > WIDTH: self.rect.right = WIDTH if self.rect.top < 0: self.rect.top = 0 if self.rect.bottom > HEIGHT: self.rect.bottom = HEIGHT class Enemy(pygame.sprite.Sprite): def __init__(self): super().__init__() self.image = pygame.Surface((30, 30)) self.image.fill(RED) self.rect = self.image.get_rect() self.rect.x = random.randrange(WIDTH) self.rect.y = random.randrange(-100, -40) self.speed_y = random.randrange(2, 8) def update(self): self.rect.y += self.speed_y if self.rect.top > HEIGHT: self.rect.x = random.randrange(WIDTH) self.rect.y = random.randrange(-100, -40) self.speed_y = random.randrange(2, 8) # Инициализация pygame.init() pygame.mixer.init() screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("Игра") clock = pygame.time.Clock() # Группы all_sprites = pygame.sprite.Group() mobs = pygame.sprite.Group() player = Player() all_sprites.add(player) for i in range(8): m = Enemy() all_sprites.add(m) mobs.add(m) # Переменные score = 0 font = pygame.font.SysFont("Arial", 24) running = True # Цикл while running: clock.tick(FPS) # События for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # Обновление all_sprites.update() # Коллизии hits = pygame.sprite.spritecollide(player, mobs, False) if hits: running = False # Отрисовка screen.fill(BLACK) all_sprites.draw(screen) # Интерфейс score_text = font.render(f"Счёт: {score}", True, WHITE) screen.blit(score_text, (10, 10)) pygame.display.flip() pygame.quit()