corrections

This commit is contained in:
2026-09-18 17:40:57 +02:00
parent 0e5c2407ed
commit 5d422ecef0
5 changed files with 24 additions and 11 deletions
+2 -2
View File
@@ -1,10 +1,10 @@
use bevy::prelude::*; use bevy::prelude::*;
use crate::{collision::Collider, player::Player}; use crate::{camera::MainCamera, collision::Collider, player::Player};
fn constrain_player( fn constrain_player(
mut player: Single<(&Collider, &mut Transform), With<Player>>, mut player: Single<(&Collider, &mut Transform), With<Player>>,
camera: Single<&Camera, With<Camera2d>>, camera: Single<&Camera, With<MainCamera>>,
) { ) {
let viewport = camera let viewport = camera
.logical_viewport_size() .logical_viewport_size()
+8 -5
View File
@@ -3,14 +3,17 @@ use bevy::prelude::*;
use crate::player::Player; use crate::player::Player;
use crate::player::move_player; use crate::player::move_player;
fn spawn_camera(mut commands: Commands) { #[derive(Component)]
commands.spawn(Camera2d); pub struct MainCamera;
fn spawn_main_camera(mut commands: Commands) {
commands.spawn((Camera2d, MainCamera));
} }
// Follow the player with the camera // Follow the player with the camera
fn follow_player( fn follow_player(
player: Single<&Transform, (With<Player>, Without<Camera2d>)>, player: Single<&Transform, (With<Player>, Without<MainCamera>)>,
mut camera: Single<&mut Transform, (With<Camera2d>, Without<Player>)>, mut camera: Single<&mut Transform, (With<MainCamera>, Without<Player>)>,
// time: Res<Time>, // time: Res<Time>,
) { ) {
camera.translation.y = player.translation.y; // without delay camera.translation.y = player.translation.y; // without delay
@@ -22,7 +25,7 @@ pub struct CameraPlugin;
impl Plugin for CameraPlugin { impl Plugin for CameraPlugin {
fn build(&self, app: &mut App) { fn build(&self, app: &mut App) {
app.add_systems(Startup, spawn_camera) app.add_systems(Startup, spawn_main_camera)
.add_systems(Update, follow_player.after(move_player)); .add_systems(Update, follow_player.after(move_player));
} }
} }
+6 -2
View File
@@ -1,20 +1,23 @@
use bevy::{prelude::*, window::PresentMode}; use bevy::{prelude::*, window::PresentMode};
use crate::background::BackgroundPlugin;
use crate::bounds::BoundsPlugin; use crate::bounds::BoundsPlugin;
use crate::camera::CameraPlugin; use crate::camera::CameraPlugin;
use crate::collision::CollisionPlugin; use crate::collision::CollisionPlugin;
use crate::debug::DebugPlugin;
use crate::obstacle::ObstaclePlugin; use crate::obstacle::ObstaclePlugin;
use crate::player::PlayerPlugin; use crate::player::PlayerPlugin;
use crate::score::ScorePlugin; use crate::score::ScorePlugin;
use crate::world::WorldPlugin;
mod background; mod background;
mod bounds; mod bounds;
mod camera; mod camera;
mod collision; mod collision;
mod debug;
mod obstacle; mod obstacle;
mod player; mod player;
mod score; mod score;
mod world;
fn main() { fn main() {
App::new() App::new()
@@ -27,12 +30,13 @@ fn main() {
}), }),
..default() ..default()
})) }))
.add_plugins(BackgroundPlugin) // Checkerboard background
.add_plugins(PlayerPlugin) // Player .add_plugins(PlayerPlugin) // Player
.add_plugins(CameraPlugin) // Camera .add_plugins(CameraPlugin) // Camera
.add_plugins(CollisionPlugin) // Collisions .add_plugins(CollisionPlugin) // Collisions
.add_plugins(ObstaclePlugin) // Obstacles .add_plugins(ObstaclePlugin) // Obstacles
.add_plugins(BoundsPlugin) // Bound player .add_plugins(BoundsPlugin) // Bound player
.add_plugins(ScorePlugin) // Score .add_plugins(ScorePlugin) // Score
.add_plugins(WorldPlugin) // Chunk logic
.add_plugins(DebugPlugin) // Debug
.run(); .run();
} }
+6 -1
View File
@@ -1,6 +1,10 @@
use crate::{collision::Collider, player::reset_player}; use crate::{collision::Collider, player::reset_player};
use bevy::prelude::*; use bevy::prelude::*;
use rand::RngExt; use rand::RngExt;
use rand::SeedableRng;
//TODO: add chunk logic to obstacles
// TODO: add seed logic to obstacles
#[derive(Component)] #[derive(Component)]
pub struct Obstacle; pub struct Obstacle;
@@ -64,7 +68,8 @@ pub struct ObstaclePlugin;
impl Plugin for ObstaclePlugin { impl Plugin for ObstaclePlugin {
fn build(&self, app: &mut App) { fn build(&self, app: &mut App) {
app.add_systems(Startup, spawn_obstacles) app
// .add_systems(Startup, spawn_obstacles)
.init_resource::<RegenerateObstacles>() .init_resource::<RegenerateObstacles>()
.add_systems(Update, regenerate_obstacles.after(reset_player)); .add_systems(Update, regenerate_obstacles.after(reset_player));
} }
+2 -1
View File
@@ -101,7 +101,8 @@ pub fn reset_player(
has_collided.0 = false; has_collided.0 = false;
fall_started.0 = false; fall_started.0 = false;
regenerate_obstacles.0 = true; // TODO: uncomment when obstacle chunk logic is implemented
// regenerate_obstacles.0 = true;
} }
} }