add score
All checks were successful
Rust / rustfmt (push) Successful in 19s
Rust / clippy (push) Successful in 1m3s
Rust / build (push) Successful in 2m15s

This commit is contained in:
luckyturtledev 2024-07-07 12:02:48 +02:00
parent ff743e97b8
commit dadc5d59db
3 changed files with 26 additions and 4 deletions

View file

@ -86,6 +86,7 @@ impl Sub<i32> for ZLayer {
} }
pub fn update(state: &mut State, engine: &mut EngineContext<'_>) { pub fn update(state: &mut State, engine: &mut EngineContext<'_>) {
state.score += engine.delta * 10.0;
match state.activity { match state.activity {
Activity::House => house::update(state, engine), Activity::House => house::update(state, engine),
Activity::Overworld => overworld::update(state, engine) Activity::Overworld => overworld::update(state, engine)

View file

@ -28,7 +28,8 @@ struct State {
activity: Activity, activity: Activity,
ghost: Ghost, ghost: Ghost,
overworld: Overworld, overworld: Overworld,
house: HouseState house: HouseState,
score: f32
} }
impl GameLoop for State { impl GameLoop for State {

View file

@ -1,10 +1,11 @@
use crate::State; use crate::State;
use comfy::{ use comfy::{
draw_rect, draw_rect_outline, screen_height, screen_to_world, screen_width, draw_rect, draw_rect_outline, egui, screen_height, screen_to_world, screen_width,
EngineContext, Vec2, BLUE, RED EngineContext, Vec2, BLUE, RED, WHITE
}; };
use egui::widget_text::RichText;
pub fn draw(state: &State, _engine: &EngineContext<'_>) { pub fn draw_batterie(state: &State, _engine: &EngineContext<'_>) {
// seperate fill state into smaller section for better readability // seperate fill state into smaller section for better readability
let section_count = 5; let section_count = 5;
let mut start_positon = screen_to_world(Vec2::new(screen_width(), screen_height())); let mut start_positon = screen_to_world(Vec2::new(screen_width(), screen_height()));
@ -29,3 +30,22 @@ pub fn draw(state: &State, _engine: &EngineContext<'_>) {
draw_rect_outline(position, section_size, 0.1, RED, 100); draw_rect_outline(position, section_size, 0.1, RED, 100);
} }
} }
pub fn draw_highscore(state: &State, _engine: &EngineContext<'_>) {
egui::Area::new("score")
.anchor(egui::Align2::RIGHT_TOP, egui::vec2(0.0, 0.0))
.show(egui(), |ui| {
ui.label(
RichText::new(format!("{:.0}", state.score))
.color(WHITE)
.monospace()
.size(16.0)
.strong()
);
});
}
pub fn draw(state: &State, engine: &EngineContext<'_>) {
draw_batterie(state, engine);
draw_highscore(state, engine);
}