Level sit and shit

This commit is contained in:
2024-11-05 16:22:46 +02:00
parent 0750514c91
commit cdceb7b9ea

View File

@@ -2,8 +2,13 @@ use bevy::prelude::*;
use bevy_ecs_ldtk::prelude::*; use bevy_ecs_ldtk::prelude::*;
use player::{Player, PlayerPlugin}; use player::{Player, PlayerPlugin};
mod camera;
mod player; mod player;
const LEVEL_SET: [&str; 2] = [
"ee0d1601-73f0-11ef-b8f3-190460ac7628",
"60e1c210-73f0-11ef-b56f-153ec435f652",
];
fn main() { fn main() {
App::new() App::new()
.add_plugins(DefaultPlugins.set(ImagePlugin::default_nearest())) .add_plugins(DefaultPlugins.set(ImagePlugin::default_nearest()))
@@ -14,22 +19,25 @@ fn main() {
.register_ldtk_entity::<GoalBundle>("Goal") .register_ldtk_entity::<GoalBundle>("Goal")
.register_ldtk_int_cell::<WallBundle>(1) .register_ldtk_int_cell::<WallBundle>(1)
.add_systems(Startup, setup) .add_systems(Startup, setup)
.add_systems(Update, camera::camera_fit_inside_current_level)
.run(); .run();
} }
fn setup(mut commands: Commands, asset_server: Res<AssetServer>) { fn setup(mut commands: Commands, asset_server: Res<AssetServer>) {
let mut camera = Camera2dBundle::default(); let mut camera = Camera2dBundle::default();
camera.projection.scale = 0.5; let level_set = LevelSet::from_iids(LEVEL_SET);
camera.projection.scale = 1.111;
camera.transform.translation.x += 1280.0 / 4.0; camera.transform.translation.x += 1280.0 / 4.0;
camera.transform.translation.y += 720.0 / 4.0; camera.transform.translation.y += 720.0 / 4.0;
commands.spawn(camera); commands.spawn(camera);
commands.spawn(LdtkWorldBundle { commands.spawn(LdtkWorldBundle {
ldtk_handle: asset_server.load("shocked-miguel.ldtk"), ldtk_handle: asset_server.load("shocked-miguel.ldtk"),
level_set,
// transform: Transform::from_xyz(-256., -144., 0.),
..Default::default() ..Default::default()
}); });
} }
#[derive(Default, Component)] #[derive(Default, Component)]
struct Goal; struct Goal;
@@ -65,6 +73,13 @@ fn check_goal(
level_selection: ResMut<LevelSelection>, level_selection: ResMut<LevelSelection>,
players: Query<&GridCoords, (With<Player>, Changed<GridCoords>)>, players: Query<&GridCoords, (With<Player>, Changed<GridCoords>)>,
goals: Query<&GridCoords, With<Goal>>, goals: Query<&GridCoords, With<Goal>>,
mut camera_query: Query<
(
&mut bevy::render::camera::OrthographicProjection,
&mut Transform,
),
Without<Player>,
>,
) { ) {
if players if players
.iter() .iter()