Collision test

This commit is contained in:
Rendo 2025-11-15 10:26:49 +05:00
commit 0181ad7f2d
3 changed files with 34 additions and 1 deletions

View file

@ -11,6 +11,12 @@ impl Plugin for CollisionPlugin {
#[derive(Component)] #[derive(Component)]
pub struct Collider(pub f32); pub struct Collider(pub f32);
impl Collider {
pub fn new(radius: f32) -> Collider {
Collider(radius)
}
}
#[derive(EntityEvent)] #[derive(EntityEvent)]
pub struct Collided { pub struct Collided {
pub entity: Entity, pub entity: Entity,

4
src/damagable/enemy.rs Normal file
View file

@ -0,0 +1,4 @@
use bevy::ecs::component::Component;
#[derive(Component)]
pub struct Enemy;

View file

@ -1,7 +1,14 @@
use bevy::prelude::*; use bevy::prelude::*;
use crate::damagable::player::{Player, player_movement_system}; use crate::{
collision::{Collided, Collider},
damagable::{
enemy::Enemy,
player::{Player, player_movement_system},
},
};
pub mod enemy;
pub mod player; pub mod player;
pub struct DamagablePlugin; pub struct DamagablePlugin;
@ -32,6 +39,7 @@ pub struct Movable {
fn setup(mut commands: Commands, asset_server: Res<AssetServer>) { fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
let player_sprite: Handle<Image> = asset_server.load("player.png"); let player_sprite: Handle<Image> = asset_server.load("player.png");
let enemy_sprite: Handle<Image> = asset_server.load("enemy.png");
commands.spawn(Camera2d); commands.spawn(Camera2d);
@ -47,6 +55,21 @@ fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
Damagable { hp: 10 }, Damagable { hp: 10 },
Sprite::from_image(player_sprite), Sprite::from_image(player_sprite),
Transform::from_xyz(20., 20., 0.), Transform::from_xyz(20., 20., 0.),
Collider::new(8.),
));
commands.spawn((
Enemy,
Movable {
linear_speed: 0.,
rotation_speed: 0.,
max_linear_speed: 500.,
max_rotation_speed: f32::to_radians(360.),
},
Damagable { hp: 10 },
Sprite::from_image(enemy_sprite),
Transform::from_xyz(0., 0., 0.),
Collider::new(8.),
)); ));
} }