from pybevy.input import AccumulatedMouseMotion, MouseInput, MouseWheel
from pybevy.prelude import *
def mouse_click_system(mouse_button_input: Res[MouseInput]) -> None:
if mouse_button_input.pressed(MouseButton.Left()):
print("left mouse currently pressed")
if mouse_button_input.just_pressed(MouseButton.Left()):
print("left mouse just pressed")
if mouse_button_input.just_released(MouseButton.Left()):
print("left mouse just released")
def mouse_move_system(
accumulated_mouse_motion: Res[AccumulatedMouseMotion],
mouse_scroll: MessageReader[MouseWheel],
) -> None:
if accumulated_mouse_motion.delta.x != 0.0 or accumulated_mouse_motion.delta.y != 0.0:
print(
f"mouse moved ({accumulated_mouse_motion.delta.x}, {accumulated_mouse_motion.delta.y})"
)
for event in mouse_scroll:
if event.x != 0.0 or event.y != 0.0:
print(f"mouse scrolled ({event.x}, {event.y})")
@entrypoint
def main(app: App) -> App:
return app.add_plugins(DefaultPlugins).add_systems(
Update, (mouse_click_system, mouse_move_system)
)
if __name__ == "__main__":
main().run()