MakMake music loop and make volume adjustable

This commit is contained in:
crumblingstatue 2023-04-03 23:45:37 +02:00
parent 69b022ea02
commit 134e03db7e

View file

@ -3,6 +3,7 @@ use std::fmt::{self};
use egui_sfml::{egui, SfEgui}; use egui_sfml::{egui, SfEgui};
use gamedebug_core::{imm, imm_dbg}; use gamedebug_core::{imm, imm_dbg};
use sfml::{ use sfml::{
audio::SoundSource,
graphics::{Color, RenderTarget, RenderWindow}, graphics::{Color, RenderTarget, RenderWindow},
window::{Event, Key}, window::{Event, Key},
}; };
@ -33,6 +34,8 @@ impl App {
let rw = graphics::make_window(); let rw = graphics::make_window();
let sf_egui = SfEgui::new(&rw); let sf_egui = SfEgui::new(&rw);
let mut res = Res::load()?; let mut res = Res::load()?;
res.music.set_looping(true);
res.music.set_volume(10.0);
res.music.play(); res.music.play();
Ok(Self { Ok(Self {
rw, rw,
@ -198,7 +201,7 @@ impl App {
self.sf_egui self.sf_egui
.do_frame(|ctx| { .do_frame(|ctx| {
if self.debug.panel { if self.debug.panel {
debug_panel_ui(&mut self.debug, &mut self.game, ctx); debug_panel_ui(&mut self.debug, &mut self.game, ctx, &mut self.res);
} }
}) })
.unwrap(); .unwrap();
@ -207,7 +210,12 @@ impl App {
} }
} }
fn debug_panel_ui(debug: &mut DebugState, game: &mut GameState, ctx: &egui::Context) { fn debug_panel_ui(
debug: &mut DebugState,
game: &mut GameState,
ctx: &egui::Context,
res: &mut Res,
) {
egui::Window::new("Debug (F12)").show(ctx, |ui| { egui::Window::new("Debug (F12)").show(ctx, |ui| {
if debug.freecam { if debug.freecam {
ui.label("Cam x"); ui.label("Cam x");
@ -245,6 +253,10 @@ fn debug_panel_ui(debug: &mut DebugState, game: &mut GameState, ctx: &egui::Cont
} }
ui.label("Tile to place"); ui.label("Tile to place");
ui.add(egui::DragValue::new(&mut game.tile_to_place)); ui.add(egui::DragValue::new(&mut game.tile_to_place));
ui.label("Music volume");
let mut vol = res.music.volume();
ui.add(egui::DragValue::new(&mut vol));
res.music.set_volume(vol);
ui.separator(); ui.separator();
egui::ScrollArea::vertical().show(ui, |ui| { egui::ScrollArea::vertical().show(ui, |ui| {
gamedebug_core::for_each_imm(|info| match info { gamedebug_core::for_each_imm(|info| match info {