ajout de la barre de vie

This commit is contained in:
CoCo_Sol 2023-11-04 23:23:55 +01:00
parent 7e0898d848
commit 3dcc91a2df
2 changed files with 35 additions and 0 deletions

View file

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -5,6 +5,8 @@ Scene de Combat final contre edmond, inspiré du combat d'omega flowey dans unde
from enum import Enum from enum import Enum
import random import random
import pygame
from engine import CurrentScene, Scene from engine import CurrentScene, Scene
from engine.ecs import World from engine.ecs import World
from engine.math import Vec2 from engine.math import Vec2
@ -102,6 +104,12 @@ class Player:
""" """
class LifeBar:
"""
Composant qui represente la barre de vie du joueur.
"""
def __initialize_world(world: World): def __initialize_world(world: World):
""" """
TODO TODO
@ -130,6 +138,22 @@ def __initialize_world(world: World):
Player(), Player(),
) )
world.new_entity().set(
Sprite(
world[Assets].get_texture("barre_de_vie"),
Vec2(100, 980),
5,
),
)
surface_carre = pygame.Surface((1240 * world[Life] / 100, 50))
surface_carre.fill((42, 161, 245))
world.new_entity().set(Sprite(surface_carre, Vec2(100, 980), 4), LifeBar())
surface_carre = pygame.Surface((1240, 50))
surface_carre.fill((255, 225, 225))
world.new_entity().set(Sprite(surface_carre, Vec2(100, 980), 3))
def __move(world: World): def __move(world: World):
""" """
@ -229,6 +253,7 @@ def __check_hurt(world: World):
entity.destroy() entity.destroy()
world.new_entity().set(Coroutine(__set_hurtable_hurt(world))) world.new_entity().set(Coroutine(__set_hurtable_hurt(world)))
world.set(Hurtable.FALSE) world.set(Hurtable.FALSE)
__update_life_bar(world)
def __defeat(world: World): def __defeat(world: World):
@ -474,6 +499,16 @@ def __check_key_pressed(world: World):
world.new_entity().set(Coroutine(__create_spike(world, 5.0))) world.new_entity().set(Coroutine(__create_spike(world, 5.0)))
def __update_life_bar(world: World):
for entity in world.query(LifeBar):
if world[Life] == 0:
entity.destroy()
else:
surface_carre = pygame.Surface((1240 * world[Life] / 100, 50))
surface_carre.fill((42, 161, 245))
entity[Sprite].texture = surface_carre
def __new_game_scene() -> Scene: def __new_game_scene() -> Scene:
""" """
Créer une nouvelle scène Créer une nouvelle scène