haw-gj13-game/src/game/player.rs

39 lines
1,008 B
Rust
Raw Normal View History

2024-11-23 01:40:50 +01:00
use bevy::{prelude::*, sprite::MaterialMesh2dBundle};
2024-11-22 22:26:20 +01:00
use bevy_rapier2d::prelude::*;
2024-11-22 22:55:45 +01:00
use crate::{AppState, METER};
2024-11-22 22:26:20 +01:00
use super::set::IngameSet;
#[derive(Component)]
struct Player {}
pub(super) fn player_plugin(app: &mut App) {
2024-11-22 22:26:20 +01:00
app.add_systems(OnEnter(AppState::InGame), add_player.in_set(IngameSet));
}
2024-11-23 01:40:50 +01:00
pub fn add_player(
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
mut materials: ResMut<Assets<ColorMaterial>>,
) {
// TODO replace
2024-11-22 22:26:20 +01:00
commands
2024-11-23 01:40:50 +01:00
.spawn((
Player {},
MaterialMesh2dBundle {
mesh: meshes.add(Circle::new(20.)).into(),
material: materials.add(Color::linear_rgb(0., 1., 0.)),
transform: Transform::from_xyz(100., 100., 0.),
..default()
},
))
2024-11-22 22:55:45 +01:00
.insert((
RigidBody::Dynamic,
Collider::cuboid(0.4 * METER, 0.9 * METER),
Velocity::default(),
))
2024-11-22 22:26:20 +01:00
.insert(ActiveEvents::COLLISION_EVENTS);
}