Mercurial > touhou
comparison examples/menu.rs @ 751:eab7dde1164f
examples: Add music playback to the menu example
author | Emmanuel Gil Peyrot <linkmauve@linkmauve.fr> |
---|---|
date | Tue, 25 Feb 2020 19:37:19 +0100 |
parents | 31897f650d2d |
children | a662dddd4a2b |
comparison
equal
deleted
inserted
replaced
750:31897f650d2d | 751:eab7dde1164f |
---|---|
1 use ears::{Music, AudioController}; | |
1 use luminance::blending::{Equation, Factor}; | 2 use luminance::blending::{Equation, Factor}; |
2 use luminance::context::GraphicsContext; | 3 use luminance::context::GraphicsContext; |
3 use luminance::pipeline::{BoundTexture, PipelineState}; | 4 use luminance::pipeline::{BoundTexture, PipelineState}; |
4 use luminance::pixel::NormUnsigned; | 5 use luminance::pixel::NormUnsigned; |
5 use luminance::render_state::RenderState; | 6 use luminance::render_state::RenderState; |
111 let jpeg = in_pbg3.get_file("th06logo.jpg", true).expect("th06logo.jpg in IN.DAT"); | 112 let jpeg = in_pbg3.get_file("th06logo.jpg", true).expect("th06logo.jpg in IN.DAT"); |
112 let image = common::load_from_data(&jpeg).expect("th06logo.jpg decodable"); | 113 let image = common::load_from_data(&jpeg).expect("th06logo.jpg decodable"); |
113 image | 114 image |
114 }); | 115 }); |
115 | 116 |
117 let music_filename = directory.join("bgm").join("th06_01.wav"); | |
118 let music_filename = music_filename.to_str().expect("non-UTF-8 music filename"); | |
119 let music = match Music::new(music_filename) { | |
120 Ok(mut music) => { | |
121 music.set_looping(true); | |
122 music.play(); | |
123 music | |
124 } | |
125 Err(err) => { | |
126 eprintln!("Impossible to open or play music file: {}", err); | |
127 return; | |
128 } | |
129 }; | |
130 | |
116 let mut surface = GlfwSurface::new(WindowDim::Windowed(640, 480), "Touhou", WindowOpt::default()).expect("GLFW window"); | 131 let mut surface = GlfwSurface::new(WindowDim::Windowed(640, 480), "Touhou", WindowOpt::default()).expect("GLFW window"); |
117 | 132 |
118 let image = jpeg_thread.join().expect("image loading"); | 133 let image = jpeg_thread.join().expect("image loading"); |
119 let background = common::upload_texture_from_rgb_image(&mut surface, image).expect("upload data to texture"); | 134 let background = common::upload_texture_from_rgb_image(&mut surface, image).expect("upload data to texture"); |
120 | 135 |