color and sound display now
This commit is contained in:
20
src/main.rs
20
src/main.rs
@@ -38,7 +38,7 @@ enum Message {
|
|||||||
struct MyApp {
|
struct MyApp {
|
||||||
poly_frame: PolygonFrame,
|
poly_frame: PolygonFrame,
|
||||||
time_last_frame: Instant,
|
time_last_frame: Instant,
|
||||||
nb_sec_for_rev: u32,
|
nb_sec_for_rev: f32,
|
||||||
audio_manager: AudioManager,
|
audio_manager: AudioManager,
|
||||||
default_sound: StaticSoundData,
|
default_sound: StaticSoundData,
|
||||||
}
|
}
|
||||||
@@ -50,7 +50,7 @@ impl MyApp {
|
|||||||
let sound_data = StaticSoundData::from_file("assets/tick.ogg").expect("Fail to load audio");
|
let sound_data = StaticSoundData::from_file("assets/tick.ogg").expect("Fail to load audio");
|
||||||
(
|
(
|
||||||
Self {
|
Self {
|
||||||
nb_sec_for_rev: 4,
|
nb_sec_for_rev: 4.0,
|
||||||
time_last_frame: Instant::now(),
|
time_last_frame: Instant::now(),
|
||||||
audio_manager: manager,
|
audio_manager: manager,
|
||||||
default_sound: sound_data.clone(),
|
default_sound: sound_data.clone(),
|
||||||
@@ -67,10 +67,10 @@ impl MyApp {
|
|||||||
}
|
}
|
||||||
fn update(&mut self, message: Message) {
|
fn update(&mut self, message: Message) {
|
||||||
match message {
|
match message {
|
||||||
Message::ButtonPressedIncrement => self.nb_sec_for_rev += 1,
|
Message::ButtonPressedIncrement => self.nb_sec_for_rev += 0.5,
|
||||||
Message::ButtonPressedDecrement => {
|
Message::ButtonPressedDecrement => {
|
||||||
if self.nb_sec_for_rev > 1 {
|
if self.nb_sec_for_rev > 0.5 {
|
||||||
self.nb_sec_for_rev -= 1;
|
self.nb_sec_for_rev -= 0.5;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Message::AddPolygon(s) => {
|
Message::AddPolygon(s) => {
|
||||||
@@ -168,16 +168,18 @@ impl MyApp {
|
|||||||
_ => c = Color::BLACK,
|
_ => c = Color::BLACK,
|
||||||
}
|
}
|
||||||
self.poly_frame.polygons[i].color = c;
|
self.poly_frame.polygons[i].color = c;
|
||||||
|
self.poly_frame.polygons[i].color_name = s;
|
||||||
}
|
}
|
||||||
Message::ChangeSound(i, s) => {
|
Message::ChangeSound(i, s) => {
|
||||||
self.poly_frame.polygons[i].sound =
|
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> {
|
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;
|
let mut i = 0;
|
||||||
//Create all polygon options
|
//Create all polygon options
|
||||||
@@ -205,10 +207,10 @@ impl MyApp {
|
|||||||
["Black", "Blue", "Green", "Pink", "Yellow", "Cyan"]
|
["Black", "Blue", "Green", "Pink", "Yellow", "Cyan"]
|
||||||
.map(|s| s.to_string())
|
.map(|s| s.to_string())
|
||||||
.to_vec(),
|
.to_vec(),
|
||||||
Some("Color".to_string()),
|
Some(&polygon.color_name),
|
||||||
move |s| { Message::ChangeColor(current_index, s) }
|
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)
|
Message::ChangeSound(current_index, s)
|
||||||
}),
|
}),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -107,8 +107,10 @@ pub struct Polygon {
|
|||||||
pub global_teta: f32,
|
pub global_teta: f32,
|
||||||
pub points_teta: Vec<f32>,
|
pub points_teta: Vec<f32>,
|
||||||
pub sound: StaticSoundData,
|
pub sound: StaticSoundData,
|
||||||
|
pub sound_name: String,
|
||||||
pub name: String,
|
pub name: String,
|
||||||
pub color: Color,
|
pub color: Color,
|
||||||
|
pub color_name: String,
|
||||||
}
|
}
|
||||||
#[warn(dead_code)]
|
#[warn(dead_code)]
|
||||||
impl Polygon {
|
impl Polygon {
|
||||||
@@ -138,6 +140,8 @@ impl Polygon {
|
|||||||
global_teta: teta,
|
global_teta: teta,
|
||||||
points_teta: v,
|
points_teta: v,
|
||||||
sound: sound,
|
sound: sound,
|
||||||
|
sound_name: "./assets/tick.ogg".to_string(),
|
||||||
|
color_name: "Black".to_string(),
|
||||||
name: "".to_string(),
|
name: "".to_string(),
|
||||||
color: Color::BLACK,
|
color: Color::BLACK,
|
||||||
}
|
}
|
||||||
@@ -160,6 +164,8 @@ impl Polygon {
|
|||||||
name: "".to_string(),
|
name: "".to_string(),
|
||||||
color: Color::BLACK,
|
color: Color::BLACK,
|
||||||
global_teta: teta,
|
global_teta: teta,
|
||||||
|
sound_name: "./assets/tick.ogg".to_string(),
|
||||||
|
color_name: "Black".to_string(),
|
||||||
points_teta: vec![
|
points_teta: vec![
|
||||||
2.0 * 5.0 * PI / 30.0,
|
2.0 * 5.0 * PI / 30.0,
|
||||||
2.0 * 6.0 * PI / 30.0,
|
2.0 * 6.0 * PI / 30.0,
|
||||||
@@ -175,6 +181,8 @@ impl Polygon {
|
|||||||
sound: sound,
|
sound: sound,
|
||||||
name: "".to_string(),
|
name: "".to_string(),
|
||||||
color: Color::BLACK,
|
color: Color::BLACK,
|
||||||
|
sound_name: "./assets/tick.ogg".to_string(),
|
||||||
|
color_name: "Black".to_string(),
|
||||||
global_teta: teta,
|
global_teta: teta,
|
||||||
points_teta: vec![
|
points_teta: vec![
|
||||||
0.0,
|
0.0,
|
||||||
@@ -192,6 +200,8 @@ impl Polygon {
|
|||||||
sound: sound,
|
sound: sound,
|
||||||
name: "".to_string(),
|
name: "".to_string(),
|
||||||
color: Color::BLACK,
|
color: Color::BLACK,
|
||||||
|
sound_name: "./assets/tick.ogg".to_string(),
|
||||||
|
color_name: "Black".to_string(),
|
||||||
global_teta: teta,
|
global_teta: teta,
|
||||||
points_teta: vec![
|
points_teta: vec![
|
||||||
2.0 * PI / 30.0,
|
2.0 * PI / 30.0,
|
||||||
@@ -210,6 +220,8 @@ impl Polygon {
|
|||||||
sound: sound,
|
sound: sound,
|
||||||
name: "".to_string(),
|
name: "".to_string(),
|
||||||
color: Color::BLACK,
|
color: Color::BLACK,
|
||||||
|
sound_name: "./assets/tick.ogg".to_string(),
|
||||||
|
color_name: "Black".to_string(),
|
||||||
global_teta: teta,
|
global_teta: teta,
|
||||||
points_teta: vec![
|
points_teta: vec![
|
||||||
0.0,
|
0.0,
|
||||||
@@ -229,6 +241,8 @@ impl Polygon {
|
|||||||
sound: sound,
|
sound: sound,
|
||||||
name: "".to_string(),
|
name: "".to_string(),
|
||||||
color: Color::BLACK,
|
color: Color::BLACK,
|
||||||
|
sound_name: "./assets/tick.ogg".to_string(),
|
||||||
|
color_name: "Black".to_string(),
|
||||||
global_teta: teta,
|
global_teta: teta,
|
||||||
points_teta: vec![
|
points_teta: vec![
|
||||||
2.0 * 3.0 * PI / 42.0,
|
2.0 * 3.0 * PI / 42.0,
|
||||||
@@ -247,6 +261,8 @@ impl Polygon {
|
|||||||
sound: sound,
|
sound: sound,
|
||||||
name: "".to_string(),
|
name: "".to_string(),
|
||||||
color: Color::BLACK,
|
color: Color::BLACK,
|
||||||
|
sound_name: "./assets/tick.ogg".to_string(),
|
||||||
|
color_name: "Black".to_string(),
|
||||||
global_teta: teta,
|
global_teta: teta,
|
||||||
points_teta: vec![
|
points_teta: vec![
|
||||||
0.0,
|
0.0,
|
||||||
@@ -266,6 +282,8 @@ impl Polygon {
|
|||||||
sound: sound,
|
sound: sound,
|
||||||
name: "".to_string(),
|
name: "".to_string(),
|
||||||
color: Color::BLACK,
|
color: Color::BLACK,
|
||||||
|
sound_name: "./assets/tick.ogg".to_string(),
|
||||||
|
color_name: "Black".to_string(),
|
||||||
global_teta: teta,
|
global_teta: teta,
|
||||||
points_teta: vec![
|
points_teta: vec![
|
||||||
2.0 * 6.0 * PI / 42.0,
|
2.0 * 6.0 * PI / 42.0,
|
||||||
@@ -286,6 +304,8 @@ impl Polygon {
|
|||||||
sound: sound,
|
sound: sound,
|
||||||
name: "".to_string(),
|
name: "".to_string(),
|
||||||
color: Color::BLACK,
|
color: Color::BLACK,
|
||||||
|
sound_name: "./assets/tick.ogg".to_string(),
|
||||||
|
color_name: "Black".to_string(),
|
||||||
global_teta: teta,
|
global_teta: teta,
|
||||||
points_teta: vec![
|
points_teta: vec![
|
||||||
0.0,
|
0.0,
|
||||||
|
|||||||
Reference in New Issue
Block a user