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
[dependencies]
bevy = { version = "0.8.1", features = ["dynamic"] }
bevy-inspector-egui = "0.13.0"
bevy_rapier2d = "0.17.0"
serde = "1.0.145"
bevy = { version = "0.9.0", features = ["dynamic"] }
bevy-inspector-egui = "0.14.0"
bevy_rapier2d = { path = "../bevy_rapier/bevy_rapier2d" }
# Enable a small amount of optimization in debug mode
[profile.dev]

View File

@ -24,16 +24,42 @@ pub fn init() {
fn setup(mut commands: Commands) {
// Static ground
commands
.spawn()
.spawn(())
.insert(Name::new("Ground"))
.insert(Collider::cuboid(400.0, 25.0))
.insert_bundle(SpriteBundle {
.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(800.0, 50.0)),
custom_size: Some(Vec2::new(80.0, 50.0)),
..default()
},
transform: Transform::from_xyz(0.0, -100.0, 0.0),
..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_inspector_egui::{Inspectable, RegisterInspectable};
use crate::util::{move_towards_vec3, vec3_lerp};
@ -6,13 +7,13 @@ pub struct GameCameraPlugin;
impl Plugin for GameCameraPlugin {
fn build(&self, app: &mut App) {
app.register_type::<CameraFollow>()
app.register_inspectable::<CameraFollow>()
.add_startup_system(camera_setup)
.add_system(camera_system);
}
}
#[derive(Clone, Copy)]
#[derive(Clone, Copy, Inspectable, PartialEq, Reflect)]
pub enum FollowMovement {
Instant,
Linear(f32),
@ -25,25 +26,24 @@ impl Default for FollowMovement {
}
}
#[derive(Default, Component, Reflect)]
#[derive(Default, Component, Reflect, Inspectable)]
#[reflect(Component)]
pub struct CameraFollow {
pub priority: i32,
#[reflect(ignore)]
pub movement: FollowMovement,
}
fn camera_setup(mut commands: Commands) {
commands
.spawn()
.insert(Name::new("Camera"))
.insert_bundle(Camera2dBundle {
commands.spawn((
Name::new("Camera"),
Camera2dBundle {
projection: OrthographicProjection {
scaling_mode: ScalingMode::FixedHorizontal(320.0),
..default()
},
..default()
});
},
));
}
fn camera_system(

View File

@ -31,7 +31,7 @@ pub fn player_system(
input: Res<Input<KeyCode>>,
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,
Err(_) => return,
};
@ -64,9 +64,9 @@ pub fn player_spawn(mut commands: Commands) {
};
commands
.spawn()
.spawn(())
.insert(Name::new("Player"))
.insert_bundle(SpriteBundle {
.insert(SpriteBundle {
sprite: Sprite {
color: Color::rgb(0.75, 0.25, 0.25),
custom_size: Some(Vec2 { x: 16.0, y: 32.0 }),
@ -74,7 +74,7 @@ pub fn player_spawn(mut commands: Commands) {
},
..default()
})
.insert_bundle(PlayerBundle {
.insert(PlayerBundle {
kinematic,
..default()
})