Add mouse controls
This commit is contained in:
parent
647239b155
commit
ed917e3044
|
@ -48,7 +48,7 @@ def __on_click_butons(world: World, _entity: Entity, name: str):
|
|||
case "tricheur":
|
||||
world[CurrentScene] = base_game.CHEATER
|
||||
case "histoire":
|
||||
world[CurrentScene] = directory_search.SCENE
|
||||
world[CurrentScene] = boss_fight.SCENE
|
||||
case _:
|
||||
pass
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ from engine.math import Vec2
|
|||
from plugins import assets, smooth
|
||||
from plugins import render
|
||||
from plugins.animation import Animation
|
||||
from plugins.inputs import Held
|
||||
from plugins.inputs import Held, MousePosition
|
||||
from plugins.render import Sprite
|
||||
from plugins.assets import Assets
|
||||
from plugins.coroutine import condition, wait, Coroutine
|
||||
|
@ -192,6 +192,24 @@ def __move(world: World):
|
|||
held = world[Held]
|
||||
s_pos = world[ShieldPos]
|
||||
for entity in world.query(Sprite, Velocity):
|
||||
if "button_1" in held:
|
||||
world[ShieldPos] += (
|
||||
(world[MousePosition] - world[ShieldPos]).normalized
|
||||
* entity[Velocity]
|
||||
* world[Delta]
|
||||
)
|
||||
box = world[FightBox]
|
||||
if world[ShieldPos].x < box.p1[0] + 37:
|
||||
world[ShieldPos].x = box.p1[0] + 37
|
||||
if world[ShieldPos].x > box.p2[0] - 37:
|
||||
world[ShieldPos].x = box.p2[0] - 37
|
||||
if world[ShieldPos].y < box.p1[1] + 45.5:
|
||||
world[ShieldPos].y = box.p1[1] + 45.5
|
||||
if world[ShieldPos].y > box.p2[1] - 45.5:
|
||||
world[ShieldPos].y = box.p2[1] - 45.5
|
||||
entity[smooth.Target] = world[ShieldPos]
|
||||
continue
|
||||
|
||||
for key in held:
|
||||
if key in ("up", "z"):
|
||||
if (
|
||||
|
@ -308,12 +326,6 @@ def __defeat(world: World):
|
|||
world[CurrentScene] = __new_game_scene()
|
||||
|
||||
|
||||
class AWave:
|
||||
"""
|
||||
TODO
|
||||
"""
|
||||
|
||||
|
||||
def __wave(world: World):
|
||||
entities: list[Entity] = []
|
||||
for i, actuel_wave in enumerate(world[Wave].wave_list):
|
||||
|
@ -323,28 +335,26 @@ def __wave(world: World):
|
|||
case "rainning":
|
||||
entity = world.new_entity()
|
||||
entities.append(entity)
|
||||
entity.set(AWave(), Coroutine(__rainning_projectiles(world)))
|
||||
entity.set(Coroutine(__rainning_projectiles(world)))
|
||||
case "zones":
|
||||
entity = world.new_entity()
|
||||
entities.append(entity)
|
||||
entity.set(AWave(), Coroutine(__create_zone_attack(world)))
|
||||
entity.set(Coroutine(__create_zone_attack(world)))
|
||||
|
||||
case "spikes":
|
||||
entity = world.new_entity()
|
||||
entities.append(entity)
|
||||
entity.set(AWave(), Coroutine(__create_spike(world)))
|
||||
entity.set(Coroutine(__create_spike(world)))
|
||||
|
||||
case "horizontal_left":
|
||||
entity = world.new_entity()
|
||||
entities.append(entity)
|
||||
entity.set(AWave(), Coroutine(__horizontal_projectile(world, True)))
|
||||
entity.set(Coroutine(__horizontal_projectile(world, True)))
|
||||
|
||||
case "horizontal_right":
|
||||
entity = world.new_entity()
|
||||
entities.append(entity)
|
||||
entity.set(
|
||||
AWave(), Coroutine(__horizontal_projectile(world, False))
|
||||
)
|
||||
entity.set(Coroutine(__horizontal_projectile(world, False)))
|
||||
case _:
|
||||
pass
|
||||
yield wait(0.5)
|
||||
|
@ -602,7 +612,7 @@ def __horizontal_projectile(world: World, left: bool, number: int = 10):
|
|||
entity.set(
|
||||
HorizontalProjectiles(),
|
||||
Sprite(
|
||||
world[Assets].get_texture("error"),
|
||||
world[Assets].get_texture("projectiles_coming/0000"),
|
||||
Vec2(10 if left else render.WIDTH - 10, random.randint(500, 889)),
|
||||
4,
|
||||
),
|
||||
|
|
|
@ -16,6 +16,7 @@ from plugins.assets import Assets
|
|||
from plugins.render import Sprite
|
||||
from plugins.sound import Sound
|
||||
from plugins.text import Text
|
||||
from scenes.story import boss_fight
|
||||
|
||||
|
||||
LINES = 3
|
||||
|
@ -185,7 +186,10 @@ def __game_loop(world: World):
|
|||
yield wait(5.0 - (i * 0.4))
|
||||
__spawn_search_directory(world)
|
||||
yield wait(5.0)
|
||||
print("BRABO BG !")
|
||||
|
||||
# On passe a la scène de jeu (TEMP)
|
||||
yield wait(5.0)
|
||||
world[CurrentScene] = boss_fight.SCENE
|
||||
|
||||
|
||||
def __spawn_search_alerts(world: World, nb_alerts: int):
|
||||
|
|
Loading…
Reference in a new issue