color and sound display now

This commit is contained in:
2025-06-22 23:28:24 +02:00
parent 9ccfdd71a1
commit 927f0e2ad7
2 changed files with 31 additions and 9 deletions

View File

@@ -38,7 +38,7 @@ enum Message {
struct MyApp {
poly_frame: PolygonFrame,
time_last_frame: Instant,
nb_sec_for_rev: u32,
nb_sec_for_rev: f32,
audio_manager: AudioManager,
default_sound: StaticSoundData,
}
@@ -50,7 +50,7 @@ impl MyApp {
let sound_data = StaticSoundData::from_file("assets/tick.ogg").expect("Fail to load audio");
(
Self {
nb_sec_for_rev: 4,
nb_sec_for_rev: 4.0,
time_last_frame: Instant::now(),
audio_manager: manager,
default_sound: sound_data.clone(),
@@ -67,10 +67,10 @@ impl MyApp {
}
fn update(&mut self, message: Message) {
match message {
Message::ButtonPressedIncrement => self.nb_sec_for_rev += 1,
Message::ButtonPressedIncrement => self.nb_sec_for_rev += 0.5,
Message::ButtonPressedDecrement => {
if self.nb_sec_for_rev > 1 {
self.nb_sec_for_rev -= 1;
if self.nb_sec_for_rev > 0.5 {
self.nb_sec_for_rev -= 0.5;
}
}
Message::AddPolygon(s) => {
@@ -168,16 +168,18 @@ impl MyApp {
_ => c = Color::BLACK,
}
self.poly_frame.polygons[i].color = c;
self.poly_frame.polygons[i].color_name = s;
}
Message::ChangeSound(i, s) => {
self.poly_frame.polygons[i].sound =
StaticSoundData::from_file(s).expect("Fail to load audio")
StaticSoundData::from_file(&s).expect("Fail to load audio");
self.poly_frame.polygons[i].sound_name = s;
}
}
}
fn view(&self) -> iced::Element<Message> {
let txt_nb_rev = format!("Revolution per second : {}", self.nb_sec_for_rev);
let txt_nb_rev = format!("Number of second for revolution : {}", self.nb_sec_for_rev);
let mut i = 0;
//Create all polygon options
@@ -205,10 +207,10 @@ impl MyApp {
["Black", "Blue", "Green", "Pink", "Yellow", "Cyan"]
.map(|s| s.to_string())
.to_vec(),
Some("Color".to_string()),
Some(&polygon.color_name),
move |s| { Message::ChangeColor(current_index, s) }
),
pick_list(entries, Some("Sound".to_string()), move |s| {
pick_list(entries, Some(&polygon.sound_name), move |s| {
Message::ChangeSound(current_index, s)
}),
]

View File

@@ -107,8 +107,10 @@ pub struct Polygon {
pub global_teta: f32,
pub points_teta: Vec<f32>,
pub sound: StaticSoundData,
pub sound_name: String,
pub name: String,
pub color: Color,
pub color_name: String,
}
#[warn(dead_code)]
impl Polygon {
@@ -138,6 +140,8 @@ impl Polygon {
global_teta: teta,
points_teta: v,
sound: sound,
sound_name: "./assets/tick.ogg".to_string(),
color_name: "Black".to_string(),
name: "".to_string(),
color: Color::BLACK,
}
@@ -160,6 +164,8 @@ impl Polygon {
name: "".to_string(),
color: Color::BLACK,
global_teta: teta,
sound_name: "./assets/tick.ogg".to_string(),
color_name: "Black".to_string(),
points_teta: vec![
2.0 * 5.0 * PI / 30.0,
2.0 * 6.0 * PI / 30.0,
@@ -175,6 +181,8 @@ impl Polygon {
sound: sound,
name: "".to_string(),
color: Color::BLACK,
sound_name: "./assets/tick.ogg".to_string(),
color_name: "Black".to_string(),
global_teta: teta,
points_teta: vec![
0.0,
@@ -192,6 +200,8 @@ impl Polygon {
sound: sound,
name: "".to_string(),
color: Color::BLACK,
sound_name: "./assets/tick.ogg".to_string(),
color_name: "Black".to_string(),
global_teta: teta,
points_teta: vec![
2.0 * PI / 30.0,
@@ -210,6 +220,8 @@ impl Polygon {
sound: sound,
name: "".to_string(),
color: Color::BLACK,
sound_name: "./assets/tick.ogg".to_string(),
color_name: "Black".to_string(),
global_teta: teta,
points_teta: vec![
0.0,
@@ -229,6 +241,8 @@ impl Polygon {
sound: sound,
name: "".to_string(),
color: Color::BLACK,
sound_name: "./assets/tick.ogg".to_string(),
color_name: "Black".to_string(),
global_teta: teta,
points_teta: vec![
2.0 * 3.0 * PI / 42.0,
@@ -247,6 +261,8 @@ impl Polygon {
sound: sound,
name: "".to_string(),
color: Color::BLACK,
sound_name: "./assets/tick.ogg".to_string(),
color_name: "Black".to_string(),
global_teta: teta,
points_teta: vec![
0.0,
@@ -266,6 +282,8 @@ impl Polygon {
sound: sound,
name: "".to_string(),
color: Color::BLACK,
sound_name: "./assets/tick.ogg".to_string(),
color_name: "Black".to_string(),
global_teta: teta,
points_teta: vec![
2.0 * 6.0 * PI / 42.0,
@@ -286,6 +304,8 @@ impl Polygon {
sound: sound,
name: "".to_string(),
color: Color::BLACK,
sound_name: "./assets/tick.ogg".to_string(),
color_name: "Black".to_string(),
global_teta: teta,
points_teta: vec![
0.0,