generated from tipragot/rust
Add a camera system #69
|
@ -62,9 +62,12 @@ fn init_key_movement(mut commands: Commands){
|
|||
}
|
||||
|
||||
/// The fonction that move the camera with the keyboard.
|
||||
fn movement_system(mut query: Query<&mut Transform, With<Camera>>, keys: Res<Input<KeyCode>>, keys_settings: Res<KeysMovementSettings>) {
|
||||
fn movement_system(
|
||||
mut query: Query<&mut Transform, With<Camera>>,
|
||||
keys: Res<Input<KeyCode>>,
|
||||
keys_settings: Res<KeysMovementSettings>,
|
||||
) {
|
||||
for mut transform in query.iter_mut() {
|
||||
|
||||
let mut target = Vec3::ZERO;
|
||||
for key in keys.get_pressed() {
|
||||
match *key {
|
||||
|
@ -74,7 +77,6 @@ fn movement_system(mut query: Query<&mut Transform, With<Camera>>, keys: Res<Inp
|
|||
v if v == keys_settings.left => target.x -= CAMERRA_SPEED_MOVEMENT,
|
||||
_ => continue,
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
transform.translation += target;
|
||||
|
@ -82,20 +84,20 @@ fn movement_system(mut query: Query<&mut Transform, With<Camera>>, keys: Res<Inp
|
|||
}
|
||||
|
||||
/// The fonction that scale the camera with the mouse.
|
||||
fn scale_system(mut scroll_evr: EventReader<MouseWheel>, mut query: Query<&mut OrthographicProjection, With<Camera>>){
|
||||
fn scale_system(
|
||||
mut scroll_evr: EventReader<MouseWheel>,
|
||||
mut query: Query<&mut OrthographicProjection, With<Camera>>,
|
||||
) {
|
||||
for ev in scroll_evr.read() {
|
||||
for mut projection in query.iter_mut() {
|
||||
|
||||
if ev.unit != MouseScrollUnit::Line {
|
||||
return;
|
||||
}
|
||||
|
||||
let future_scale = ev.y.mul_add(CAMERRA_SPEED_SCALE, projection.scale);
|
||||
CoCo_Sol marked this conversation as resolved
Outdated
|
||||
if MIN_SCALE < future_scale && future_scale < MAX_SCALE {
|
||||
|
||||
projection.scale = future_scale;
|
||||
CoCo_Sol marked this conversation as resolved
Outdated
tipragot
commented
Don't use abreviations: https://youtu.be/-J3wNP6u5YU Don't use abreviations: https://youtu.be/-J3wNP6u5YU
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
use bevy::prelude::*;
|
||||
|
||||
pub mod camera;
|
||||
pub mod map;
|
||||
pub mod scenes;
|
||||
pub mod camera;
|
||||
|
||||
/// The current scene of the game.
|
||||
#[derive(Debug, Clone, Copy, Default, Eq, PartialEq, Hash, States)]
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
//! The main entry point of the game.
|
||||
|
||||
use bevy::prelude::*;
|
||||
use border_wars::{camera::CameraPlugin, scenes::ScenesPlugin};
|
||||
use border_wars::camera::CameraPlugin;
|
||||
use border_wars::scenes::ScenesPlugin;
|
||||
|
||||
fn main() {
|
||||
App::new()
|
||||
|
|
Loading…
Reference in a new issue
The view not the camera