From a49bd7c952fdcbd8dc131cc6542aefe725bc9254 Mon Sep 17 00:00:00 2001 From: rsninja722 Date: Sat, 2 Apr 2022 15:25:59 -0400 Subject: [PATCH] add map rendering to player scene --- game/game_logic/src/scenes/mod.rs | 9 ++------- game/game_logic/src/scenes/player_interaction.rs | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/game/game_logic/src/scenes/mod.rs b/game/game_logic/src/scenes/mod.rs index 71563940..9c02ccbb 100644 --- a/game/game_logic/src/scenes/mod.rs +++ b/game/game_logic/src/scenes/mod.rs @@ -65,13 +65,8 @@ impl SceneRenderDelegate { // Render the main menu if in it, otherwise, render the game match self.menu_control_signal { MenuStateSignal::StartGame => { - // self.scene_playable - // .render_frame(raylib, rl_thread, &discord, global_resources, constants) - // .await; - - // TODO: remove this test scene - self.scene_test_fox - .render_frame(raylib, rl_thread, &discord, global_resources) + self.scene_playable + .render_frame(raylib, rl_thread, &discord, global_resources, constants) .await; self.scene_playable .update_physics(raylib, constants) diff --git a/game/game_logic/src/scenes/player_interaction.rs b/game/game_logic/src/scenes/player_interaction.rs index 30128dc4..cef3186e 100644 --- a/game/game_logic/src/scenes/player_interaction.rs +++ b/game/game_logic/src/scenes/player_interaction.rs @@ -9,13 +9,14 @@ use crate::{ global_resource_package::GlobalResources, model::player::Player, project_constants::ProjectConstants, - rendering::utilities::anim_texture::AnimatedTexture, + rendering::utilities::{anim_texture::AnimatedTexture, map_render::MapRenderer}, }; #[derive(Debug)] pub struct PlayableScene { has_updated_discord_rpc: bool, player: Player, + world_map: MapRenderer, camera: raylib::camera::Camera2D, last_update: SystemTime, } @@ -27,9 +28,13 @@ impl PlayableScene { thread: & raylib::RaylibThread, constants: &ProjectConstants, ) -> Self { + + let map_renderer = MapRenderer::new("map_gameMap.tmx", raylib_handle, thread).unwrap(); + Self { has_updated_discord_rpc: false, player: Player::new(na::Vector2::new(10.0, 10.0)), + world_map: map_renderer, camera: raylib::camera::Camera2D { target: raylib::math::Vector2 { x: 0.0, @@ -77,6 +82,14 @@ impl PlayableScene { // Clear the screen draw.clear_background(Color::WHITE); + { + // Begin camera mode + let mut ctx2d = draw.begin_mode2D(self.camera); + + // Render the map + self.world_map.render_map(&mut ctx2d, &self.camera, true); + } + for i in 0..100 { for j in 0..100 { draw.draw_rectangle(