diff --git a/TJAPlayer3/Common/CSkin.cs b/TJAPlayer3/Common/CSkin.cs index 45f34849..e6beec48 100644 --- a/TJAPlayer3/Common/CSkin.cs +++ b/TJAPlayer3/Common/CSkin.cs @@ -357,6 +357,9 @@ namespace TJAPlayer3 public Cシステムサウンド soundChallengeVoice = null; public Cシステムサウンド soundDanSelectStart = null; public Cシステムサウンド soundDanSongSelectCheck = null; + + public Cシステムサウンド soundDanSongSelectIn = null; + public Cシステムサウンド soundDanSelectBGM = null; public Cシステムサウンド soundDanSongSelect = null; @@ -731,6 +734,9 @@ namespace TJAPlayer3 this.soundChallengeVoice = new Cシステムサウンド(@"Sounds\Dan\ChallengeVoice.wav", false, false, false, ESoundGroup.SoundEffect); this.soundDanSelectStart = new Cシステムサウンド(@"Sounds\Dan\DanSelectStart.wav", false, false, false, ESoundGroup.SoundEffect); this.soundDanSongSelectCheck = new Cシステムサウンド(@"Sounds\Dan\DanSongSelectCheck.wav", false, false, false, ESoundGroup.SoundEffect); + + this.soundDanSongSelectIn = new Cシステムサウンド(@"Sounds\Dan\Dan_In.ogg", false, false, false, ESoundGroup.SoundEffect); + this.soundDanSelectBGM = new Cシステムサウンド(@"Sounds\Dan\DanSelectBGM.wav", true, false, false, ESoundGroup.SongPlayback); this.soundDanSongSelect = new Cシステムサウンド(@"Sounds\Dan\DanSongSelect.wav", false, false, false, ESoundGroup.SoundEffect); ReloadSkin(); diff --git a/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs b/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs index 3985f556..884ec30d 100644 --- a/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs +++ b/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs @@ -267,8 +267,12 @@ namespace TJAPlayer3 for (int i = 0; i < Challenge_Select.Length; i++) Challenge_Select[i] = TxC(DANISELECT + "Challenge_Select_" + i.ToString() + ".png"); + Dani_Dan_In = TxC(DANISELECT + "Dan_In.png"); + Dani_Dan_Text = TxC(DANISELECT + "Dan_Text.png"); + + #endregion - + #region 4_読み込み画面 SongLoading_Plate = TxC(SONGLOADING + @"Plate.png"); SongLoading_Bg = TxC(SONGLOADING + @"Bg.png"); @@ -669,6 +673,15 @@ namespace TJAPlayer3 End_DondaFullComboLoop = new CTexture[3]; for (int i = 0; i < 3; i++) End_DondaFullComboLoop[i] = TxC(GAME + END + @"DondaFullCombo\" + "loop_" + i.ToString() + ".png"); + + + End_Goukaku = new CTexture[3]; + + for (int i = 0; i < End_Goukaku.Length; i++) + { + End_Goukaku[i] = TxC(GAME + END + @"Dan" + i.ToString() + ".png"); + } + #endregion #region ゲームモード GameMode_Timer_Tick = TxC(GAME + GAMEMODE + @"Timer_Tick.png"); @@ -1006,6 +1019,9 @@ namespace TJAPlayer3 public CTexture[] Challenge_Select = new CTexture[3]; + public CTexture Dani_Dan_In; + public CTexture Dani_Dan_Text; + #endregion #region 4_読み込み画面 @@ -1137,13 +1153,15 @@ namespace TJAPlayer3 End_FullCombo, End_FullComboLoop, End_DondaFullCombo, - End_DondaFullComboLoop; + End_DondaFullComboLoop, + End_Goukaku; public CTexture End_Clear_Text_, End_Clear_Text_Effect, ClearFailed, ClearFailed1, ClearFailed2, End_DondaFullComboBg; + #endregion #region ゲームモード public CTexture GameMode_Timer_Frame, diff --git a/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs b/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs index 1647888c..740d6cb6 100644 --- a/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs +++ b/TJAPlayer3/Stages/05.DaniSelect/CActSelect段位リスト.cs @@ -44,7 +44,7 @@ namespace TJAPlayer3 ctDaniMoveAnime = new CCounter(); ctDanAnimeIn = new CCounter(); - ctDaniIn = new CCounter(0, 3000, 1, TJAPlayer3.Timer); + ctDaniIn = new CCounter(0, 6000, 1, TJAPlayer3.Timer); ctDanTick = new CCounter(0, 510, 3, TJAPlayer3.Timer); @@ -88,7 +88,7 @@ namespace TJAPlayer3 ctExamConditionsAnim.t進行Loop(); - if (ctDaniIn.n現在の値 == 3000) + if (ctDaniIn.n現在の値 == 6000) { if(!DaniInAnime) { @@ -99,7 +99,7 @@ namespace TJAPlayer3 #region [ バー表示 ] - if (stバー情報.Length != 0) + if (stバー情報.Length != 0 && ctDaniIn.n現在の値 == 6000) { TJAPlayer3.Tx.DanC_ExamType.vc拡大縮小倍率.X = 0.81f; TJAPlayer3.Tx.DanC_ExamType.vc拡大縮小倍率.Y = 0.81f; @@ -134,6 +134,10 @@ namespace TJAPlayer3 #endregion + // To do : Display the 27 (max) bars one by one + if (ctDaniIn.n現在の値 < 5000) + return 0; + #region [Upper plates] // stバー情報[n現在の選択行] @@ -143,6 +147,10 @@ namespace TJAPlayer3 for (int idx = -13; idx < 14; idx++) { + + if (ctDaniIn.n現在の値 < 5000 + (idx + 13) * 33) + break; + int currentSong = n現在の選択行 + idx; if (currentSong < 0) diff --git a/TJAPlayer3/Stages/05.DaniSelect/CStage段位選択.cs b/TJAPlayer3/Stages/05.DaniSelect/CStage段位選択.cs index cf714a79..e4f2c50b 100644 --- a/TJAPlayer3/Stages/05.DaniSelect/CStage段位選択.cs +++ b/TJAPlayer3/Stages/05.DaniSelect/CStage段位選択.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using System.Drawing; using FDK; using SlimDX.DirectInput; @@ -16,6 +17,7 @@ namespace TJAPlayer3 base.eフェーズID = CStage.Eフェーズ.共通_通常状態; base.list子Activities.Add(this.段位リスト = new CActSelect段位リスト()); + base.list子Activities.Add(this.actFOtoNowLoading = new CActFIFOStart()); base.list子Activities.Add(this.段位挑戦選択画面 = new CActSelect段位挑戦選択画面()); base.list子Activities.Add(this.actFOtoTitle = new CActFIFOBlack()); @@ -37,6 +39,8 @@ namespace TJAPlayer3 ctDonchan_In = new CCounter(); ctDonchan_Normal = new CCounter(0, TJAPlayer3.Tx.SongSelect_Donchan_Normal.Length - 1, 1000 / 45, TJAPlayer3.Timer); + bInSongPlayed = false; + this.PuchiChara.IdleAnimation(); base.On活性化(); @@ -63,11 +67,71 @@ namespace TJAPlayer3 ctDonchan_In.t進行(); ct待機.t進行(); - TJAPlayer3.Tx.Dani_Background.t2D描画(TJAPlayer3.app.Device, 0, 0); + int stamp = this.段位リスト.ctDaniIn.n現在の値; + + float zoom = Math.Max(1f, 5000 / (float)stamp); + + TJAPlayer3.Tx.Dani_Background.vc拡大縮小倍率.X = zoom; + TJAPlayer3.Tx.Dani_Background.vc拡大縮小倍率.Y = zoom; + TJAPlayer3.Tx.Dani_Background.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 640, 360); this.段位リスト.On進行描画(); - if(this.段位リスト.ctDaniIn.n現在の値 == 3000) + + if (stamp < 6000) + { + #region [Dan intro anim] + + if (!bInSongPlayed) + { + this.段位リスト.ctDaniIn = new CCounter(0, 6000, 1, TJAPlayer3.Timer); + TJAPlayer3.Skin.soundDanSongSelectIn.t再生する(); + bInSongPlayed = true; + } + + int doorLeft = 0; + int doorRight = 640; + if (stamp >= 3834) + { + doorLeft -= stamp - 3834; + doorRight += stamp - 3834; + } + + TJAPlayer3.Tx.Dani_Dan_In.t2D描画(TJAPlayer3.app.Device, doorLeft, 0, new Rectangle(0, 0, 640, 720)); + TJAPlayer3.Tx.Dani_Dan_In.t2D描画(TJAPlayer3.app.Device, doorRight, 0, new Rectangle(640, 0, 640, 720)); + + if (stamp <= 3934) + { + #region [Dan intro letters] + + int quarter = TJAPlayer3.Tx.Dani_Dan_Text.szテクスチャサイズ.Width / 4; + + int[] xAxis = { 250, 1030 }; + int[] yAxis = { 148, 572 }; + int[] appearStamps = { 1645, 2188, 2646, 3152 }; + + for (int i = 0; i < 4; i++) + { + if (stamp < appearStamps[i]) + break; + + TJAPlayer3.Tx.Dani_Dan_Text.Opacity = Math.Min(255, stamp - appearStamps[i]); + + float ratio = (255 - TJAPlayer3.Tx.Dani_Dan_Text.Opacity) / 400f + 1f; + + TJAPlayer3.Tx.Dani_Dan_Text.vc拡大縮小倍率.X = ratio; + TJAPlayer3.Tx.Dani_Dan_Text.vc拡大縮小倍率.Y = ratio; + + TJAPlayer3.Tx.Dani_Dan_Text.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, xAxis[i % 2], yAxis[i / 2], + new Rectangle(quarter * i, 0, quarter, TJAPlayer3.Tx.Dani_Dan_Text.szテクスチャサイズ.Height)); + } + + #endregion + } + + #endregion + } + else if (stamp == 6000) { if (!ctDonchan_In.b開始した) { @@ -198,6 +262,8 @@ namespace TJAPlayer3 public bool b選択した; public bool bDifficultyIn; + public bool bInSongPlayed; + private CCounter ctDonchan_In; private CCounter ctDonchan_Normal;