[add] Added ResultScene.

This commit is contained in:
falsycat 2019-10-14 00:00:00 +00:00
parent 3dbd498b8f
commit 98be1dbc74
4 changed files with 72 additions and 7 deletions

View File

@ -1,9 +1,9 @@
actor [0..100] { actor [0..1] {
color_a := 1; color_a := 1;
clip_left := 0.1; clip_left := 0.1;
} }
background [0..100] { background [0..1] {
inner_r = 0.8; inner_r = 0.8;
inner_g = 0.8; inner_g = 0.8;
inner_b = 0.8; inner_b = 0.8;
@ -14,7 +14,7 @@ background [0..100] {
outer_b = 0; outer_b = 0;
outer_a = 1; outer_a = 1;
} }
posteffect [0..100] { posteffect [0..1] {
clip_left := 0.1; clip_left := 0.1;
clip_right := 0.1; clip_right := 0.1;
} }

View File

@ -14,6 +14,7 @@ import sj.AbstractGame,
sj.Music, sj.Music,
sj.PlayScene, sj.PlayScene,
sj.ProgramSet, sj.ProgramSet,
sj.ResultScene,
sj.SelectScene, sj.SelectScene,
sj.TitleScene; sj.TitleScene;
@ -38,12 +39,14 @@ class Game : AbstractGame {
title_ = new TitleScene(lobby_, programs_); title_ = new TitleScene(lobby_, programs_);
select_ = new SelectScene(lobby_, programs_, fonts_, music_list_); select_ = new SelectScene(lobby_, programs_, fonts_, music_list_);
load_ = new LoadingScene(args, lobby_, programs_, fonts_); load_ = new LoadingScene(args, lobby_, programs_, fonts_);
play_ = new PlayScene(); play_ = new PlayScene;
result_ = new ResultScene(lobby_, programs_, fonts_);
title_ .SetupSceneDependency(select_); title_ .SetupSceneDependency(select_);
select_.SetupSceneDependency(title_, load_); select_.SetupSceneDependency(title_, load_);
load_ .SetupSceneDependency(play_); load_ .SetupSceneDependency(play_);
play_ .SetupSceneDependency(); // TODO: pass result scene play_ .SetupSceneDependency(result_);
result_.SetupSceneDependency();
title_.Initialize(); title_.Initialize();
super(title_); super(title_);
@ -54,6 +57,7 @@ class Game : AbstractGame {
select_.destroy(); select_.destroy();
load_.destroy(); load_.destroy();
play_.destroy(); play_.destroy();
result_.destroy();
lobby_.destroy(); lobby_.destroy();
@ -75,4 +79,5 @@ class Game : AbstractGame {
SelectScene select_; SelectScene select_;
LoadingScene load_; LoadingScene load_;
PlayScene play_; PlayScene play_;
ResultScene result_;
} }

View File

@ -7,6 +7,7 @@ static import sjplayer;
import sj.KeyInput, import sj.KeyInput,
sj.Music, sj.Music,
sj.ResultScene,
sj.SceneInterface; sj.SceneInterface;
/// ///
@ -20,7 +21,8 @@ class PlayScene : SceneInterface {
} }
/// ///
void SetupSceneDependency() { // TODO: add result scene void SetupSceneDependency(ResultScene result) {
result_scene_ = result;
} }
/// ///
@ -31,7 +33,15 @@ class PlayScene : SceneInterface {
music_.PlayForGame(); music_.PlayForGame();
} }
override SceneInterface Update(KeyInput input) { override SceneInterface Update(KeyInput input) {
context_.OperateScheduledControllers(music_.beat); const beat = music_.beat;
if (beat >= context_.length) {
music_.StopPlaying();
result_scene_.Initialize(music_, 0); // TODO: pass a proper score
return result_scene_;
}
context_.OperateScheduledControllers(beat);
// TODO: actor accelaration // TODO: actor accelaration
@ -52,6 +62,8 @@ class PlayScene : SceneInterface {
} }
private: private:
ResultScene result_scene_;
Music music_; Music music_;
sjplayer.Context context_; sjplayer.Context context_;
} }

48
src/sj/ResultScene.d Normal file
View File

@ -0,0 +1,48 @@
/// License: MIT
module sj.ResultScene;
import gl4d;
import sj.FontSet,
sj.KeyInput,
sj.LobbyWorld,
sj.Music,
sj.ProgramSet,
sj.SceneInterface;
///
class ResultScene : SceneInterface {
public:
///
this(LobbyWorld lobby, ProgramSet programs, FontSet fonts) {
lobby_ = lobby;
programs_ = programs;
fonts_ = fonts;
}
~this() {
}
///
void SetupSceneDependency() {
}
///
void Initialize(Music music, int score) {
music_ = music;
}
override SceneInterface Update(KeyInput input) {
return this;
}
override void Draw() {
lobby_.Draw();
}
private:
LobbyWorld lobby_;
ProgramSet programs_;
FontSet fonts_;
Music music_;
}