Ajout rainning projectiles
This commit is contained in:
parent
1e26bc2851
commit
bd7176e791
Binary file not shown.
Before Width: | Height: | Size: 30 KiB |
Binary file not shown.
Before Width: | Height: | Size: 29 KiB |
|
@ -5,7 +5,7 @@ Scene de Combat final contre edmond, inspiré du combat d'omega flowey dans unde
|
|||
from enum import Enum
|
||||
import random
|
||||
from tkinter import RIGHT
|
||||
from turtle import down, left, right
|
||||
from turtle import down, left, right, shapesize
|
||||
|
||||
from engine import CurrentScene, Scene
|
||||
from engine.ecs import World
|
||||
|
@ -92,14 +92,26 @@ class Hurtable(Enum):
|
|||
FALSE = 1
|
||||
|
||||
|
||||
class IsRunning:
|
||||
"""
|
||||
Ressource qui definit si le jeux est en cours
|
||||
"""
|
||||
|
||||
|
||||
def __initialize_world(world: World):
|
||||
"""
|
||||
TODO
|
||||
"""
|
||||
world.set(
|
||||
ShieldPos(Vec2(render.WIDTH / 2, 750)), FightBox(), Life(100), Hurtable.TRUE
|
||||
ShieldPos(Vec2(render.WIDTH / 2, 750)),
|
||||
FightBox(),
|
||||
Life(100),
|
||||
Hurtable.TRUE,
|
||||
IsRunning(),
|
||||
)
|
||||
|
||||
world.new_entity().set(Coroutine(__rainning_projectiles(world)))
|
||||
|
||||
world.new_entity().set(Sprite(world[Assets].get_texture("background")))
|
||||
|
||||
world.new_entity().set(
|
||||
|
@ -211,6 +223,7 @@ def __defeat(world: World):
|
|||
TODO
|
||||
"""
|
||||
if world[Life] <= 0:
|
||||
world.remove(IsRunning)
|
||||
world[CurrentScene] = __new_game_scene()
|
||||
|
||||
|
||||
|
@ -384,10 +397,53 @@ def __create_spike(world: World, time: float):
|
|||
|
||||
yield wait(time)
|
||||
|
||||
top_spike.destroy()
|
||||
down_spike.destroy()
|
||||
left_spike.destroy()
|
||||
right_spike.destroy()
|
||||
top_spike.set(
|
||||
Animation(
|
||||
"spike/spike_up_leaving",
|
||||
30,
|
||||
callback=lambda world, entity: entity.destroy(),
|
||||
)
|
||||
)
|
||||
down_spike.set(
|
||||
Animation(
|
||||
"spike/spike_down_leaving",
|
||||
30,
|
||||
callback=lambda world, entity: entity.destroy(),
|
||||
)
|
||||
)
|
||||
left_spike.set(
|
||||
Animation(
|
||||
"spike/spike_left_leaving",
|
||||
30,
|
||||
callback=lambda world, entity: entity.destroy(),
|
||||
)
|
||||
)
|
||||
right_spike.set(
|
||||
Animation(
|
||||
"spike/spike_right_leaving",
|
||||
30,
|
||||
callback=lambda world, entity: entity.destroy(),
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def __rainning_projectiles(world: World):
|
||||
while IsRunning:
|
||||
entity = world.new_entity()
|
||||
entity.set(
|
||||
Sprite(
|
||||
world[Assets].get_texture("error"),
|
||||
Vec2(random.randint(0, 1399), 300),
|
||||
4,
|
||||
),
|
||||
Animation("projectiles", 60, True),
|
||||
smooth.Speed(1.3),
|
||||
Hurt(10),
|
||||
)
|
||||
entity.set(smooth.Target(Vec2(entity[Sprite].position.x, 1121)))
|
||||
yield wait(0.5)
|
||||
if entity[Sprite].position.y >= 1080:
|
||||
entity.destroy()
|
||||
|
||||
|
||||
def __check_key_pressed(world: World):
|
||||
|
@ -409,7 +465,12 @@ def __new_game_scene() -> Scene:
|
|||
return (
|
||||
Scene(
|
||||
[__initialize_world],
|
||||
[__move, __check_key_pressed, __check_hurt, __defeat],
|
||||
[
|
||||
__move,
|
||||
__check_key_pressed,
|
||||
__check_hurt,
|
||||
__defeat,
|
||||
],
|
||||
[],
|
||||
)
|
||||
+ smooth.PLUGIN
|
||||
|
|
Loading…
Reference in a new issue