43 lines
1.2 KiB
Rust
43 lines
1.2 KiB
Rust
use bevy::{prelude::*, sprite::MaterialMesh2dBundle};
|
|
|
|
use bevy_rapier2d::prelude::*;
|
|
|
|
use crate::{AppState, METER};
|
|
|
|
use super::set::IngameSet;
|
|
#[derive(Component)]
|
|
struct Player {}
|
|
|
|
pub(super) fn player_plugin(app: &mut App) {
|
|
app.add_systems(OnEnter(AppState::InGame), add_player.in_set(IngameSet));
|
|
}
|
|
|
|
pub fn add_player(
|
|
mut commands: Commands,
|
|
mut meshes: ResMut<Assets<Mesh>>,
|
|
mut materials: ResMut<Assets<ColorMaterial>>,
|
|
asset_server: Res<AssetServer>,
|
|
) {
|
|
// TODO replace
|
|
commands.spawn(SpriteBundle {
|
|
texture: asset_server.load("assets/Blockgrau.png"),
|
|
..Default::default()
|
|
});
|
|
|
|
commands
|
|
.spawn((
|
|
Player {},
|
|
MaterialMesh2dBundle {
|
|
mesh: meshes.add(Circle::new(20.)).into(),
|
|
material: materials.add(asset_server.load("test.png")),
|
|
transform: Transform::from_xyz(10., 10., 0.),
|
|
..default()
|
|
},
|
|
))
|
|
//.insert((
|
|
// RigidBody::Dynamic,
|
|
// Collider::cuboid(0.4 * METER, 0.9 * METER),
|
|
// Velocity::default(),
|
|
//))
|
|
.insert(ActiveEvents::COLLISION_EVENTS);
|
|
}
|