bevy_interact_2d

Crates.iobevy_interact_2d
lib.rsbevy_interact_2d
version0.9.0
sourcesrc
created_at2021-05-05 20:17:01.461487
updated_at2022-12-28 22:19:44.266252
descriptionA Bevy plugin for 2d mouse interactions
homepagehttp://github.com/Anshorei/bevy_rei
repositoryhttp://github.com/Anshorei/bevy_rei
max_upload_size
id393554
size117,413
Ansho Rei (Anshorei)

documentation

http://github.com/Anshorei/bevy_rei

README

Bevy Interact 2D

Work in progress

Plugin library for the Bevy game engine to easily add mouse interactions to 2d games.

Can help you with:

  • Hovering
  • Clicking
  • Dragging & Droppings

Progress bar example

Using Interact2D

Add the interaction plugin, or use the InteractionDebugPlugin instead when debugging.

App::build()
  .add_plugin(InteractionPlugin)

Spawn a camera with an interaction source with a number of interaction groups.

commands
  .spawn_bundle(OrthographicCameraBundle::new_2d())
  .insert(InteractionSource {
    groups: vec![Group(0), Group(1)],
    ..Default::default()
  })

Spawn an interactable entity

commands
  .spawn()
  .insert(Interactable {
    groups: vec![Group(0)],
    bounding_box: (Vec2::new(0., 0.), Vec2::new(10., 10.)),
    ..Default::default()
  })

Now you can create a system that uses the interaction state

fn interaction_system(
  mouse_button_input: Res<Input<MouseButton>>,
  interaction_state: Res<InteractionState>,
) {
  if !mouse_button_input.just_released(MouseButton::Left) {
    return;
  }

  for (entity, coords) in interaction_state.get_group(Group(0)).iter() {
    // Do something
  }
}
Commit count: 0

cargo fmt