Проектная работа - WIP

This commit is contained in:
13 changed files with 149 additions and 225 deletions
+6 -16
View File
@@ -6,11 +6,7 @@ use crate::{
};
/// Система поворота головы змеи
pub fn head_rotation(
input: Res<ButtonInput<KeyCode>>,
query: Single<(&mut Transform, &mut Direction), With<Head>>,
mut snake_path: ResMut<SnakePath>,
) {
pub fn head_rotation(input: Res<ButtonInput<KeyCode>>, query: Single<(&mut Transform, &mut Direction), With<Head>>, mut snake_path: ResMut<SnakePath>) {
use core::f32::consts::PI;
let (mut transform, mut direction) = query.into_inner();
@@ -33,17 +29,14 @@ pub fn head_rotation(
}
/// Система движения для всех движущихся сущностей
pub fn moving(
time: Res<Time<Fixed>>,
query: Query<(&mut Transform, &mut Inert, &Direction, &Velocity, Entity)>,
mut commands: Commands,
) {
pub fn moving(time: Res<Time<Fixed>>, query: Query<(&mut Transform, &mut Inert, &Direction, &Velocity, Entity)>, mut commands: Commands) {
for (mut transform, mut inert, direction, Velocity(velocity), entity) in query.into_iter() {
let src_transftorm = transform.clone();
let delta = velocity * time.delta_secs();
let src = inert.0.get_coord(&transform);
let sign = inert.0.get_change_sign();
let dst = src + sign * delta;
let mut splited = _split_by_grid_tracing(src, dst, GRID_SIZE as f32).into_iter();
let mut splited = split_by_grid(src, dst, GRID_SIZE as f32).into_iter();
let first = splited.next().unwrap_or((0.0, 0.0));
inert.0.set_coord(&mut transform, first.0);
if let Some(second) = splited.next() {
@@ -53,16 +46,13 @@ pub fn moving(
let sign = inert.0.get_change_sign();
let dst = src + sign * delta;
inert.0.set_coord(&mut transform, dst);
commands.trigger(GridBarier(entity));
commands.trigger(GridBarier::new(entity, (&src_transftorm).into(), transform.into()));
}
}
}
fn _split_by_grid_tracing(src: f32, dst: f32, grid: f32) -> Vec<(f32, f32)> {
let result = split_by_grid(src, dst, grid);
trace!(
"\tsplit_by_grid({:?}, {:?}, {:?}) -> {:?}",
src, dst, grid, result
);
trace!("\tsplit_by_grid({:?}, {:?}, {:?}) -> {:?}", src, dst, grid, result);
result
}