From 3ed57a17e76602cdf130ef315679dd6779057548 Mon Sep 17 00:00:00 2001 From: Si Bartha Date: Sun, 3 Apr 2022 14:39:14 -0400 Subject: [PATCH 1/4] Shrinkage --- game/game_logic/src/model/player.rs | 11 ++++++++++- game/game_logic/src/scenes/player_interaction.rs | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/game/game_logic/src/model/player.rs b/game/game_logic/src/model/player.rs index 69a7fe9f..7f59fcc3 100644 --- a/game/game_logic/src/model/player.rs +++ b/game/game_logic/src/model/player.rs @@ -1,11 +1,14 @@ use nalgebra as na; +use raylib::prelude::*; -#[derive(Debug, Clone)] +#[derive(Debug)] pub struct Player { pub position: na::Vector2, pub velocity: na::Vector2, pub size: f32, + pub active_texture: i32, + pub textures: [String; 3], } impl Player { @@ -16,6 +19,12 @@ impl Player { position, velocity: na::Vector2::zeros(), size: 1.0, + active_texture: 0, + textures: [ + "assets/chr/chr_cubee/chr_cubeeLarge.png".to_string(), + "assets/chr/chr_cubee/chr_cubeeMedium.png".to_string(), + "assets/chr/chr_cubee/chr_cubeeSmall.png".to_string() + ] } } diff --git a/game/game_logic/src/scenes/player_interaction.rs b/game/game_logic/src/scenes/player_interaction.rs index bff9ca0a..e3593dcd 100644 --- a/game/game_logic/src/scenes/player_interaction.rs +++ b/game/game_logic/src/scenes/player_interaction.rs @@ -197,6 +197,8 @@ impl PlayableScene { player.position += velocity_modifier; + player.size -= 0.001; + self.update_camera(raylib); } From c024ee78dd2d21c39818d83635033b3b0f973364 Mon Sep 17 00:00:00 2001 From: Evan Pratten Date: Sun, 3 Apr 2022 14:43:37 -0400 Subject: [PATCH 2/4] Load textures --- game/game_logic/src/model/player.rs | 44 ++++++++++++++----- .../src/scenes/player_interaction.rs | 17 ++++--- 2 files changed, 45 insertions(+), 16 deletions(-) diff --git a/game/game_logic/src/model/player.rs b/game/game_logic/src/model/player.rs index 7f59fcc3..4b84c14f 100644 --- a/game/game_logic/src/model/player.rs +++ b/game/game_logic/src/model/player.rs @@ -2,30 +2,52 @@ use nalgebra as na; use raylib::prelude::*; +use crate::asset_manager::load_texture_from_internal_data; + #[derive(Debug)] pub struct Player { pub position: na::Vector2, pub velocity: na::Vector2, pub size: f32, pub active_texture: i32, - pub textures: [String; 3], + pub textures: Vec, } impl Player { - /// Construct a new player. - pub fn new(position: na::Vector2) -> Self { + pub fn new( + raylib_handle: &mut raylib::RaylibHandle, + thread: &raylib::RaylibThread, + position: na::Vector2, + ) -> Self { + // Load all the textures + let textures = vec![ + load_texture_from_internal_data( + raylib_handle, + thread, + "assets/chr/chr_cubee/chr_cubeeLarge.png", + ) + .unwrap(), + load_texture_from_internal_data( + raylib_handle, + thread, + "assets/chr/chr_cubee/chr_cubeeMedium.png", + ) + .unwrap(), + load_texture_from_internal_data( + raylib_handle, + thread, + "assets/chr/chr_cubee/chr_cubeeSmall.png", + ) + .unwrap(), + ]; + Self { position, velocity: na::Vector2::zeros(), - size: 1.0, - active_texture: 0, - textures: [ - "assets/chr/chr_cubee/chr_cubeeLarge.png".to_string(), - "assets/chr/chr_cubee/chr_cubeeMedium.png".to_string(), - "assets/chr/chr_cubee/chr_cubeeSmall.png".to_string() - ] + size: 1.0, + active_texture: 0, + textures, } } - } diff --git a/game/game_logic/src/scenes/player_interaction.rs b/game/game_logic/src/scenes/player_interaction.rs index e3593dcd..56906373 100644 --- a/game/game_logic/src/scenes/player_interaction.rs +++ b/game/game_logic/src/scenes/player_interaction.rs @@ -44,12 +44,19 @@ impl PlayableScene { let game_soundtrack = load_music_from_internal_data(thread, "assets/audio/gameSoundtrack.mp3").unwrap(); - Self { - has_updated_discord_rpc: false, - player: Player::new(na::Vector2::new( + // Load the player + let player = Player::new( + raylib_handle, + thread, + na::Vector2::new( 10.0 * constants.tile_size as f32, -10.0 * constants.tile_size as f32, - )), + ), + ); + + Self { + has_updated_discord_rpc: false, + player, world_map: map_renderer, camera: raylib::camera::Camera2D { target: raylib::math::Vector2 { x: 0.0, y: 0.0 }, @@ -197,7 +204,7 @@ impl PlayableScene { player.position += velocity_modifier; - player.size -= 0.001; + player.size -= 0.001; self.update_camera(raylib); } From 75c6c22a63d66b0b7b56dcb79bc252d714c9407a Mon Sep 17 00:00:00 2001 From: Si Bartha Date: Sun, 3 Apr 2022 14:39:14 -0400 Subject: [PATCH 3/4] Shrinkage --- game/game_logic/src/model/player.rs | 11 ++++++++++- game/game_logic/src/scenes/player_interaction.rs | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/game/game_logic/src/model/player.rs b/game/game_logic/src/model/player.rs index 69a7fe9f..7f59fcc3 100644 --- a/game/game_logic/src/model/player.rs +++ b/game/game_logic/src/model/player.rs @@ -1,11 +1,14 @@ use nalgebra as na; +use raylib::prelude::*; -#[derive(Debug, Clone)] +#[derive(Debug)] pub struct Player { pub position: na::Vector2, pub velocity: na::Vector2, pub size: f32, + pub active_texture: i32, + pub textures: [String; 3], } impl Player { @@ -16,6 +19,12 @@ impl Player { position, velocity: na::Vector2::zeros(), size: 1.0, + active_texture: 0, + textures: [ + "assets/chr/chr_cubee/chr_cubeeLarge.png".to_string(), + "assets/chr/chr_cubee/chr_cubeeMedium.png".to_string(), + "assets/chr/chr_cubee/chr_cubeeSmall.png".to_string() + ] } } diff --git a/game/game_logic/src/scenes/player_interaction.rs b/game/game_logic/src/scenes/player_interaction.rs index 41374b14..3dddabd6 100644 --- a/game/game_logic/src/scenes/player_interaction.rs +++ b/game/game_logic/src/scenes/player_interaction.rs @@ -343,6 +343,8 @@ impl PlayableScene { player.velocity.y = 0.0; } + player.size -= 0.001; + self.update_camera(raylib); } From 486a14861488eda52ff14795a05fa2259b103e62 Mon Sep 17 00:00:00 2001 From: Evan Pratten Date: Sun, 3 Apr 2022 14:43:37 -0400 Subject: [PATCH 4/4] Load textures --- game/game_logic/src/model/player.rs | 44 ++++++++++++++----- .../src/scenes/player_interaction.rs | 11 ++++- 2 files changed, 42 insertions(+), 13 deletions(-) diff --git a/game/game_logic/src/model/player.rs b/game/game_logic/src/model/player.rs index 7f59fcc3..4b84c14f 100644 --- a/game/game_logic/src/model/player.rs +++ b/game/game_logic/src/model/player.rs @@ -2,30 +2,52 @@ use nalgebra as na; use raylib::prelude::*; +use crate::asset_manager::load_texture_from_internal_data; + #[derive(Debug)] pub struct Player { pub position: na::Vector2, pub velocity: na::Vector2, pub size: f32, pub active_texture: i32, - pub textures: [String; 3], + pub textures: Vec, } impl Player { - /// Construct a new player. - pub fn new(position: na::Vector2) -> Self { + pub fn new( + raylib_handle: &mut raylib::RaylibHandle, + thread: &raylib::RaylibThread, + position: na::Vector2, + ) -> Self { + // Load all the textures + let textures = vec![ + load_texture_from_internal_data( + raylib_handle, + thread, + "assets/chr/chr_cubee/chr_cubeeLarge.png", + ) + .unwrap(), + load_texture_from_internal_data( + raylib_handle, + thread, + "assets/chr/chr_cubee/chr_cubeeMedium.png", + ) + .unwrap(), + load_texture_from_internal_data( + raylib_handle, + thread, + "assets/chr/chr_cubee/chr_cubeeSmall.png", + ) + .unwrap(), + ]; + Self { position, velocity: na::Vector2::zeros(), - size: 1.0, - active_texture: 0, - textures: [ - "assets/chr/chr_cubee/chr_cubeeLarge.png".to_string(), - "assets/chr/chr_cubee/chr_cubeeMedium.png".to_string(), - "assets/chr/chr_cubee/chr_cubeeSmall.png".to_string() - ] + size: 1.0, + active_texture: 0, + textures, } } - } diff --git a/game/game_logic/src/scenes/player_interaction.rs b/game/game_logic/src/scenes/player_interaction.rs index 3dddabd6..54871bc4 100644 --- a/game/game_logic/src/scenes/player_interaction.rs +++ b/game/game_logic/src/scenes/player_interaction.rs @@ -60,11 +60,18 @@ impl PlayableScene { let game_soundtrack = load_music_from_internal_data(thread, "assets/audio/gameSoundtrack.mp3").unwrap(); + // Load the player + let player = Player::new( + raylib_handle, + thread, + player_start_position, + ); + Self { has_updated_discord_rpc: false, player_start_position, - player: Player::new(player_start_position), world_map: map_renderer, + player, camera: raylib::camera::Camera2D { target: raylib::math::Vector2 { x: 0.0, y: 0.0 }, offset: raylib::math::Vector2 { x: 0.0, y: 0.0 }, @@ -343,7 +350,7 @@ impl PlayableScene { player.velocity.y = 0.0; } - player.size -= 0.001; + player.size -= 0.001; self.update_camera(raylib); }