private void ReturnTitleMenu() { DDTouch.Touch(); // 曲再生の前に -- .Play() で Touch した曲を解放してしまわないように Ground.I.Music.Title.Play(); //DDCurtain.SetCurtain(0, -1.0); DDCurtain.SetCurtain(); GC.Collect(); }
private void ReturnTitleMenu() { DDTouch.Touch(); // 曲再生の前に -- .Play() で Touch した曲を解放してしまわないように Ground.I.Music.Title.Play(); DDCurtain.SetCurtain(); DDEngine.FreezeInput(GameConsts.LONG_INPUT_SLEEP); GC.Collect(); }
public void Perform() { // 開発中_暫定 { int endFrame = DDEngine.ProcFrame + 300; DDGround.EL.Add(() => { int sec = endFrame - DDEngine.ProcFrame; DDPrint.SetPrint(180, DDConsts.Screen_H - 32); DDPrint.Print("これはクローズドテスト版です。仮リソース・実装されていない機能を含みます。(あと " + (sec / 60.0).ToString("F1") + " 秒で消えます)"); return(0 < sec); }); } foreach (DDScene scene in DDSceneUtils.Create(30)) { DDCurtain.DrawCurtain(); DDEngine.EachFrame(); } double z1 = 0.3; double z2 = 2.0; double z3 = 3.7; foreach (DDScene scene in DDSceneUtils.Create(60)) { DDCurtain.DrawCurtain(); DDDraw.SetAlpha(scene.Rate); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(z1); DDDraw.DrawEnd(); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.7); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(0.8 + 0.5 * scene.Rate); DDDraw.DrawEnd(); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.5); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(z2); DDDraw.DrawEnd(); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.3); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(z3); DDDraw.DrawEnd(); DDDraw.Reset(); DDUtils.Approach(ref z1, 1.0, 0.9); DDUtils.Approach(ref z2, 1.0, 0.98); DDUtils.Approach(ref z3, 1.0, 0.95); DDEngine.EachFrame(); } { long endLoopTime = long.MaxValue; for (int frame = 0; ; frame++) { if (endLoopTime < DDEngine.FrameStartTime) { break; } if (frame == 1) { endLoopTime = DDEngine.FrameStartTime + 1500; DDTouch.Touch(); } DDCurtain.DrawCurtain(); DDDraw.DrawCenter(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDEngine.EachFrame(); } } foreach (DDScene scene in DDSceneUtils.Create(60)) { DDCurtain.DrawCurtain(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.5); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(1.0 - 0.3 * scene.Rate); DDDraw.DrawRotate(scene.Rate * -0.1); DDDraw.DrawEnd(); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.5); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(1.0 + 0.8 * scene.Rate); DDDraw.DrawRotate(scene.Rate * 0.1); DDDraw.DrawEnd(); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.3); DDDraw.DrawCenter(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2 + scene.Rate * 100.0, DDConsts.Screen_H / 2); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.3); DDDraw.DrawCenter(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2 + scene.Rate * 50.0); DDDraw.Reset(); DDEngine.EachFrame(); } }
private void Main4() { // *.INIT { // アプリ固有 > //RippleEffect.INIT(); //画面分割.INIT(); //画面分割_Effect.INIT(); // < アプリ固有 } #region Charge To DDTouch // DDCCResource 等のための Touch //DDTouch.Add(TitleMenu.TouchWallDrawerResources); // 個別に設定 //DDTouch.Add(Ground.I.Picture.XXX); //DDTouch.Add(Ground.I.Music.XXX); //DDTouch.Add(Ground.I.SE.XXX); // 全部設定 DDTouch.AddAllPicture(); DDTouch.AddAllMusic(); DDTouch.AddAllSE(); #endregion //DDTouch.Touch(); // moved -> Logo if (DDConfig.LOG_ENABLED) { DDEngine.DispDebug = () => { DDPrint.SetDebug(); DDPrint.SetBorder(new I3Color(0, 0, 0)); DDPrint.Print(string.Join( " ", Game.I == null ? "-" : "" + Game.I.Player.HP, Game.I == null ? "-" : "" + (int)Game.I.Player.選択武器, // デバッグ表示する情報をここへ追加.. DDEngine.FrameProcessingMillis, DDEngine.FrameProcessingMillis_Worst )); DDPrint.Reset(); }; } if (ProcMain.DEBUG) { Main4_Debug(); } else { Main4_Release(); } }
private void Main4() { // *.INIT { // アプリ固有 > 波紋効果.INIT(); // < アプリ固有 } #region Charge To DDTouch // DDCCResource 等のための Touch //DDTouch.Add(TitleMenu.TouchWallDrawerResources); // 個別に設定 //DDTouch.Add(Ground.I.Picture.XXX); //DDTouch.Add(Ground.I.Music.XXX); //DDTouch.Add(Ground.I.SE.XXX); // 全部設定 DDTouch.AddAllPicture(); DDTouch.AddAllMusic(); DDTouch.AddAllSE(); #endregion //DDTouch.Touch(); // moved -> Logo if (DDConfig.LOG_ENABLED) { DDEngine.DispDebug = () => { DDPrint.SetPrint(); DDPrint.SetBorder(new I3Color(0, 0, 0)); DDPrint.DebugPrint(string.Join( " ", 波紋効果.Count, Game.I == null ? "-" : "" + Game.I.SnapshotCount, Game.I == null ? "-" : "" + Game.I.タイル接近_敵描画_Points.Count, "会ス抑=" + (Ground.I.会話スキップ抑止 ? 1 : 0), Game.I == null ? "-" : "" + Game.I.行き先案内_Crashed_Start方面, Game.I == null ? "-" : "" + Game.I.行き先案内_Crashed_Goal方面, // デバッグ表示する情報をここへ追加.. DDEngine.FrameProcessingMillis, DDEngine.FrameProcessingMillis_Worst )); DDPrint.Reset(); }; } if (ProcMain.DEBUG) { Main4_Debug(); } else { Main4_Release(); } }
public void Perform() { if (DDConfig.LOG_ENABLED) // 開発・デバッグ_モードであることを表示 { #if true DDGround.EL.Keep(300, () => { DDPrint.SetPrint(20, DDConsts.Screen_H - 40, 20); DDPrint.PrintLine("デバッグモードが有効になりました。"); DDPrint.PrintLine("★これはクローズドテスト版です。仮リソース・未実装・不完全な機能を含みます。(このメッセージは数秒で消えます)"); }); #else // old nearly same int endFrame = DDEngine.ProcFrame + 300; DDGround.EL.Add(() => { int remFrame = endFrame - DDEngine.ProcFrame; DDPrint.SetPrint(60, DDConsts.Screen_H - 40, 20); DDPrint.PrintLine("デバッグモードが有効になりました。"); DDPrint.PrintLine("★これはクローズドテスト版です。仮リソース・未実装・不完全な機能を含みます。(あと " + (remFrame / 60.0).ToString("F1") + " 秒で消えます)"); return(0 < remFrame); }); #endif } foreach (DDScene scene in DDSceneUtils.Create(60)) // LiteStatusDlg を閉じるまでの遅延の分(30フレーム)延長 //foreach (DDScene scene in DDSceneUtils.Create(30)) { DDCurtain.DrawCurtain(); DDEngine.EachFrame(); } double z1 = 0.3; double z2 = 2.0; double z3 = 3.7; foreach (DDScene scene in DDSceneUtils.Create(60)) { DDCurtain.DrawCurtain(); DDDraw.SetAlpha(scene.Rate); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(z1); DDDraw.DrawEnd(); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.7); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(0.8 + 0.5 * scene.Rate); DDDraw.DrawEnd(); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.5); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(z2); DDDraw.DrawEnd(); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.3); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(z3); DDDraw.DrawEnd(); DDDraw.Reset(); DDUtils.Approach(ref z1, 1.0, 0.9); DDUtils.Approach(ref z2, 1.0, 0.98); DDUtils.Approach(ref z3, 1.0, 0.95); DDEngine.EachFrame(); } { long endLoopTime = long.MaxValue; for (int frame = 0; ; frame++) { if (endLoopTime < DDEngine.FrameStartTime) { break; } if (frame == 1) { endLoopTime = DDEngine.FrameStartTime + 1500; DDTouch.Touch(); } DDCurtain.DrawCurtain(); DDDraw.DrawCenter(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDEngine.EachFrame(); } } foreach (DDScene scene in DDSceneUtils.Create(60)) { DDCurtain.DrawCurtain(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.5); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(1.0 - 0.3 * scene.Rate); DDDraw.DrawRotate(scene.Rate * -0.1); DDDraw.DrawEnd(); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.5); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(1.0 + 0.8 * scene.Rate); DDDraw.DrawRotate(scene.Rate * 0.1); DDDraw.DrawEnd(); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.3); DDDraw.DrawCenter(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2 + scene.Rate * 100.0, DDConsts.Screen_H / 2); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.3); DDDraw.DrawCenter(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2 + scene.Rate * 50.0); DDDraw.Reset(); DDEngine.EachFrame(); } }
/// <summary> /// レイヤ表示を実行する。 /// ステージ番号: /// -- 1~9 == 各ステージ /// </summary> /// <param name="stageNo">ステージ番号</param> /// <param name="themeColor">このステージの印象的な色</param> public static void Perform(int stageNo, I3Color themeColor, DDMusic music) { int layerNo = 10 - stageNo; DDCurtain.SetCurtain(0, -1.0); DDCurtain.SetCurtain(); using (DDSubScreen tmpScreen = new DDSubScreen(400, 200)) { foreach (DDScene scene in DDSceneUtils.Create(210)) { if (scene.Numer == 30) { DDTouch.Touch(); music.Play(); } if (scene.Numer + 30 == scene.Denom) { DDCurtain.SetCurtain(30, -1.0); } DDCurtain.DrawCurtain(); int bure = (int)(scene.Rate * scene.Rate * 20); int xBure = DDUtils.Random.GetRange(-bure, bure); int yBure = DDUtils.Random.GetRange(-bure, bure); #if true DDFontUtils.DrawString_XCenter( DDConsts.Screen_W / 2 + xBure, DDConsts.Screen_H / 2 + yBure - 50, "LAYER " + layerNo, DDFontUtils.GetFont("03焚火-Regular", 100) ); #else using (tmpScreen.Section()) { DDPrint.SetColor(new I3Color(60, 60, 60)); DDPrint.SetBorder(new I3Color(255, 255, 255)); DDPrint.SetPrint(tmpScreen.GetSize().W / 2 - 60, tmpScreen.GetSize().H / 2 - 8); DDPrint.Print("L A Y E R : " + layerNo); DDPrint.Reset(); } DDDraw.SetMosaic(); DDDraw.DrawBegin( tmpScreen.ToPicture(), DDConsts.Screen_W / 2 + xBure, DDConsts.Screen_H / 2 + yBure ); DDDraw.DrawZoom(6.0); DDDraw.DrawEnd(); DDDraw.Reset(); #endif if (0.5 < scene.Rate) { const int c_max = 300; for (int c = (int)(scene.Rate * scene.Rate * c_max); 0 < c; c--) { double c_rate = (double)c / c_max; DDDraw.SetAlpha(scene.Rate * 0.5); //DDDraw.SetBright(new I3Color(c, c, c)); // old DDDraw.SetBright(new I3Color( (int)(themeColor.R * c_rate), (int)(themeColor.G * c_rate), (int)(themeColor.B * c_rate) )); DDDraw.DrawBegin( Ground.I.Picture.WhiteBox, DDUtils.Random.GetInt(DDConsts.Screen_W), DDUtils.Random.GetInt(DDConsts.Screen_H) ); DDDraw.DrawSetSize( DDUtils.Random.GetRange(40, (int)(400 * scene.Rate)), DDUtils.Random.GetRange(20, (int)(200 * scene.Rate)) ); DDDraw.DrawEnd(); DDDraw.Reset(); } } DDEngine.EachFrame(); } } DDCurtain.SetCurtain(0); }
public void Perform() { if (DDConfig.LOG_ENABLED) // 開発・デバッグ_モードであることを表示 { DDGround.EL.Keep(300, () => { DDPrint.SetPrint(100, DDConsts.Screen_H - 40); DDPrint.Print("これはクローズドテスト版です。仮リソース・実装されていない機能を含みます。(このメッセージは数秒で消えます)"); }); } foreach (DDScene scene in DDSceneUtils.Create(60)) // LiteStatusDlg を閉じるまでの遅延の分(30フレーム)延長 //foreach (DDScene scene in DDSceneUtils.Create(30)) { DDCurtain.DrawCurtain(); DDEngine.EachFrame(); } double z1 = 0.3; double z2 = 2.0; double z3 = 3.7; foreach (DDScene scene in DDSceneUtils.Create(60)) { DDCurtain.DrawCurtain(); DDDraw.SetAlpha(scene.Rate); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(z1); DDDraw.DrawEnd(); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.7); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(0.8 + 0.5 * scene.Rate); DDDraw.DrawEnd(); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.5); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(z2); DDDraw.DrawEnd(); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.3); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(z3); DDDraw.DrawEnd(); DDDraw.Reset(); DDUtils.Approach(ref z1, 1.0, 0.9); DDUtils.Approach(ref z2, 1.0, 0.98); DDUtils.Approach(ref z3, 1.0, 0.95); DDEngine.EachFrame(); } { long endLoopTime = long.MaxValue; for (int frame = 0; ; frame++) { if (endLoopTime < DDEngine.FrameStartTime) { break; } if (frame == 1) { endLoopTime = DDEngine.FrameStartTime + 1500; DDTouch.Touch(); } DDCurtain.DrawCurtain(); DDDraw.DrawCenter(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDEngine.EachFrame(); } } foreach (DDScene scene in DDSceneUtils.Create(60)) { DDCurtain.DrawCurtain(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.5); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(1.0 - 0.3 * scene.Rate); DDDraw.DrawRotate(scene.Rate * -0.1); DDDraw.DrawEnd(); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.5); DDDraw.DrawBegin(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(1.0 + 0.8 * scene.Rate); DDDraw.DrawRotate(scene.Rate * 0.1); DDDraw.DrawEnd(); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.3); DDDraw.DrawCenter(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2 + scene.Rate * 100.0, DDConsts.Screen_H / 2); DDDraw.Reset(); DDDraw.SetAlpha((1.0 - scene.Rate) * 0.3); DDDraw.DrawCenter(Ground.I.Picture.Copyright, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2 + scene.Rate * 50.0); DDDraw.Reset(); DDEngine.EachFrame(); } }
private void Main4() { // *.INIT { // アプリ固有 > RippleEffect.INIT(); 画面分割.INIT(); 画面分割_Effect.INIT(); // < アプリ固有 } #region Charge To DDTouch // memo: // ロードされれば DDPictureUtils.Pictures 等に追加されるので、ここで呼ぶだけで良い。 //TitleMenu.TouchWallDrawerResources(); // <-- AddAllPicture(); する場合だけの話 // AddAllPicture(); しない場合を想定して形を合わせる為に DDTouch.Add(TitleMenu.TouchWallDrawerResources); するべき // DDCCResource 等のための Touch DDTouch.Add(TitleMenu.TouchWallDrawerResources); // 個別に設定 //DDTouch.Add(Ground.I.Picture.XXX); //DDTouch.Add(Ground.I.Music.XXX); //DDTouch.Add(Ground.I.SE.XXX); // 全部設定 DDTouch.AddAllPicture(); DDTouch.AddAllMusic(); DDTouch.AddAllSE(); #endregion //DDTouch.Touch(); // moved -> Logo if (DDConfig.LOG_ENABLED) { DDEngine.DispDebug = () => { DDPrint.SetPrint(); DDPrint.SetBorder(new I3Color(0, 0, 0)); DDPrint.Print(string.Join(" ", DDEngine.FrameProcessingMillis, DDEngine.FrameProcessingMillis_Worst // デバッグ表示する情報をここへ追加.. )); DDPrint.Reset(); }; } if (ProcMain.ArgsReader.ArgIs("//D")) // 引数は適当な文字列 { Main4_Debug(); } else { Main4_Release(); } }