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::input::Input;
|
||||||
use bevy::math::Vec3;
|
use bevy::math::Vec3;
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
|
use bevy::render::primitives::Frustum;
|
||||||
use bevy::sprite::{Sprite, SpriteBundle};
|
use bevy::sprite::{Sprite, SpriteBundle};
|
||||||
use bevy::text::Text;
|
use bevy::text::Text;
|
||||||
use bevy::window::Windows;
|
use bevy::window::Windows;
|
||||||
@ -264,8 +265,11 @@ fn expiration_date_system(
|
|||||||
|
|
||||||
fn arnold_movement_system(
|
fn arnold_movement_system(
|
||||||
keyboard_input: Res<Input<KeyCode>>,
|
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 arnold, mut sprite, mut transform) = query.single_mut();
|
||||||
|
|
||||||
let mut velocity = Vec3::new(0.0, 0.0, 0.0);
|
let mut velocity = Vec3::new(0.0, 0.0, 0.0);
|
||||||
@ -293,6 +297,7 @@ fn arnold_movement_system(
|
|||||||
}
|
}
|
||||||
|
|
||||||
transform.translation += velocity;
|
transform.translation += velocity;
|
||||||
|
cam_transform.translation += velocity;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn arnold_attack_system(
|
fn arnold_attack_system(
|
||||||
@ -332,6 +337,7 @@ fn enemy_spawner_system(
|
|||||||
windows: Res<Windows>,
|
windows: Res<Windows>,
|
||||||
time: Res<Time>,
|
time: Res<Time>,
|
||||||
mut query: Query<&mut EnemySpawner>,
|
mut query: Query<&mut EnemySpawner>,
|
||||||
|
query_player: Query<&Transform, With<Arnold>>,
|
||||||
) {
|
) {
|
||||||
let mut enemy_spawner = query.single_mut();
|
let mut enemy_spawner = query.single_mut();
|
||||||
|
|
||||||
@ -349,7 +355,8 @@ fn enemy_spawner_system(
|
|||||||
.spawn_bundle(SpriteBundle {
|
.spawn_bundle(SpriteBundle {
|
||||||
texture: assets.load("monster.png"),
|
texture: assets.load("monster.png"),
|
||||||
transform: Transform {
|
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()
|
||||||
},
|
},
|
||||||
..Default::default()
|
..Default::default()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user