From 763df39024b1eed0a384b37b837eb5dd76c1eddf Mon Sep 17 00:00:00 2001 From: jacopograndi Date: Sun, 19 Jun 2022 17:03:48 +0200 Subject: map loaded --- src/main.rs | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 131 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/main.rs b/src/main.rs index 183ac42..d3d9f70 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,19 +1,146 @@ -use bevy::{prelude::*, render::camera::ScalingMode}; - mod debug; - use debug::DebugPlugin; +use serde::Deserialize; + +use std::fs::File; +use std::io::BufReader; + +use bevy_inspector_egui::Inspectable; + +use bevy::{prelude::*, sprite::MaterialMesh2dBundle, render::camera::ScalingMode}; + +use bevy::diagnostic::{FrameTimeDiagnosticsPlugin, LogDiagnosticsPlugin}; + fn main() { App::new() .add_plugins(DefaultPlugins) - .add_plugin(DebugPlugin) .add_startup_system(spawn_camera) + .add_startup_system(setup) + .add_system(movement.label("movement")) + .add_system(camera_follow.after("movement")) + .add_plugin(LogDiagnosticsPlugin::default()) + .add_plugin(FrameTimeDiagnosticsPlugin::default()) .run(); } fn spawn_camera(mut commands: Commands) { let mut camera = OrthographicCameraBundle::new_2d(); camera.orthographic_projection.scaling_mode = ScalingMode::None; + camera.transform = Transform::from_xyz(0.0, 0.0, 100.0); commands.spawn_bundle(camera); } + +fn camera_follow( + player_query: Query<(&Transform, With)>, + mut camera_query: Query<&mut Transform, (Without, With)>, +) { + let (player_transform, _) = player_query.single(); + let mut camera_transform = camera_query.single_mut(); + camera_transform.translation.x = player_transform.translation.x; + camera_transform.translation.y = player_transform.translation.y; +} + +#[derive(Component, Inspectable)] +pub struct Player; + +fn movement ( + mut player_query: Query<(&Player, &mut Transform)>, + keyboard: Res>, + time: Res