[add] Added a sound effect at ResultScene.
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								res/sounds/shortbridge.wav
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								res/sounds/shortbridge.wav
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -6,6 +6,8 @@ import std.conv, | |||||||
|        std.math, |        std.math, | ||||||
|        std.random; |        std.random; | ||||||
|  |  | ||||||
|  | import derelict.sfml2.audio; | ||||||
|  |  | ||||||
| import gl4d; | import gl4d; | ||||||
|  |  | ||||||
| import sj.FontSet, | import sj.FontSet, | ||||||
| @@ -18,13 +20,14 @@ import sj.FontSet, | |||||||
|        sj.TextProgram, |        sj.TextProgram, | ||||||
|        sj.TitleScene, |        sj.TitleScene, | ||||||
|        sj.util.Animation, |        sj.util.Animation, | ||||||
|        sj.util.Easing; |        sj.util.Easing, | ||||||
|  |        sj.util.audio; | ||||||
|  |  | ||||||
| /// | /// | ||||||
| class ResultScene : SceneInterface { | class ResultScene : SceneInterface { | ||||||
|  public: |  public: | ||||||
|   /// |   /// | ||||||
|   enum AnimationFrame = 60; |   enum AnimationFrame = 120; | ||||||
|  |  | ||||||
|   /// |   /// | ||||||
|   enum CubeLoadingRotationSpeed = vec3(PI/100, PI/10, PI/100); |   enum CubeLoadingRotationSpeed = vec3(PI/100, PI/10, PI/100); | ||||||
| @@ -58,19 +61,25 @@ class ResultScene : SceneInterface { | |||||||
|   /// |   /// | ||||||
|   enum RankCalculationRatio = 10000; |   enum RankCalculationRatio = 10000; | ||||||
|  |  | ||||||
|  |   /// | ||||||
|  |   enum ShortbridgeSoundBuffer = cast(ubyte[]) import("sounds/shortbridge.wav"); | ||||||
|  |  | ||||||
|   /// |   /// | ||||||
|   this(LobbyWorld lobby, ProgramSet programs, FontSet fonts) { |   this(LobbyWorld lobby, ProgramSet programs, FontSet fonts) { | ||||||
|     lobby_    = lobby; |     lobby_    = lobby; | ||||||
|     programs_ = programs; |     programs_ = programs; | ||||||
|     fonts_    = fonts; |     fonts_    = fonts; | ||||||
|  |  | ||||||
|  |     sound_             = sfSound_create(); | ||||||
|  |     sound_shortbridge_ = CreateSoundBufferFromBuffer(ShortbridgeSoundBuffer); | ||||||
|  |  | ||||||
|     description_text_ = new Text(programs.Get!TextProgram); |     description_text_ = new Text(programs.Get!TextProgram); | ||||||
|     score_text_       = new Text(programs.Get!TextProgram); |     score_text_       = new Text(programs.Get!TextProgram); | ||||||
|     rank_text_        = new Text(programs.Get!TextProgram); |     rank_text_        = new Text(programs.Get!TextProgram); | ||||||
|  |  | ||||||
|     with (description_text_) { |     with (description_text_) { | ||||||
|       const w = LoadGlyphs(vec2i(256, 32), |       const w = LoadGlyphs(vec2i(256, 32), | ||||||
|           "YOUR RANK", vec2i(16, 0), fonts_.gothic); |           "RESULT", vec2i(16, 0), fonts_.gothic); | ||||||
|       matrix.scale       = DescTextScale; |       matrix.scale       = DescTextScale; | ||||||
|       matrix.translation = |       matrix.translation = | ||||||
|         DescTextTranslation + vec3(-w/2*matrix.scale.x, 0, 0); |         DescTextTranslation + vec3(-w/2*matrix.scale.x, 0, 0); | ||||||
| @@ -81,6 +90,9 @@ class ResultScene : SceneInterface { | |||||||
|     description_text_.destroy(); |     description_text_.destroy(); | ||||||
|     score_text_.destroy(); |     score_text_.destroy(); | ||||||
|     rank_text_.destroy(); |     rank_text_.destroy(); | ||||||
|  |  | ||||||
|  |     sfSound_destroy(sound_); | ||||||
|  |     sfSoundBuffer_destroy(sound_shortbridge_); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   /// |   /// | ||||||
| @@ -118,6 +130,9 @@ class ResultScene : SceneInterface { | |||||||
|       matrix.translation = |       matrix.translation = | ||||||
|         RankTextTranslation + vec3(-w/2 * matrix.scale.x, 0, 0); |         RankTextTranslation + vec3(-w/2 * matrix.scale.x, 0, 0); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     sfSound_setBuffer(sound_, sound_shortbridge_); | ||||||
|  |     sfSound_play(sound_); | ||||||
|   } |   } | ||||||
|   override SceneInterface Update(KeyInput input) { |   override SceneInterface Update(KeyInput input) { | ||||||
|     const ratio = anime_.Update(); |     const ratio = anime_.Update(); | ||||||
| @@ -142,9 +157,11 @@ class ResultScene : SceneInterface { | |||||||
|  |  | ||||||
|     const view = lobby_.view.Create(); |     const view = lobby_.view.Create(); | ||||||
|     description_text_.Draw(lobby_.Projection, view); |     description_text_.Draw(lobby_.Projection, view); | ||||||
|  |     if (ratio > 0.9) { | ||||||
|       rank_text_       .Draw(lobby_.Projection, view); |       rank_text_       .Draw(lobby_.Projection, view); | ||||||
|       score_text_      .Draw(lobby_.Projection, view); |       score_text_      .Draw(lobby_.Projection, view); | ||||||
|     } |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|  private: |  private: | ||||||
|   static dstring GetRankLetter(int score) { |   static dstring GetRankLetter(int score) { | ||||||
| @@ -165,6 +182,9 @@ class ResultScene : SceneInterface { | |||||||
|  |  | ||||||
|   Music music_; |   Music music_; | ||||||
|  |  | ||||||
|  |   sfSound*       sound_; | ||||||
|  |   sfSoundBuffer* sound_shortbridge_; | ||||||
|  |  | ||||||
|   Text description_text_; |   Text description_text_; | ||||||
|   Text score_text_; |   Text score_text_; | ||||||
|   Text rank_text_; |   Text rank_text_; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user