ecs #58
After Width: | Height: | Size: 682 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 28 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 27 KiB |
After Width: | Height: | Size: 25 KiB |
After Width: | Height: | Size: 27 KiB |
43
src/main.py
|
@ -2,49 +2,12 @@
|
|||
Module d'exemple de l'utilisation du moteur de jeu.
|
||||
"""
|
||||
|
||||
from engine import Scene, start_game
|
||||
from engine.ecs import World
|
||||
from engine import start_game
|
||||
from plugins import assets, defaults
|
||||
from plugins.animation import Animation
|
||||
from plugins.coroutine import Coroutine, condition, wait
|
||||
from plugins.hover import HoveredTexture
|
||||
from plugins.inputs import MousePosition
|
||||
|
||||
|
||||
def super_fonction_du_turfu(world: World):
|
||||
"""
|
||||
Fonction du turfu qui s'execute sur plusieurs frames.
|
||||
"""
|
||||
print("LOL")
|
||||
yield wait(10.0)
|
||||
print("LOL 10 secondes après")
|
||||
|
||||
animation = Animation("animations/intro")
|
||||
world.new_entity().set(animation)
|
||||
print("Started animation")
|
||||
yield animation.wait()
|
||||
print("Animation ended")
|
||||
|
||||
yield condition(lambda world: world.get(MousePosition).x > 500)
|
||||
print("La souris est a droite !")
|
||||
from scenes import menu
|
||||
|
||||
|
||||
start_game(
|
||||
defaults.PLUGIN,
|
||||
assets.loading_scene(
|
||||
Scene(
|
||||
[
|
||||
lambda world: world.new_entity().set(
|
||||
Coroutine(super_fonction_du_turfu(world)),
|
||||
HoveredTexture(
|
||||
world[assets.Assets].get_texture("directory"),
|
||||
world[assets.Assets].get_texture("attack_point"),
|
||||
),
|
||||
)
|
||||
],
|
||||
[],
|
||||
[],
|
||||
),
|
||||
"textures",
|
||||
),
|
||||
assets.loading_scene(menu.SCENE, "menu"),
|
||||
)
|
||||
|
|
|
@ -52,6 +52,10 @@ def __update_input(world: World):
|
|||
held = world[Held]
|
||||
released = world[Released]
|
||||
|
||||
# On clear les touches pressées et relachées
|
||||
pressed.clear()
|
||||
released.clear()
|
||||
|
||||
# On récupère les évenements de pygame
|
||||
for event in pygame.event.get():
|
||||
if event.type == pygame.QUIT:
|
||||
|
|
3
src/scenes/__init__.py
Normal file
|
@ -0,0 +1,3 @@
|
|||
"""
|
||||
Module contenant toutes les scènes du jeu.
|
||||
"""
|
58
src/scenes/menu.py
Normal file
|
@ -0,0 +1,58 @@
|
|||
"""
|
||||
La scène du menu principal du jeu.
|
||||
|
||||
Dans cette scène nous pouvons choisir le mode de jeu.
|
||||
"""
|
||||
|
||||
from engine import CurrentScene, Scene
|
||||
from engine.ecs import Entity, World
|
||||
from engine.math import Vec2
|
||||
from plugins import render
|
||||
from plugins.assets import Assets
|
||||
from plugins.click import Clickable
|
||||
from plugins.hover import HoveredTexture
|
||||
from plugins.render import Sprite
|
||||
from plugins.sound import Sound
|
||||
|
||||
|
||||
def __create_button(world: World, assets: Assets, i: int, name: str):
|
||||
"""
|
||||
Ajoute un bouton au monde.
|
||||
"""
|
||||
world.new_entity().set(
|
||||
Sprite(
|
||||
assets.error_texture,
|
||||
Vec2(render.WIDTH / 2, 450 + 150 * i),
|
||||
origin=Vec2(0.5),
|
||||
),
|
||||
HoveredTexture(
|
||||
assets.get_texture(f"button_{name}"),
|
||||
assets.get_texture(f"button_{name}_hover"),
|
||||
),
|
||||
Clickable(lambda world, entity: __on_click_butons(world, entity, name)),
|
||||
)
|
||||
|
||||
|
||||
def __on_click_butons(world: World, entity: Entity, name: str):
|
||||
"""
|
||||
Fonction qui s'execute quand on clique sur un bouton.
|
||||
"""
|
||||
entity[Sound] = Sound(world[Assets].get_sound("click"))
|
||||
|
||||
|
||||
def __spawn_elements(world: World):
|
||||
"""
|
||||
Ajoute les éléments du menu dans le monde.
|
||||
"""
|
||||
assets = world[Assets]
|
||||
world.new_entity().set(Sprite(assets.get_texture("background")))
|
||||
scenes_name = ["classique", "menteur", "tricheur", "histoire"]
|
||||
for i, name in enumerate(scenes_name):
|
||||
__create_button(world, assets, i, name)
|
||||
|
||||
|
||||
SCENE = Scene(
|
||||
[__spawn_elements],
|
||||
[],
|
||||
[],
|
||||
)
|