Handles mouse input (prototype)
This commit is contained in:
1 parent
fe9fc14849
commit
0e3f07938c
5 files changed
+76
-6
No files matched your search
@@ -1,8 +1,9 @@
|
||||
from random import randint
|
||||
|
||||
import pyglet
|
||||
from pyglet.window.mouse import LEFT
|
||||
from pyglet.shapes import Circle, Line
|
||||
from components import PlanetMarker, SpaceShipMarker
|
||||
from components import PlanetMarker, Position, Radius, SpaceShipMarker, Vector2D
|
||||
from helpers import generate_random_planet, generate_random_spaceship
|
||||
from libs.ecs.world import World
|
||||
from libs.ecs.event import EventBus
|
||||
@@ -42,11 +43,25 @@ def on_draw():
|
||||
for _, component_storage in world.query(SpaceShipMarker):
|
||||
component_storage[Line].draw()
|
||||
|
||||
for _, component_storage in world.query(SpaceShipMarker):
|
||||
component_storage[Circle].draw()
|
||||
|
||||
for _, component_storage in world.query(PlanetMarker):
|
||||
component_storage[Circle].draw()
|
||||
|
||||
for _, component_storage in world.query(SpaceShipMarker):
|
||||
component_storage[Circle].draw()
|
||||
|
||||
@window.event
|
||||
def on_mouse_release(x, y, button, modifiers):
|
||||
if button == LEFT:
|
||||
closest_entity, component_storage = min(
|
||||
world.query(PlanetMarker),
|
||||
key=lambda p: abs(p[1][Position] - Vector2D(x, y)),
|
||||
)
|
||||
pos = component_storage[Position]
|
||||
if component_storage[Radius].value < abs(pos - Vector2D(x, y)):
|
||||
print("NO PLANET")
|
||||
else:
|
||||
print("PLANET")
|
||||
|
||||
|
||||
def on_update(dt):
|
||||
|
||||
Reference in new issue
Block a user