Compare commits

..

8 Commits

Author SHA1 Message Date
7b56c52fff Fix map size width 2021-07-17 16:24:49 -05:00
6a2c77404b Use some constants 2021-07-17 16:23:45 -05:00
aa7e888d9e Update marshmallow sprite with shadow 2021-07-17 14:33:52 -05:00
170088b836 Consistent naming 2021-07-17 13:42:11 -05:00
34d1de5847 Update wall sprite again 2021-07-17 13:36:09 -05:00
70e4ac0c81 Update grass and wall sprites 2021-07-17 12:52:08 -05:00
ef4a98627e Make camera follow player 2021-07-17 02:50:05 -05:00
e816846d19 Increase player speed 2021-07-17 02:19:02 -05:00
5 changed files with 31 additions and 7 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 281 B

After

Width:  |  Height:  |  Size: 153 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 275 B

After

Width:  |  Height:  |  Size: 335 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 381 B

After

Width:  |  Height:  |  Size: 624 B

View File

@ -9,6 +9,10 @@ mod prelude {
pub use crate::resources::*;
pub use crate::systems::*;
pub use bevy::prelude::*;
pub const SCREEN_WIDTH: f32 = 80.0;
pub const SCREEN_HEIGHT: f32 = 50.0;
pub const TILE_SIZE: f32 = 64.0;
}
use prelude::*;
@ -20,5 +24,6 @@ fn main() {
.add_startup_system(setup.system())
.add_startup_system(add_player.system())
.add_system(player_movement.system())
.add_system(follow_player.system())
.run();
}

View File

@ -1,4 +1,5 @@
use crate::prelude::*;
use bevy::render::camera::Camera;
pub fn setup(
mut commands: Commands,
@ -10,9 +11,9 @@ pub fn setup(
// Map
let grass_material = materials.add(asset_server.load("grass.png").into());
let tile_size = Vec2::new(32.0, 32.0);
let tile_size = Vec2::new(TILE_SIZE, TILE_SIZE);
let sprite = Sprite::new(tile_size);
let map_size = Vec2::new(80.0, 50.0);
let map_size = Vec2::new(SCREEN_WIDTH, SCREEN_HEIGHT);
let half_x = (map_size.x / 2.0) as i32;
let half_y = (map_size.y / 2.0) as i32;
@ -36,15 +37,15 @@ pub fn add_player(
asset_server: Res<AssetServer>,
mut materials: ResMut<Assets<ColorMaterial>>,
) {
let player_sprite = materials.add(asset_server.load("marshmallow.png").into());
let player_material = materials.add(asset_server.load("marshmallow.png").into());
commands
.spawn()
.insert(Player)
.insert(Name("Player 1".to_string()))
.insert_bundle(SpriteBundle {
material: player_sprite,
sprite: Sprite::new(Vec2::new(64.0, 64.0)),
material: player_material,
sprite: Sprite::new(Vec2::new(TILE_SIZE, TILE_SIZE)),
transform: Transform::from_translation(Vec3::new(0.0, 0.0, 1.0)),
..Default::default()
});
@ -74,8 +75,26 @@ pub fn player_movement(
let translation = &mut transform.translation;
let delta_seconds = time.delta_seconds();
translation.x += delta_seconds * direction.x * 100.0;
translation.y += delta_seconds * direction.y * 100.0;
translation.x += delta_seconds * direction.x * 300.0;
translation.y += delta_seconds * direction.y * 300.0;
}
}
pub fn follow_player(
mut q: QuerySet<(
Query<&Transform, With<Player>>,
Query<&mut Transform, With<Camera>>,
)>,
) {
if let Ok(player_transform) = q.q0().single() {
let player_translation = player_transform.translation;
if let Ok(mut camera_transform) = q.q1_mut().single_mut() {
let camera_translation = &mut camera_transform.translation;
camera_translation.x = player_translation.x;
camera_translation.y = player_translation.y;
}
}
}