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