center camera while zoomed out
This commit is contained in:
parent
492c4238cb
commit
32c67d46d5
2 changed files with 9 additions and 6 deletions
10
src/game.rs
10
src/game.rs
|
@ -137,7 +137,7 @@ fn setup(
|
||||||
first_level: Res<FirstLevel>,
|
first_level: Res<FirstLevel>,
|
||||||
mut current_level: ResMut<CurrentLevel>,
|
mut current_level: ResMut<CurrentLevel>,
|
||||||
mut level_startup_event: EventWriter<LevelStartupEvent>,
|
mut level_startup_event: EventWriter<LevelStartupEvent>,
|
||||||
mut camera_query: Query<(&mut Transform, &mut OrthographicProjection), With<Camera>>,
|
mut camera_query: Query<&mut Transform, With<Camera>>,
|
||||||
mut zoom_timer: ResMut<levels::ZoomTimer>,
|
mut zoom_timer: ResMut<levels::ZoomTimer>,
|
||||||
) {
|
) {
|
||||||
if current_level.0.is_none() {
|
if current_level.0.is_none() {
|
||||||
|
@ -591,7 +591,11 @@ fn camera_system(
|
||||||
|
|
||||||
if zoom_timer.0.finished() {
|
if zoom_timer.0.finished() {
|
||||||
projection.scale = lerp(projection.scale, 1.0, time.delta_seconds() * ZOOM_SPEED);
|
projection.scale = lerp(projection.scale, 1.0, time.delta_seconds() * ZOOM_SPEED);
|
||||||
} else { zoom_timer.0.tick(time.delta()); }
|
} else {
|
||||||
|
projection.scale = 3.0;
|
||||||
|
camera_transform.translation = Vec3::ZERO;
|
||||||
|
zoom_timer.0.tick(time.delta());
|
||||||
|
}
|
||||||
|
|
||||||
// always make sure that camera is away from the object in order to render them
|
// always make sure that camera is away from the object in order to render them
|
||||||
camera_transform.translation.z = 999.0;
|
camera_transform.translation.z = 999.0;
|
||||||
|
@ -613,7 +617,7 @@ fn level_keyboard_system(
|
||||||
mut commands: Commands,
|
mut commands: Commands,
|
||||||
mut current_level: ResMut<CurrentLevel>,
|
mut current_level: ResMut<CurrentLevel>,
|
||||||
mut level_startup_event: EventWriter<LevelStartupEvent>,
|
mut level_startup_event: EventWriter<LevelStartupEvent>,
|
||||||
mut camera_query: Query<(&mut Transform, &mut OrthographicProjection), With<Camera>>,
|
mut camera_query: Query<&mut Transform, With<Camera>>,
|
||||||
keyboard_input: Res<Input<KeyCode>>,
|
keyboard_input: Res<Input<KeyCode>>,
|
||||||
mut character_list: ResMut<CharacterList>,
|
mut character_list: ResMut<CharacterList>,
|
||||||
level_query: Query<Entity, With<Level>>,
|
level_query: Query<Entity, With<Level>>,
|
||||||
|
|
|
@ -22,12 +22,11 @@ impl Default for ZoomTimer {
|
||||||
|
|
||||||
pub fn setup_level(
|
pub fn setup_level(
|
||||||
level_startup_event: &mut EventWriter<LevelStartupEvent>,
|
level_startup_event: &mut EventWriter<LevelStartupEvent>,
|
||||||
camera_query: &mut Query<(&mut Transform, &mut OrthographicProjection), With<Camera>>,
|
camera_query: &mut Query<&mut Transform, With<Camera>>,
|
||||||
zoom_timer: &mut ResMut<ZoomTimer>,
|
zoom_timer: &mut ResMut<ZoomTimer>,
|
||||||
) {
|
) {
|
||||||
let (mut transform, mut projection) = camera_query.single_mut();
|
let mut transform = camera_query.single_mut();
|
||||||
transform.translation = Default::default();
|
transform.translation = Default::default();
|
||||||
projection.scale = 3.0;
|
|
||||||
|
|
||||||
zoom_timer.0.reset();
|
zoom_timer.0.reset();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue