/// <summary> /// 更新する /// </summary> /// <param name="gameTime">ゲーム内部の時間</param> /// <returns>次の場面</returns> public Scene Update(GameTime gameTime, Input input) { // TODO // Aボタン:Pressed→Released foreach (PlayerIndex index in Enum.GetValues(typeof(PlayerIndex))) { //誰のどんなボタンでも開始できるようにする。 if (isStart) break; isStart = input.PushABXY(index) || input.PushStart(index) ||input.PushMouseLeftButton(); } if (isStart) { if (!fadeout.IsFadeOut) { fadeout.StartFadeOut(); se.Play(); } } if (!stopwatch.IsRunning) { stopwatch.Start(); } fadeout.Update(); if (stopwatch.ElapsedMilliseconds > 3000) { if (!fadeout.IsFadeOut) { fadeout.StartFadeOut(); } } if (fadeout.EndFadeOut && stopwatch.ElapsedMilliseconds > 30000) { return new CreditScene(content); } if (fadeout.EndFadeOut) { return new SelectScene(content); } return this; }
/// <summary> /// 更新する /// </summary> /// <param name="gameTime">ゲーム内部の時間</param> /// <returns>次の場面</returns> public Scene Update(GameTime gameTime, Input input) { resultDrawer.Update(gameTime); fadeout.Update(); bool isEnd = false; foreach (PlayerIndex index in Enum.GetValues(typeof(PlayerIndex))) { //誰のどんなボタンでも開始できるようにする。 if (isEnd) break; isEnd = input.PushABXY(index) || input.PushStart(index) || input.PushMouseLeftButton(); } if (isEnd && timer.Elapsed > goNextSceneTime) { // フェードアウト開始 se.Play(); fadeout.StartFadeOut(); } // フェードアウト終了後タイトルシーンに遷移 if (fadeout.EndFadeOut) { return new TitleScene(content); } return this; }