Upgraded bevy to 0.9

fix/collision-refresh
hheik 2022-11-15 14:13:47 +02:00
parent d5107655a0
commit 6732618773
5 changed files with 496 additions and 388 deletions

817
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@ -6,10 +6,9 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
bevy = { version = "0.8.1", features = ["dynamic"] } bevy = { version = "0.9.0", features = ["dynamic"] }
bevy-inspector-egui = "0.13.0" bevy-inspector-egui = "0.14.0"
bevy_rapier2d = "0.17.0" bevy_rapier2d = { path = "../bevy_rapier/bevy_rapier2d" }
serde = "1.0.145"
# Enable a small amount of optimization in debug mode # Enable a small amount of optimization in debug mode
[profile.dev] [profile.dev]

View File

@ -24,16 +24,42 @@ pub fn init() {
fn setup(mut commands: Commands) { fn setup(mut commands: Commands) {
// Static ground // Static ground
commands commands
.spawn() .spawn(())
.insert(Name::new("Ground")) .insert(Name::new("Ground"))
.insert(Collider::cuboid(400.0, 25.0)) .insert(Collider::cuboid(40.0, 25.0))
.insert_bundle(SpriteBundle { .insert(SpriteBundle {
sprite: Sprite { sprite: Sprite {
color: Color::rgb(0.25, 0.25, 0.75), color: Color::rgb(0.25, 0.25, 0.75),
custom_size: Some(Vec2::new(800.0, 50.0)), custom_size: Some(Vec2::new(80.0, 50.0)),
..default() ..default()
}, },
transform: Transform::from_xyz(0.0, -100.0, 0.0), transform: Transform::from_xyz(0.0, -100.0, 0.0),
..default() ..default()
}); });
commands
.spawn(())
.insert(Name::new("Ground"))
.insert(Collider::cuboid(40.0, 25.0))
.insert(SpriteBundle {
sprite: Sprite {
color: Color::rgb(0.25, 0.25, 0.75),
custom_size: Some(Vec2::new(80.0, 50.0)),
..default()
},
transform: Transform::from_xyz(100.0, -200.0, 0.0),
..default()
});
commands
.spawn(())
.insert(Name::new("Ground"))
.insert(Collider::cuboid(100.0, 25.0))
.insert(SpriteBundle {
sprite: Sprite {
color: Color::rgb(0.25, 0.25, 0.75),
custom_size: Some(Vec2::new(200.0, 50.0)),
..default()
},
transform: Transform::from_xyz(0.0, -300.0, 0.0),
..default()
});
} }

View File

@ -1,4 +1,5 @@
use bevy::{prelude::*, render::camera::ScalingMode}; use bevy::{prelude::*, render::camera::ScalingMode};
use bevy_inspector_egui::{Inspectable, RegisterInspectable};
use crate::util::{move_towards_vec3, vec3_lerp}; use crate::util::{move_towards_vec3, vec3_lerp};
@ -6,13 +7,13 @@ pub struct GameCameraPlugin;
impl Plugin for GameCameraPlugin { impl Plugin for GameCameraPlugin {
fn build(&self, app: &mut App) { fn build(&self, app: &mut App) {
app.register_type::<CameraFollow>() app.register_inspectable::<CameraFollow>()
.add_startup_system(camera_setup) .add_startup_system(camera_setup)
.add_system(camera_system); .add_system(camera_system);
} }
} }
#[derive(Clone, Copy)] #[derive(Clone, Copy, Inspectable, PartialEq, Reflect)]
pub enum FollowMovement { pub enum FollowMovement {
Instant, Instant,
Linear(f32), Linear(f32),
@ -25,25 +26,24 @@ impl Default for FollowMovement {
} }
} }
#[derive(Default, Component, Reflect)] #[derive(Default, Component, Reflect, Inspectable)]
#[reflect(Component)] #[reflect(Component)]
pub struct CameraFollow { pub struct CameraFollow {
pub priority: i32, pub priority: i32,
#[reflect(ignore)]
pub movement: FollowMovement, pub movement: FollowMovement,
} }
fn camera_setup(mut commands: Commands) { fn camera_setup(mut commands: Commands) {
commands commands.spawn((
.spawn() Name::new("Camera"),
.insert(Name::new("Camera")) Camera2dBundle {
.insert_bundle(Camera2dBundle {
projection: OrthographicProjection { projection: OrthographicProjection {
scaling_mode: ScalingMode::FixedHorizontal(320.0), scaling_mode: ScalingMode::FixedHorizontal(320.0),
..default() ..default()
}, },
..default() ..default()
}); },
));
} }
fn camera_system( fn camera_system(

View File

@ -31,7 +31,7 @@ pub fn player_system(
input: Res<Input<KeyCode>>, input: Res<Input<KeyCode>>,
mut query: Query<(&mut KinematicInput, &Transform), With<PlayerInput>>, mut query: Query<(&mut KinematicInput, &Transform), With<PlayerInput>>,
) { ) {
let (mut kinematic_input, transform) = match query.get_single_mut() { let (mut kinematic_input, _transform) = match query.get_single_mut() {
Ok(single) => single, Ok(single) => single,
Err(_) => return, Err(_) => return,
}; };
@ -64,9 +64,9 @@ pub fn player_spawn(mut commands: Commands) {
}; };
commands commands
.spawn() .spawn(())
.insert(Name::new("Player")) .insert(Name::new("Player"))
.insert_bundle(SpriteBundle { .insert(SpriteBundle {
sprite: Sprite { sprite: Sprite {
color: Color::rgb(0.75, 0.25, 0.25), color: Color::rgb(0.75, 0.25, 0.25),
custom_size: Some(Vec2 { x: 16.0, y: 32.0 }), custom_size: Some(Vec2 { x: 16.0, y: 32.0 }),
@ -74,7 +74,7 @@ pub fn player_spawn(mut commands: Commands) {
}, },
..default() ..default()
}) })
.insert_bundle(PlayerBundle { .insert(PlayerBundle {
kinematic, kinematic,
..default() ..default()
}) })