From 01e4afd552e2b6f33a5b6d976bb8da5f73f63956 Mon Sep 17 00:00:00 2001 From: paulusja Date: Thu, 16 Apr 2026 16:09:49 +0200 Subject: [PATCH] Add first version of snake. --- snake/game_object.py | 3 +++ snake/main.py | 12 +++++++++++- snake/snake.py | 15 +++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 snake/game_object.py create mode 100644 snake/snake.py diff --git a/snake/game_object.py b/snake/game_object.py new file mode 100644 index 0000000..354c653 --- /dev/null +++ b/snake/game_object.py @@ -0,0 +1,3 @@ +class GameObject: + def draw(self, surface): + pass \ No newline at end of file diff --git a/snake/main.py b/snake/main.py index efebd99..11025ab 100644 --- a/snake/main.py +++ b/snake/main.py @@ -1,11 +1,21 @@ import pygame from window import Window from input_manager import InputManager +from snake import Snake + +def draw(window, game_objs): + window.reset() + + for obj in game_objs: + window.draw_object(obj) if __name__ == '__main__': window = Window(title='Snake', size=(800, 600), background_color=(0, 128, 0)) input_manager = InputManager() + game_objs = [Snake(start_position=(400, 300), + radius=10, + color=(255, 0, 255))] clock = pygame.time.Clock() framerate = 25 @@ -15,7 +25,7 @@ if __name__ == '__main__': while last_input != InputManager.QUIT: last_input = input_manager.process_input() - window.reset() + draw(window, game_objs) clock.tick(framerate) pygame.display.flip() diff --git a/snake/snake.py b/snake/snake.py new file mode 100644 index 0000000..72181a9 --- /dev/null +++ b/snake/snake.py @@ -0,0 +1,15 @@ +import pygame +from game_object import GameObject + + +class Snake(GameObject): + def __init__(self, start_position, radius, color): + self.__pos = start_position + self.__radius = radius + self.__color = color + + def draw(self, surface): + pygame.draw.circle(surface=surface, + color=self.__color, + center=self.__pos, + radius=self.__radius) \ No newline at end of file