ecs #58

Merged
raphael merged 70 commits from ecs into main 2023-11-03 15:29:36 +00:00
6 changed files with 52 additions and 0 deletions
Showing only changes of commit 4af47f74ba - Show all commits

View file

@ -0,0 +1,52 @@
"""
Scène du jeu dans lequel Windows Defender se cache de Edmond dans les dossiers.
"""
from engine import Scene
from engine.ecs import Entity
from engine.math import Vec2
from plugins import assets as plugin_assets, render
LINES = 3
COLUMNS = 5
SPACING = 200
class DirectoryPosition(Vec2):
"""
Composant représentant la position d'un dossier sur la grille.
"""
def screen_position(self) -> Vec2:
"""
Calcule la position du dossier sur l'écran.
"""
offset = -(Vec2(SPACING) * Vec2(COLUMNS - 1, LINES - 1) / 2)
first_position = Vec2(render.WIDTH / 2, render.HEIGHT / 2) + offset
return first_position + Vec2(self.x, self.y) * Vec2(SPACING)
class SelectedDirectory:
"""
Ressource permettant de savoir quel dossier a été cliqué pour la dernière fois.
Cette ressource est utilisé pous savoir quel dossier déplacer en
analysant les déplacements de la souris. Pour cela la ressource
contient l'entité du dossier cliqué ainsi que la position
de la souris lors du clic.
"""
def __init__(self, entity: Entity, position: Vec2):
self.entity = entity
self.position = position
SCENE = plugin_assets.loading_scene(
Scene(
[],
[],
[],
),
"story/directory_search",
)