Make camera move with player
This commit is contained in:
parent
ba8cc16782
commit
b21065a3ed
11
src/main.rs
11
src/main.rs
@ -5,6 +5,7 @@ use bevy::input::system::exit_on_esc_system;
|
||||
use bevy::input::Input;
|
||||
use bevy::math::Vec3;
|
||||
use bevy::prelude::*;
|
||||
use bevy::render::primitives::Frustum;
|
||||
use bevy::sprite::{Sprite, SpriteBundle};
|
||||
use bevy::text::Text;
|
||||
use bevy::window::Windows;
|
||||
@ -264,8 +265,11 @@ fn expiration_date_system(
|
||||
|
||||
fn arnold_movement_system(
|
||||
keyboard_input: Res<Input<KeyCode>>,
|
||||
mut query: Query<(&mut Arnold, &mut Sprite, &mut Transform)>,
|
||||
mut query: Query<(&mut Arnold, &mut Sprite, &mut Transform), Without<Camera>>,
|
||||
// Hack to get exactly the right camera (the one for the given 2d scene, not the UI one)
|
||||
mut cam_query: Query<(&Camera, &mut Transform), With<Frustum>>,
|
||||
) {
|
||||
let (_cam, mut cam_transform) = cam_query.single_mut();
|
||||
let (mut arnold, mut sprite, mut transform) = query.single_mut();
|
||||
|
||||
let mut velocity = Vec3::new(0.0, 0.0, 0.0);
|
||||
@ -293,6 +297,7 @@ fn arnold_movement_system(
|
||||
}
|
||||
|
||||
transform.translation += velocity;
|
||||
cam_transform.translation += velocity;
|
||||
}
|
||||
|
||||
fn arnold_attack_system(
|
||||
@ -332,6 +337,7 @@ fn enemy_spawner_system(
|
||||
windows: Res<Windows>,
|
||||
time: Res<Time>,
|
||||
mut query: Query<&mut EnemySpawner>,
|
||||
query_player: Query<&Transform, With<Arnold>>,
|
||||
) {
|
||||
let mut enemy_spawner = query.single_mut();
|
||||
|
||||
@ -349,7 +355,8 @@ fn enemy_spawner_system(
|
||||
.spawn_bundle(SpriteBundle {
|
||||
texture: assets.load("monster.png"),
|
||||
transform: Transform {
|
||||
translation: Vec3::new(phi.cos() * spawn_distance, phi.sin() * spawn_distance, 0.0),
|
||||
translation: query_player.single().translation
|
||||
+ Vec3::new(phi.cos() * spawn_distance, phi.sin() * spawn_distance, 0.0),
|
||||
..Default::default()
|
||||
},
|
||||
..Default::default()
|
||||
|
Loading…
x
Reference in New Issue
Block a user