From 6de64da31ef16358250ed18e4409f04687cf84bf Mon Sep 17 00:00:00 2001 From: Alexander Baranov Date: Tue, 9 Jun 2026 21:47:10 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20-=20WIP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- snake-game/src/debug.rs | 39 +++++++++++++++++++++++++++++++++++-- snake-game/src/observers.rs | 4 +++- snake-game/src/startup.rs | 1 + 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/snake-game/src/debug.rs b/snake-game/src/debug.rs index 2446f6e..388fed3 100644 --- a/snake-game/src/debug.rs +++ b/snake-game/src/debug.rs @@ -1,8 +1,8 @@ //! модуль с инструментами отладки -use bevy::prelude::*; +use bevy::{color::palettes::tailwind::*, prelude::*}; -use crate::domain::{Collision, GridBarier, GrowUp}; +use crate::domain::{Collision, GridBarier, GrowUp, Meal, Position}; /// вывод всех сущностей мира pub fn print_all_entities(mut commands: Commands, query: Query) { @@ -114,3 +114,38 @@ pub fn grow_up_on_tab(input: Res>, mut commands: Commands) pub fn trace_collisions(event: On) { trace!("collision detected: {event:?}") } + +pub fn spawn_some_meal(commands: &mut Commands) { + commands.spawn(( + Meal, + Sprite::from_color(YELLOW_200, vec2(40.0, 40.0)), // + Transform { + translation: Position::new(5, 7).translation().extend(0.0), + ..Default::default() + }, + )); + commands.spawn(( + Meal, + Sprite::from_color(YELLOW_200, vec2(40.0, 40.0)), // + Transform { + translation: Position::new(-3, -5).translation().extend(0.0), + ..Default::default() + }, + )); + commands.spawn(( + Meal, + Sprite::from_color(YELLOW_200, vec2(40.0, 40.0)), // + Transform { + translation: Position::new(4, -5).translation().extend(0.0), + ..Default::default() + }, + )); + commands.spawn(( + Meal, + Sprite::from_color(YELLOW_200, vec2(40.0, 40.0)), // + Transform { + translation: Position::new(-5, 6).translation().extend(0.0), + ..Default::default() + }, + )); +} diff --git a/snake-game/src/observers.rs b/snake-game/src/observers.rs index e72e7ae..11a4c02 100644 --- a/snake-game/src/observers.rs +++ b/snake-game/src/observers.rs @@ -47,10 +47,12 @@ pub fn grow_up_snake(_: On, mut commands: Commands, query: Single<(Entit pub fn handle_collisions( event: On, // query: Query<(&mut Velocity, &mut Sprite), Or<(With, With, With)>>, + mut commands: Commands, ) { match event.event() { Collision::Meal(entity) => { - todo!() + commands.entity(*entity).despawn(); + commands.trigger(GrowUp); } Collision::Bounds | Collision::Tail => { for (mut velocity, mut sprite) in query.into_iter() { diff --git a/snake-game/src/startup.rs b/snake-game/src/startup.rs index 38f1d67..caa1c02 100644 --- a/snake-game/src/startup.rs +++ b/snake-game/src/startup.rs @@ -27,6 +27,7 @@ pub fn startup(mut commands: Commands, mut time: ResMut>) { spawn_snake(&mut commands); crate::debug::spawn_grid(&mut commands); + crate::debug::spawn_some_meal(&mut commands); commands.spawn(Camera2d); }