ecs #58
After Width: | Height: | Size: 216 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 4 KiB |
After Width: | Height: | Size: 6 KiB |
52
src/scenes/directory_search.py
Normal file
52
src/scenes/directory_search.py
Normal 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",
|
||||
)
|
Loading…
Reference in a new issue