commit 13b5f435609f4e27a0e837b37e175550deb74703 Author: rbelomoins Date: Mon Sep 29 11:16:20 2025 +0300 initial diff --git a/enemy.py b/enemy.py new file mode 100644 index 0000000..0889522 --- /dev/null +++ b/enemy.py @@ -0,0 +1,21 @@ +from settings import SCREEN_HEIGHT, SCREEN_WIDTH +import random +import pygame + +class Enemy(pygame.sprite.Sprite): + def __init__(self): + super(Enemy, self).__init__() + self.surf = pygame.Surface((20, 10)) + self.surf.fill((255, 0, 0)) + self.rect = self.surf.get_rect( + center=( + random.randint(SCREEN_WIDTH + 20, SCREEN_WIDTH + 100), + random.randint(0, SCREEN_HEIGHT), + ) + ) + self.speed = random.randint(1, 5) + + def update(self): + self.rect.move_ip(-self.speed, 0) + if self.rect.right < 0: + self.kill() \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..af560e9 --- /dev/null +++ b/main.py @@ -0,0 +1,60 @@ +import pygame +from player import Player +from enemy import Enemy +from settings import SCREEN_HEIGHT, SCREEN_WIDTH + +from pygame.locals import ( + K_UP, + K_DOWN, + K_LEFT, + K_RIGHT, + K_ESCAPE, + KEYDOWN, + QUIT, +) + +pygame.init() + + +screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) + + +running = True + +player = Player() + +enemy = Enemy() + +enemies = pygame.sprite.Group() +all_sprites = pygame.sprite.Group() + +all_sprites.add(player) +all_sprites.add(enemy) + +enemies.add(enemy) + + +while running: + for event in pygame.event.get(): + if event.type == KEYDOWN: + if event.key == K_ESCAPE: + running = False + + elif event.type == QUIT: + running = False + + screen.fill((255, 255, 255)) + + pressed_keys = pygame.key.get_pressed() + + player.update(pressed_keys) + + enemy.update() + + for entity in all_sprites: + screen.blit(entity.surf, entity.rect) + + # Flip the display + pygame.display.flip() + +pygame.quit() \ No newline at end of file diff --git a/player.py b/player.py new file mode 100644 index 0000000..8f1f843 --- /dev/null +++ b/player.py @@ -0,0 +1,38 @@ +import pygame +from settings import SCREEN_HEIGHT, SCREEN_WIDTH +from pygame.locals import ( + K_UP, + K_DOWN, + K_LEFT, + K_RIGHT, + K_ESCAPE, + KEYDOWN, + QUIT, +) + + +class Player(pygame.sprite.Sprite): + def __init__(self): + super().__init__() + self.surf = pygame.Surface((40, 40)) + self.surf.fill((0, 250, 0)) + self.rect = self.surf.get_rect() + + def update(self, pressed_keys): + if pressed_keys[K_UP]: + self.rect.move_ip(0, -2) + if pressed_keys[K_DOWN]: + self.rect.move_ip(0, 2) + if pressed_keys[K_LEFT]: + self.rect.move_ip(-2, 0) + if pressed_keys[K_RIGHT]: + self.rect.move_ip(2, 0) + + if self.rect.left < 0: + self.rect.left = 0 + if self.rect.right > SCREEN_WIDTH: + self.rect.right = SCREEN_WIDTH + if self.rect.top <= 0: + self.rect.top = 0 + if self.rect.bottom >= SCREEN_HEIGHT: + self.rect.bottom = SCREEN_HEIGHT diff --git a/settings.py b/settings.py new file mode 100644 index 0000000..c2eeac2 --- /dev/null +++ b/settings.py @@ -0,0 +1,2 @@ +SCREEN_WIDTH = 800 +SCREEN_HEIGHT = 600 \ No newline at end of file