From 23f88b41a785dd836d6a7b39ff360938daa8d122 Mon Sep 17 00:00:00 2001 From: Schrottkatze Date: Fri, 3 May 2024 22:15:35 +0200 Subject: [PATCH] extract modules to files(tm) --- src/main.rs | 132 ++------------------------------------------------ src/player.rs | 85 ++++++++++++++++++++++++++++++++ src/scene.rs | 38 +++++++++++++++ 3 files changed, 126 insertions(+), 129 deletions(-) create mode 100644 src/player.rs create mode 100644 src/scene.rs diff --git a/src/main.rs b/src/main.rs index df6a680..5417e0d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,6 +3,9 @@ use bevy_rapier2d::prelude::*; use player::{add_player, move_player}; use some_bevy_tools::{camera_2d::Camera2DPlugin, controller_2d::SimpleTopDownControllerPlugin}; +mod player; +mod scene; + fn main() { App::new() .insert_resource(RapierConfiguration { @@ -18,132 +21,3 @@ fn main() { .add_systems(Update, move_player) .run(); } - -mod scene { - use bevy::{ - prelude::*, - sprite::{MaterialMesh2dBundle, Mesh2dHandle}, - }; - use bevy_rapier2d::prelude::*; - const METER: f32 = 64.; - - pub fn setup_scene( - mut commands: Commands, - mut meshes: ResMut>, - mut materials: ResMut>, - ) { - let scene_objs = [ - // Arena walls - (Rectangle::new(16. * METER, METER), (0., 7.5 * METER)), - (Rectangle::new(16. * METER, METER), (0., -7.5 * METER)), - (Rectangle::new(METER, 16. * METER), (7.5 * METER, 0.)), - (Rectangle::new(METER, 16. * METER), (-7.5 * METER, 0.)), - (Rectangle::new(8. * METER, METER), (0., 2. * METER)), - (Rectangle::new(1. * METER, 2. * METER), (2. * METER, 0.)), - (Rectangle::new(8. * METER, METER), (0., -2. * METER)), - ]; - - for (shape_, pos) in scene_objs { - let shape = Mesh2dHandle(meshes.add(shape_)); - commands - .spawn(MaterialMesh2dBundle { - mesh: shape, - material: materials.add(Color::rgb(1., 0., 0.)), - transform: Transform::from_xyz(pos.0, pos.1, 1.), - ..default() - }) - .insert(( - RigidBody::Fixed, - Collider::cuboid(shape_.half_size.x, shape_.half_size.y), - )); - } - } -} - -mod player { - use bevy::prelude::*; - use bevy_rapier2d::prelude::*; - use some_bevy_tools::camera_2d::Camera2DController; - use std::f32::consts::PI; - - const TURN_SPEED: f32 = PI / 100.; - const FW_SPEED: f32 = 5.; - const BW_SPEED: f32 = 3.; - const SIDEWARD_SPEED: f32 = 3.5; - - #[derive(Component)] - pub struct Player { - move_cooldown: Timer, - } - - pub fn add_player(mut commands: Commands, asset_server: Res) { - let player = commands - .spawn(( - Player { - move_cooldown: Timer::from_seconds(0.01, TimerMode::Repeating), - }, - SpriteBundle { - texture: asset_server.load("sprites/player.png"), - transform: Transform::from_xyz(0., 0., 0.), - ..default() - }, - )) - .insert((Collider::cuboid(32., 32.),)) - .insert(KinematicCharacterController { ..default() }) - .id(); - commands.spawn(( - Camera2dBundle::default(), - Camera2DController::new_follow_with_speed(player, 300.), - )); - } - - pub fn move_player( - kb_input: Res>, - mut query: Query<( - &mut Transform, - &mut Player, - &mut KinematicCharacterController, - )>, - time: Res