cool things
This commit is contained in:
parent
23e76a73cd
commit
4e3edc5d45
3 changed files with 69 additions and 19 deletions
|
@ -1,7 +1,9 @@
|
||||||
header
|
header
|
||||||
block-size = 60
|
block-size = 60
|
||||||
.P = [player]
|
.P = [player]
|
||||||
|
.S = [spawn]
|
||||||
.T = Blockgrau.png
|
.T = Blockgrau.png
|
||||||
|
.t = _Blockgrau.png
|
||||||
.E = erdblock_lower.png
|
.E = erdblock_lower.png
|
||||||
.G = grasblock_lower.png
|
.G = grasblock_lower.png
|
||||||
._ = _grasblock_upper.png
|
._ = _grasblock_upper.png
|
||||||
|
@ -11,16 +13,31 @@ header
|
||||||
links
|
links
|
||||||
|
|
||||||
blocks
|
blocks
|
||||||
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
|
||||||
T T
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
|
||||||
T T
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
|
||||||
T O T
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
|
||||||
T O T
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT T TTT
|
||||||
T O T
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTttttttttttttttttttt _ S T TTT
|
||||||
T P _______ _ T
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTtt T _T T TTT
|
||||||
TT ,,,_______,,,_a____,___ __GGGGGGG_______TTTTTTTTTTTT T
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T T T _________GT T TTT
|
||||||
TTTTTTTTEEEGGGGGGGEEEGGGGGGEGGGE GGEEEEEEEGGEEEEETTTTTTTTTTTTTTTTTTT
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T TGGGGGGGGGET T TTT
|
||||||
TTTTTTTTTEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEETTTTTTTTTTTTTTTEEET
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T TTEEEEEEEEEET T TTT
|
||||||
TTTTTTEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEETTTTTTEEEEEEEEEET
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T T TTTTTTTTTTTTTT T TTT
|
||||||
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T TT T TTT
|
||||||
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
|
T T TT T T
|
||||||
|
T T T TT T T T
|
||||||
|
T O S OT T T T
|
||||||
|
T P O T _______ T T T T
|
||||||
|
T O S T S _GGGGGGGTTT T T
|
||||||
|
T ______ _ __GEEEEEEEE T T
|
||||||
|
TT ,,,_______,,,_a____,___ __GGGGGG TTTTTTTTT _____,_____GGEEEEEEEEE______________T_____ _________________T
|
||||||
|
TTTTTTTTEEEGGGGGGGEEEGGGGGGEGGGE GGEEEEEE TTTTTTTTTTTTTTTGGGGGEGGGGGEEEEEEEEEEEGGGGGGGGGGGGGGGGGGGG GGGGGGGGGGGGGGGGGT
|
||||||
|
TTTTTTTTTEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEE TTTTTTTTTTTTEEEEEEEEEETEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEET
|
||||||
|
TTTTTTEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEE TTTTTEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEET
|
||||||
|
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE TTTTTTTT TTTTTTTTTTTTTTTEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEET
|
||||||
|
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE TTTTTTTTTTTT TTTTTTTTTTTTTTTEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEET
|
||||||
|
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE TTTTTTTTTTTT TTTTTTTTTTTTTTTEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEET
|
||||||
|
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE TTTTTTTTTTTT TTTTTTTTTTTTTTTEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEET
|
||||||
|
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE TTTTTTTTTTTT TTTTTTTTTTTTTTTEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEET
|
||||||
|
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE TTTTTTTTTTTT TTTTTTTTTTTTTTTEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEET
|
||||||
|
|
|
@ -7,10 +7,22 @@ use bevy_rapier2d::prelude::*;
|
||||||
|
|
||||||
use crate::{AppState, METER};
|
use crate::{AppState, METER};
|
||||||
|
|
||||||
use super::{scene::PlayerCoords, set::IngameSet, PLAYER_DEPTH};
|
use super::{
|
||||||
|
scene::{PlayerCoords, WorldInfo},
|
||||||
|
set::IngameSet,
|
||||||
|
PLAYER_DEPTH,
|
||||||
|
};
|
||||||
|
|
||||||
mod animation;
|
mod animation;
|
||||||
|
|
||||||
|
#[derive(Event)]
|
||||||
|
enum PlayerDeathEvent {
|
||||||
|
Void,
|
||||||
|
Spikes,
|
||||||
|
}
|
||||||
|
#[derive(Event)]
|
||||||
|
struct RespawnPointSetEvent;
|
||||||
|
|
||||||
#[derive(Component)]
|
#[derive(Component)]
|
||||||
struct Player {
|
struct Player {
|
||||||
move_cooldown: Timer,
|
move_cooldown: Timer,
|
||||||
|
@ -56,6 +68,7 @@ fn debug_player_pos(query: Query<&Transform, With<Player>>) {
|
||||||
let trans = query.single();
|
let trans = query.single();
|
||||||
}
|
}
|
||||||
fn move_player(
|
fn move_player(
|
||||||
|
mut commands: Commands,
|
||||||
kb_input: Res<ButtonInput<KeyCode>>,
|
kb_input: Res<ButtonInput<KeyCode>>,
|
||||||
mut query: Query<(
|
mut query: Query<(
|
||||||
&mut Velocity,
|
&mut Velocity,
|
||||||
|
@ -68,6 +81,7 @@ fn move_player(
|
||||||
mut camera_query: Query<&mut Transform, (With<Camera2d>, Without<Player>)>,
|
mut camera_query: Query<&mut Transform, (With<Camera2d>, Without<Player>)>,
|
||||||
phys: Query<&KinematicCharacterControllerOutput>,
|
phys: Query<&KinematicCharacterControllerOutput>,
|
||||||
player_coords: Res<PlayerCoords>,
|
player_coords: Res<PlayerCoords>,
|
||||||
|
world_info: Res<WorldInfo>,
|
||||||
time: Res<Time>,
|
time: Res<Time>,
|
||||||
) {
|
) {
|
||||||
let (mut vel, mut p_transform, mut player, mut controller, mut sprite, mut anim_state) =
|
let (mut vel, mut p_transform, mut player, mut controller, mut sprite, mut anim_state) =
|
||||||
|
@ -106,7 +120,22 @@ fn move_player(
|
||||||
*anim_state = PlayerAnimations::Idle;
|
*anim_state = PlayerAnimations::Idle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for p in world_info.spawnpoints.iter().rev() {
|
||||||
|
let x = p.0 as f32 * world_info.block_size;
|
||||||
|
if x < p_transform.translation.x && x != player_coords.x {
|
||||||
|
commands.insert_resource(PlayerCoords {
|
||||||
|
x,
|
||||||
|
y: p.1 as f32 * world_info.block_size,
|
||||||
|
..*player_coords
|
||||||
|
});
|
||||||
|
commands.trigger(RespawnPointSetEvent);
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if p_transform.translation.y < -10. * player_coords.block_size {
|
if p_transform.translation.y < -10. * player_coords.block_size {
|
||||||
|
commands.trigger(PlayerDeathEvent::Void);
|
||||||
p_transform.translation =
|
p_transform.translation =
|
||||||
Vec2::new(player_coords.x, player_coords.y).extend(PLAYER_DEPTH);
|
Vec2::new(player_coords.x, player_coords.y).extend(PLAYER_DEPTH);
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,10 +54,11 @@ pub(super) fn scene_plugin(app: &mut App) {
|
||||||
app.add_systems(Startup, (import_text_world,));
|
app.add_systems(Startup, (import_text_world,));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default, Resource)]
|
||||||
pub struct WorldInfo {
|
pub struct WorldInfo {
|
||||||
block_size: f32,
|
pub block_size: f32,
|
||||||
blocks: Vec<(String, String)>,
|
pub blocks: Vec<(String, String)>,
|
||||||
|
pub spawnpoints: Vec<(usize, usize)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(super) fn import_text_world(
|
pub(super) fn import_text_world(
|
||||||
|
@ -125,6 +126,8 @@ pub(super) fn import_text_world(
|
||||||
block_size: wi.block_size,
|
block_size: wi.block_size,
|
||||||
});
|
});
|
||||||
commands.run_system(player_spawn_oneshot.0);
|
commands.run_system(player_spawn_oneshot.0);
|
||||||
|
} else if tex == "[spawn]" {
|
||||||
|
wi.spawnpoints.push((i, current_y));
|
||||||
} else {
|
} else {
|
||||||
spawn_block(
|
spawn_block(
|
||||||
&mut commands,
|
&mut commands,
|
||||||
|
@ -145,6 +148,7 @@ pub(super) fn import_text_world(
|
||||||
panic!("unknown block in at {i},{current_y}");
|
panic!("unknown block in at {i},{current_y}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
commands.insert_resource(wi);
|
||||||
}
|
}
|
||||||
|
|
||||||
fn spawn_block(
|
fn spawn_block(
|
||||||
|
@ -175,9 +179,9 @@ fn spawn_block(
|
||||||
RigidBody::Dynamic
|
RigidBody::Dynamic
|
||||||
},
|
},
|
||||||
if fixed {
|
if fixed {
|
||||||
Collider::cuboid(block_size / 2.0 * len as f32, block_size / 2.0)
|
Collider::cuboid(block_size / 2. * len as f32, block_size / 2.)
|
||||||
} else {
|
} else {
|
||||||
Collider::ball(block_size as f32 / 2.)
|
Collider::ball(block_size / 2.)
|
||||||
},
|
},
|
||||||
AdditionalMassProperties::Mass(1.0),
|
AdditionalMassProperties::Mass(1.0),
|
||||||
Velocity::default(),
|
Velocity::default(),
|
||||||
|
|
Loading…
Add table
Reference in a new issue