Add initial game structure with entity, player, and screen management
This commit is contained in:
Vendored
+3
@@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"python-envs.defaultEnvManager": "ms-python.python:venv"
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
"""Entité générique comme le joueur ou la balle"""
|
||||||
|
import pygame
|
||||||
|
from typing import Tuple
|
||||||
|
from dataclasses import dataclass
|
||||||
|
from screen import Screen
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class Pos:
|
||||||
|
x: int
|
||||||
|
y: int
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class Velocity:
|
||||||
|
x: float
|
||||||
|
y: float
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class Entity:
|
||||||
|
name: str
|
||||||
|
pos: Pos
|
||||||
|
velocity: Velocity
|
||||||
|
image: pygame.Surface
|
||||||
|
|
||||||
|
screen_manager: Screen
|
||||||
|
screen: pygame.Surface
|
||||||
|
|
||||||
|
def __init__(self, name:str, origin:Tuple[int, int], image:pygame.Surface, screen_manager:Screen):
|
||||||
|
self.name:str = name
|
||||||
|
self.pos = Pos(*origin)
|
||||||
|
self.velocity = Velocity(0, 0)
|
||||||
|
|
||||||
|
self.image: pygame.Surface = image
|
||||||
|
self.screen_manager = screen_manager
|
||||||
|
self.screen: pygame.Surface = screen_manager.get_screen()
|
||||||
|
|
||||||
|
def apply_move(self):
|
||||||
|
self.pos.x += int(self.velocity.x)
|
||||||
|
self.pos.y += int(self.velocity.y)
|
||||||
|
|
||||||
|
def draw(self):...
|
||||||
|
def move(self, event:pygame.event.Event):...
|
||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
import pygame
|
||||||
|
from screen import Screen
|
||||||
|
from player import Player
|
||||||
|
|
||||||
|
class Game:
|
||||||
|
def __init__(self):
|
||||||
|
self.screen_manager = Screen()
|
||||||
|
self.screen = self.screen_manager.get_screen()
|
||||||
|
|
||||||
|
self.running = True
|
||||||
|
|
||||||
|
self.player = Player(self.screen_manager)
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
while (self.running):
|
||||||
|
for event in pygame.event.get():
|
||||||
|
if event.type == pygame.QUIT:
|
||||||
|
self.running = False
|
||||||
|
|
||||||
|
self.player.draw()
|
||||||
|
pygame.display.flip()
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
import pygame
|
||||||
|
from game import Game
|
||||||
|
|
||||||
|
pygame.init()
|
||||||
|
|
||||||
|
game = Game()
|
||||||
|
game.run()
|
||||||
|
|
||||||
|
pygame.quit()
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
import pygame
|
||||||
|
from entity import Entity
|
||||||
|
from screen import Screen
|
||||||
|
|
||||||
|
class Player(Entity):
|
||||||
|
def __init__(self, screen_manager: Screen):
|
||||||
|
size = (150, 5)
|
||||||
|
color_player = (255, 255, 255, 255)
|
||||||
|
|
||||||
|
image:pygame.Surface = pygame.Surface(size)
|
||||||
|
image.fill(color_player)
|
||||||
|
|
||||||
|
super().__init__("Player", (50, 50), image, screen_manager)
|
||||||
|
|
||||||
|
def draw(self):
|
||||||
|
self.screen.blit(self.image, (self.pos.x, self.pos.y))
|
||||||
|
|
||||||
|
def move(self, event:pygame.event.Event):
|
||||||
|
if (event.key == pygame.K_z or event.key == pygame.K_UP):
|
||||||
|
pass
|
||||||
|
if (event.key == pygame.K_s or event.key == pygame.K_DOWN):
|
||||||
|
pass
|
||||||
|
if (event.key == pygame.K_q or event.key == pygame.K_LEFT):
|
||||||
|
pass
|
||||||
|
if (event.key == pygame.K_d or event.key == pygame.K_RIGHT):
|
||||||
|
pass
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
import pygame
|
||||||
|
|
||||||
|
class Screen:
|
||||||
|
def __init__(self):
|
||||||
|
self.screen = pygame.display.set_mode((1080, 720))
|
||||||
|
pygame.display.set_caption("Pong")
|
||||||
|
|
||||||
|
def get_screen(self):
|
||||||
|
return self.screen
|
||||||
Reference in New Issue
Block a user