correction du bug de changement de direction qui permettait de faire un 180 degre en un deplacement, ce qui est interdit (cela provoquerai une mort instantanee)
This commit is contained in:
@@ -10,7 +10,7 @@ pub mod resources;
|
||||
pub mod sound;
|
||||
pub mod visuals;
|
||||
|
||||
use crate::components::{Direction, GridPosition, Head};
|
||||
use crate::components::{Direction, GridPosition, Head, PreviousPosition};
|
||||
use crate::food_gen::food_spawn;
|
||||
|
||||
use crate::movement::{change_direction, move_head};
|
||||
@@ -43,7 +43,8 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
|
||||
// on charge la tete du serpent a la position voulu
|
||||
commands.spawn((
|
||||
Head,
|
||||
GridPosition::new(10, 10),
|
||||
GridPosition::new(0, 0),
|
||||
PreviousPosition::new(0, 0),
|
||||
Direction::new(Direction::Up),
|
||||
Sprite::from_image(asset_server.load("head.png")),
|
||||
Transform::from_xyz(0.0, 0.0, 1.0),
|
||||
|
||||
@@ -40,11 +40,13 @@ pub fn change_direction(
|
||||
pub fn move_head(
|
||||
time: Res<Time>,
|
||||
mut timer: ResMut<MoveTimer>,
|
||||
mut query_head: Query<(&mut GridPosition, &Direction), With<Head>>,
|
||||
mut query_head: Query<(&mut GridPosition, &mut PreviousPosition, &Direction), With<Head>>,
|
||||
) {
|
||||
// si le timer atteint zero, la tete avance de 20 (la taille d'une case) dans la direction actuelle de la tete
|
||||
if timer.0.tick(time.delta()).just_finished() {
|
||||
for (mut position, direction) in &mut query_head {
|
||||
for (mut position, mut previous_position, direction) in &mut query_head {
|
||||
previous_position.x = position.x;
|
||||
previous_position.y = position.y;
|
||||
match direction {
|
||||
Direction::Up => position.y += 20,
|
||||
Direction::Down => position.y -= 20,
|
||||
|
||||
Reference in New Issue
Block a user