Collision test
This commit is contained in:
parent
feb72f9d32
commit
0181ad7f2d
3 changed files with 34 additions and 1 deletions
|
|
@ -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
4
src/damagable/enemy.rs
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
use bevy::ecs::component::Component;
|
||||||
|
|
||||||
|
#[derive(Component)]
|
||||||
|
pub struct Enemy;
|
||||||
|
|
@ -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.),
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue