Add camera movement

This commit is contained in:
Gender Shrapnel 2022-05-13 01:13:09 +02:00
parent 305f8740ab
commit 7e49baf599
2 changed files with 19 additions and 0 deletions

View File

@ -1,6 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="CompilerExplorerSettingsProvider"> <component name="CompilerExplorerSettingsProvider">
<option name="enabled" value="false" />
<option name="highlightColorRGB" value="-16711681" /> <option name="highlightColorRGB" value="-16711681" />
<option name="initialNoticeShown" value="true" />
</component> </component>
</project> </project>

View File

@ -1,3 +1,4 @@
use bevy::input::mouse::MouseMotion;
use bevy::prelude::*; use bevy::prelude::*;
use bevy_ecs_tilemap::prelude::*; use bevy_ecs_tilemap::prelude::*;
@ -34,6 +35,21 @@ fn startup(mut commands: Commands, asset_server: Res<AssetServer>, mut map_query
.insert(GlobalTransform::default()); .insert(GlobalTransform::default());
} }
fn mouse_motion(
mut motion_evr: EventReader<MouseMotion>,
buttons: Res<Input<MouseButton>>,
mut query: Query<(&mut Transform, &mut OrthographicProjection), With<Camera>>,
) {
if buttons.pressed(MouseButton::Middle) {
for ev in motion_evr.iter() {
for (mut transform, mut _ortho) in query.iter_mut() {
let direction = Vec3::new(ev.delta.x, ev.delta.y * -1.0, 0.0);
transform.translation += direction;
}
}
}
}
fn main() { fn main() {
App::new() App::new()
.insert_resource(WindowDescriptor { .insert_resource(WindowDescriptor {
@ -46,5 +62,6 @@ fn main() {
.add_plugin(TilemapPlugin) .add_plugin(TilemapPlugin)
.add_startup_system(startup) .add_startup_system(startup)
.add_system(helpers::texture::set_texture_filters_to_nearest) .add_system(helpers::texture::set_texture_filters_to_nearest)
.add_system(mouse_motion)
.run(); .run();
} }