--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Text;
+using System.Drawing;
+using SharpDX.Animation;
+using FDK;
+
+using SlimDXKey = SlimDX.DirectInput.Key;
+using SharpDX;
+
+namespace DTXMania
+{
+ // 未完成
+
+ internal class CActFIFOFade : CActivity
+ {
+ // メソッド
+ public void tフェードアウト開始WAM()
+ {
+ this.mode = EFIFOモード.フェードアウト;
+
+ #region[ Storyboardの構築 ]
+ float f速度倍率 = 0.3f;
+ double dコマ秒 = 0.016;
+ double 秒(double v) => ( v / f速度倍率 );
+ var animation = CDTXMania.AnimationManager;
+ var basetime = animation.Timer.Time;
+ var start = basetime;
+
+ C図形 図形 = this._図形[ 0 ];
+ 図形._ストーリーボード = new Storyboard( animation.Manager );
+ 図形.var画像Z軸回転度 = new Variable( animation.Manager, -135 );
+ 図形.var画像中心位置X = new Variable( animation.Manager, -1280 );
+ 図形.var画像中心位置Y = new Variable( animation.Manager, -180);
+
+ // 初期50度 -> 180度
+
+ using (var Z回転 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 20), 0))
+ using (var X移動1 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 20), 0))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像Z軸回転度, Z回転);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動1);
+ }
+ this._図形[0]._ストーリーボード?.Schedule( start );
+
+ start += 秒(dコマ秒 * 2);
+ 図形 = this._図形[ 1 ];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, 568);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 662);
+
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 226, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[1]._ストーリーボード?.Schedule(start);
+
+
+ // タイトルロゴ
+ start = basetime + 秒(dコマ秒 * 8);
+ _タイトルロゴ._ストーリーボード = new Storyboard(animation.Manager);
+ _タイトルロゴ.var画像不透明度 = new Variable(animation.Manager, 0);
+ _タイトルロゴ.var画像中心位置X = new Variable(animation.Manager, 268);
+ _タイトルロゴ.var画像中心位置Y = new Variable(animation.Manager, -240);
+
+ // 8コマ待機
+ // 不透明度変化 12コマ
+ // X座標移動 20コマ 268 -> 388 (70%/30%)
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 20), 388, 0.1, 0.9))
+ using (var 不透明度 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 12), 255))
+ {
+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像中心位置X, X移動);
+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像不透明度, 不透明度);
+ }
+ _タイトルロゴ._ストーリーボード?.Schedule(start);
+
+ #endregion
+ }
+
+ public void tフェードイン開始WAM()
+ {
+ this.mode = EFIFOモード.フェードイン;
+
+ #region[ Storyboardの構築 ]
+ float f速度倍率 = 1.0f;
+ double dコマ秒 = 0.016;
+ double 秒(double v) => ( v / f速度倍率 );
+ var animation = CDTXMania.AnimationManager;
+ var basetime = animation.Timer.Time;
+ var start = basetime;
+
+ // タイトルロゴ
+ start = basetime + 秒(dコマ秒 * 8);
+ _タイトルロゴ._ストーリーボード = new Storyboard(animation.Manager);
+ _タイトルロゴ.var画像不透明度 = new Variable(animation.Manager, 255);
+ _タイトルロゴ.var画像中心位置X = new Variable(animation.Manager, 390);
+ _タイトルロゴ.var画像中心位置Y = new Variable(animation.Manager, -220);
+
+ // 8コマ待機
+ // 不透明度変化 12コマ
+ // X座標移動 20コマ 268 -> 388 (70%/30%)
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 20), 388, 0.7, 0.3))
+ using (var 不透明度 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 12), 0))
+ {
+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像中心位置X, X移動);
+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像不透明度, 不透明度);
+ }
+ _タイトルロゴ._ストーリーボード?.Schedule(start);
+ #endregion
+ }
+
+ // CActivity 実装
+ public override void On活性化()
+ {
+ this._図形 = new C図形[2];
+ for (int i = 0; i < this._図形.Length; i++)
+ {
+ this._図形[i] = new C図形();
+ }
+ this._タイトルロゴ = new Cタイトルロゴ();
+
+ base.On活性化();
+ }
+
+ public override void On非活性化()
+ {
+ if( !base.b活性化してない )
+ {
+ foreach (C図形 s in this._図形)
+ {
+ s?.Dispose();
+ }
+ this._図形 = null;
+
+ this._タイトルロゴ?.Dispose();
+ this._タイトルロゴ = null;
+
+ base.On非活性化();
+ }
+ }
+ public override void OnManagedリソースの作成()
+ {
+ if( !base.b活性化してない )
+ {
+ // テクスチャ生成
+ // 黒幕、マスクのテクスチャを生成する。
+ // マスク
+ int textureSizeW = SampleFramework.GameWindowSize.Width;
+ int textureSizeH = SampleFramework.GameWindowSize.Height;
+
+ Bitmap bmp = new Bitmap(textureSizeW, textureSizeH);
+ Graphics graphic = Graphics.FromImage(bmp);
+ graphic?.FillRectangle(Brushes.Black, 0, 0, textureSizeW, textureSizeH);
+ graphic?.Dispose();
+
+ this.txマスク = CDTXMania.tテクスチャの生成(bmp);
+ bmp?.Dispose();
+
+ // 黒幕
+ textureSizeW = (int)(SampleFramework.GameWindowSize.Width * 1.5f);
+ textureSizeH = (int)(SampleFramework.GameWindowSize.Height / 2.0f * 1.5f);
+
+ bmp = new Bitmap(textureSizeW, textureSizeH);
+ graphic = Graphics.FromImage(bmp);
+ graphic?.FillRectangle(Brushes.Black, 0, 0, textureSizeW, textureSizeH);
+ graphic?.Dispose();
+
+ this.tx黒幕 = CDTXMania.tテクスチャの生成(bmp);
+ bmp?.Dispose();
+
+ this.txロゴ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO logo.png" ) );
+ base.OnManagedリソースの作成();
+ }
+ }
+ public override int On進行描画()
+ {
+ if( base.b活性化してない || ( this._図形[ 0 ]._ストーリーボード == null ) )
+ {
+ return 0;
+ }
+
+ if( this.tx黒幕 != null )
+ {
+#if DEBUG
+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F3 ) )
+ {
+ ret--;
+ }
+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F4 ) )
+ {
+ ret++;
+ }
+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F5 ) )
+ {
+ ret = ret - 10;
+ }
+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F6 ) )
+ {
+ ret = ret + 10;
+ }
+
+ if( this.b座標デバッグモード )
+ {
+ this.tx黒幕.n透明度 = 128;
+ }
+#endif
+
+ if ( this.mode == EFIFOモード.フェードアウト )
+ {
+ Matrix mat;
+
+ // 黒幕(右)
+ //mat = Matrix.Identity;
+ //mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ //mat *= Matrix.RotationZ((float)this._図形[0].var画像Z軸回転度.Value);
+ //mat *= Matrix.Translation((float)this._図形[1].var画像中心位置X.Value, (float)this._図形[1].var画像中心位置Y.Value, 0);
+ //this.tx黒幕.t3D描画( CDTXMania.app.Device, mat );
+
+ // 黒幕(左)
+ // 上辺中央座標
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ(C変換.DegreeToRadian((float)this._図形[0].var画像Z軸回転度.Value));
+ mat *= Matrix.Translation((float)this._図形[0].var画像中心位置X.Value, (float)this._図形[0].var画像中心位置Y.Value, 0);
+ //mat *= Matrix.RotationZ(C変換.DegreeToRadian(0));
+ //mat *= Matrix.Translation(0, 0, 0);
+ //this.tx黒幕.t3D描画(CDTXMania.app.Device, mat, new Vector3(0, -this.tx黒幕.szテクスチャサイズ.Height / 2f, 0));
+ this.tx黒幕.t3D描画(CDTXMania.app.Device, mat);
+
+ // マスク
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ(0);
+ mat *= Matrix.Translation(0, 0, 0);
+ this.txマスク.n透明度 = 0;
+ //this.txマスク.t3D描画(CDTXMania.app.Device, mat);
+
+ // タイトルロゴ
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.Translation((float)this._タイトルロゴ.var画像中心位置X.Value, (float)this._タイトルロゴ.var画像中心位置Y.Value, 0);
+ this.txロゴ.n透明度 = (int)this._タイトルロゴ.var画像不透明度.Value;
+ this.txロゴ.t3D描画(CDTXMania.app.Device, mat);
+ }
+ else
+ {
+ Matrix mat;
+
+ // タイトルロゴ
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.Translation((float)this._タイトルロゴ.var画像中心位置X.Value, (float)this._タイトルロゴ.var画像中心位置Y.Value, 0);
+ this.txロゴ.n透明度 = (int)this._タイトルロゴ.var画像不透明度.Value;
+ this.txロゴ.t3D描画(CDTXMania.app.Device, mat);
+ }
+#if DEBUG
+ if( this.b座標デバッグモード )
+ CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, $"ret:{ret.ToString()}");
+#endif
+ }
+
+ if ( this._タイトルロゴ._ストーリーボード.Status != StoryboardStatus.Ready )
+ {
+ return 0;
+ }
+
+ return 1;
+ }
+
+
+ // その他
+ #region [ private ]
+ //-----------------
+ private EFIFOモード mode;
+ private CTexture txロゴ;
+ private CTexture tx水色;
+ private CTexture tx青色;
+ private CTexture tx群青;
+
+ private CTexture txマスク;
+ private CTexture tx黒幕;
+#if DEBUG
+ private int ret;
+ private readonly bool b座標デバッグモード = true;
+#endif
+ //-----------------
+ #endregion
+
+ #region[ 図形描画用 ]
+ protected C図形[] _図形 = new C図形[ 2 ];
+ protected Cマスク _マスク;
+ protected Cタイトルロゴ _タイトルロゴ;
+ protected class C図形 : IDisposable
+ {
+ public Variable var表示;
+ public Variable var画像中心位置X;
+ public Variable var画像中心位置Y;
+ public Variable var画像Z軸回転度;
+ public Storyboard _ストーリーボード;
+
+ public void Dispose()
+ {
+ this._ストーリーボード?.Abandon();
+ this._ストーリーボード = null;
+
+ this.var表示?.Dispose();
+ this.var表示 = null;
+
+ this.var画像中心位置X?.Dispose();
+ this.var画像中心位置X = null;
+
+ this.var画像中心位置Y?.Dispose();
+ this.var画像中心位置Y = null;
+
+ this.var画像Z軸回転度?.Dispose();
+ this.var画像Z軸回転度 = null;
+ }
+ }
+
+ protected class Cマスク : IDisposable
+ {
+ public Variable var画像不透明度;
+ public Storyboard _ストーリーボード;
+
+ public void Dispose()
+ {
+ this._ストーリーボード?.Abandon();
+ this._ストーリーボード = null;
+
+ this.var画像不透明度?.Dispose();
+ this.var画像不透明度 = null;
+ }
+ }
+
+ protected class Cタイトルロゴ : IDisposable
+ {
+ public Variable var画像中心位置X;
+ public Variable var画像中心位置Y;
+ public Variable var画像不透明度;
+ public Storyboard _ストーリーボード;
+
+ public void Dispose()
+ {
+ this._ストーリーボード?.Abandon();
+ this._ストーリーボード = null;
+
+ this.var画像中心位置X?.Dispose();
+ this.var画像中心位置X = null;
+
+ this.var画像中心位置Y?.Dispose();
+ this.var画像中心位置Y = null;
+
+ this.var画像不透明度?.Dispose();
+ this.var画像不透明度 = null;
+ }
+ }
+ #endregion
+ }
+}
using FDK;
using SlimDXKey = SlimDX.DirectInput.Key;
+using SharpDX;
namespace DTXMania
{
internal class CActFIFOPuzzle : CActivity
{
// メソッド
-
- public void tフェードアウト開始()
- {
- this.mode = EFIFOモード.フェードアウト;
- this.counter = new CCounter( 0, 100, 5, CDTXMania.Timer );
- }
- public void tフェードイン開始()
- {
- this.mode = EFIFOモード.フェードイン;
- this.counter = new CCounter( 0, 100, 5, CDTXMania.Timer );
- }
- public void tフェードイン完了() // #25406 2011.6.9 yyagi
- {
- this.counter.n現在の値 = this.counter.n終了値;
- }
-
public void tフェードアウト開始WAM()
{
this.mode = EFIFOモード.フェードアウト;
double dコマ秒 = 0.016;
double 秒(double v) => ( v / f速度倍率 );
var animation = CDTXMania.AnimationManager;
+ var basetime = animation.Timer.Time;
+ var start = basetime;
C図形 図形 = this._図形[ 0 ];
+ 図形._ストーリーボード = new Storyboard( animation.Manager );
+ 図形.var画像Z軸回転度 = new Variable( animation.Manager, C変換.DegreeToRadian( -45 ) );
+ 図形.var画像中心位置X = new Variable( animation.Manager, -584 );
+ 図形.var画像中心位置Y = new Variable( animation.Manager, -645 );
+
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -219, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[0]._ストーリーボード?.Schedule( start );
+
+ start += 秒(dコマ秒 * 2);
+ 図形 = this._図形[ 1 ];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, 568);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 662);
+
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 226, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[1]._ストーリーボード?.Schedule(start);
+
+ start += 秒(dコマ秒 * 2);
+ 図形 = this._図形[2];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, -531);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 682);
+
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 270, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[2]._ストーリーボード?.Schedule(start);
+
+ start += 秒(dコマ秒 * 2);
+ 図形 = this._図形[3];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, 500);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, -728);
+
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -286, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[3]._ストーリーボード?.Schedule(start);
+ start += 秒(dコマ秒 * 2);
+ 図形 = this._図形[4];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
+ 図形.var画像中心位置X = new Variable(animation.Manager, -848);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -498, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ this._図形[4]._ストーリーボード?.Schedule(start);
+
+ start += 秒(dコマ秒 * 2);
+ 図形 = this._図形[5];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
+ 図形.var画像中心位置X = new Variable(animation.Manager, 804);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
+
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 544, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ this._図形[5]._ストーリーボード?.Schedule(start);
+
+ start += 秒(dコマ秒 * 2);
+ 図形 = this._図形[6];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, 1004);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, -226);
+
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 364, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ this._図形[6]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 2);
+ 図形 = this._図形[7];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, 568);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 662);
+
+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 10)))
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 230, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 2)))
+ using (var Y移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 2)))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 172, 0.1, 0.9))
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 234, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[7]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 18);
+ 図形 = this._図形[8];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, 0);
+ 図形.var画像中心位置X = new Variable(animation.Manager, 0);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, -534);
+
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 9), -413, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[8]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 20);
+ 図形 = this._図形[9];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, 0);
+ 図形.var画像中心位置X = new Variable(animation.Manager, 0);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 524);
+
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 8), 419, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[9]._ストーリーボード?.Schedule(start);
+
+ start = basetime;
+ 図形 = this._図形[10];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, -584);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, -645);
+
+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 10)))
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -219, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 12)))
+ using (var Y移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 12)))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 8), -398, 0.1, 0.9))
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 8), -115, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[10]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 4);
+ 図形 = this._図形[11];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, -531);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 682);
+
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -531, 0.1, 0.9))
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 270, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 8)))
+ using (var Y移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 8)))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -369, 0.1, 0.9))
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 71, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[11]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 8);
+ 図形 = this._図形[12];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
+ 図形.var画像中心位置X = new Variable(animation.Manager, -848);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
+
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -498, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 5)))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), -197, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ this._図形[12]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 10);
+ 図形 = this._図形[13];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
+ 図形.var画像中心位置X = new Variable(animation.Manager, 804);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
+
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 544, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 3)))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 13), 125, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ this._図形[13]._ストーリーボード?.Schedule(start);
+
+ // タイトルロゴ
+ _タイトルロゴ._ストーリーボード = new Storyboard(animation.Manager);
+ _タイトルロゴ.var画像不透明度 = new Variable(animation.Manager, 0);
+ _タイトルロゴ.var画像中心位置X = new Variable(animation.Manager, 390);
+ _タイトルロゴ.var画像中心位置Y = new Variable(animation.Manager, -220);
+
+ using (var 不透明度 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 38), 255))
+ {
+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像不透明度, 不透明度);
+ }
+ _タイトルロゴ._ストーリーボード?.Schedule(basetime);
#endregion
}
+ public void tフェードイン開始WAM()
+ {
+ this.mode = EFIFOモード.フェードイン;
+
+ #region[ Storyboardの構築 ]
+ float f速度倍率 = 1.0f;
+ double dコマ秒 = 0.016;
+ double 秒(double v) => ( v / f速度倍率 );
+ var animation = CDTXMania.AnimationManager;
+ var basetime = animation.Timer.Time;
+ var start = basetime;
+
+ C図形 図形 = this._図形[13];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
+ 図形.var画像中心位置X = new Variable(animation.Manager, 125);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
+
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 9), 544, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 6)))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), 804, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ this._図形[13]._ストーリーボード?.Schedule(start);
+
+
+ start = basetime + 秒(dコマ秒 * 2);
+ 図形 = this._図形[12];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
+ 図形.var画像中心位置X = new Variable(animation.Manager, -197);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
+
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), -498, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 5)))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), -848, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ this._図形[12]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 4);
+ 図形 = this._図形[11];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, -369);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 71);
+
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -531, 0.9, 0.1))
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 270, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 7)))
+ using (var Y移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 7)))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), -531, 0.9, 0.1))
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), 720, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[11]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 6);
+ 図形 = this._図形[10];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, -398);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, -115);
+
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 8), -584, 0.9, 0.1))
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 8), -219, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 14)))
+ using (var Y移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 14)))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 10)))
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -645, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[10]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 8);
+ 図形 = this._図形[9];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, 0);
+ 図形.var画像中心位置X = new Variable(animation.Manager, 0);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 419);
+
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 8), 524, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[9]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 10);
+ 図形 = this._図形[8];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, 0);
+ 図形.var画像中心位置X = new Variable(animation.Manager, 0);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, -413);
+
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 9), -534, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[8]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 12);
+ 図形 = this._図形[7];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, 172);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 234);
+
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), 568, 0.9, 0.1))
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), 230, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 2)))
+ using (var Y移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 2)))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ using (var X移動 = animation.TrasitionLibrary.Constant(秒(dコマ秒 * 11)))
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), 662, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[7]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 14);
+ 図形 = this._図形[6];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, 364);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, -226);
+
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 1004, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ this._図形[6]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 16);
+ 図形 = this._図形[5];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
+ 図形.var画像中心位置X = new Variable(animation.Manager, 544);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
+
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), 804, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ this._図形[5]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 18);
+ 図形 = this._図形[4];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(90));
+ 図形.var画像中心位置X = new Variable(animation.Manager, -498);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 0);
+
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), -848, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動);
+ }
+ this._図形[4]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 20);
+ 図形 = this._図形[3];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, 500);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, -286);
+
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 11), -728, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[3]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 22);
+ 図形 = this._図形[2];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, -531);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 270);
+
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 720, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[2]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 24);
+ 図形 = this._図形[1];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, 568);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 226);
+
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 662, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[1]._ストーリーボード?.Schedule(start);
+
+ start = basetime + 秒(dコマ秒 * 26);
+ 図形 = this._図形[ 0 ];
+ 図形._ストーリーボード = new Storyboard( animation.Manager );
+ 図形.var画像Z軸回転度 = new Variable( animation.Manager, C変換.DegreeToRadian( -45 ) );
+ 図形.var画像中心位置X = new Variable( animation.Manager, -584 );
+ 図形.var画像中心位置Y = new Variable( animation.Manager, -219 );
+
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), -645, 0.9, 0.1))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[0]._ストーリーボード?.Schedule( start );
+
+
+ // タイトルロゴ
+ _タイトルロゴ._ストーリーボード = new Storyboard(animation.Manager);
+ _タイトルロゴ.var画像不透明度 = new Variable(animation.Manager, 255);
+ _タイトルロゴ.var画像中心位置X = new Variable(animation.Manager, 390);
+ _タイトルロゴ.var画像中心位置Y = new Variable(animation.Manager, -220);
+
+ using (var 不透明度 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 38), 0))
+ {
+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像不透明度, 不透明度);
+ }
+ _タイトルロゴ._ストーリーボード?.Schedule(basetime);
+ #endregion
+ }
+
// CActivity 実装
+ public override void On活性化()
+ {
+ this._図形 = new C図形[14];
+ for (int i = 0; i < this._図形.Length; i++)
+ {
+ this._図形[i] = new C図形();
+ }
+ this._タイトルロゴ = new Cタイトルロゴ();
+
+ base.On活性化();
+ }
public override void On非活性化()
{
if( !base.b活性化してない )
{
- CDTXMania.tテクスチャの解放( ref this.tx白タイル64x64 );
-
CDTXMania.tテクスチャの解放( ref this.tx水色 );
CDTXMania.tテクスチャの解放( ref this.tx黒 );
CDTXMania.tテクスチャの解放( ref this.tx青色 );
CDTXMania.tテクスチャの解放( ref this.tx群青 );
+
+ CDTXMania.tテクスチャの解放( ref this.txロゴ );
+
+ foreach (C図形 s in this._図形)
+ {
+ s?.Dispose();
+ }
+ this._図形 = null;
+
+ this._タイトルロゴ?.Dispose();
+ this._タイトルロゴ = null;
+
base.On非活性化();
}
}
{
if( !base.b活性化してない )
{
- this.tx白タイル64x64 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\Tile white 64x64.png" ), false );
-
this.tx水色 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO Tile lightblue.png" ) );
this.tx黒 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO Tile black.png" ) );
this.tx青色 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO Tile blue.png" ) );
this.tx群青 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO Tile darkblue.png" ) );
+
+ this.txロゴ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO logo.png" ) );
base.OnManagedリソースの作成();
}
}
public override int On進行描画()
{
- if( base.b活性化してない || ( this.counter == null ) )
+ if( base.b活性化してない || ( this._図形[ 0 ]._ストーリーボード == null ) )
{
return 0;
}
- //this.counter.t進行();
-
- if (this.tx白タイル64x64 != null)
- {
- this.tx白タイル64x64.n透明度 = ( this.mode == EFIFOモード.フェードイン ) ? ( ( ( 100 - this.counter.n現在の値 ) * 0xff ) / 100 ) : ( ( this.counter.n現在の値 * 0xff ) / 100 );
- for (int i = 0; i <= (SampleFramework.GameWindowSize.Width / 64); i++) // #23510 2010.10.31 yyagi: change "clientSize.Width" to "640" to fix FIFO drawing size
- {
- for (int j = 0; j <= (SampleFramework.GameWindowSize.Height / 64); j++) // #23510 2010.10.31 yyagi: change "clientSize.Height" to "480" to fix FIFO drawing size
- {
- //this.tx白タイル64x64.t2D描画( CDTXMania.app.Device, i * 64, j * 64 );
- }
- }
- }
-
-
- if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F3 ) )
- {
- this.counter.n現在の値--;
- }
- if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F4 ) )
- {
- this.counter.n現在の値++;
- }
- if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F5 ) )
- {
- this.counter.n現在の値 = 0;
- }
- if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F6 ) )
- {
- this.counter.n現在の値 = 50;
- }
if( this.tx水色 != null && this.tx群青 != null && this.tx青色 != null && this.tx黒 != null )
{
- //横方向(90):304、斜め方向(45 or -45):427
- if( this.mode == EFIFOモード.フェードアウト )
+#if DEBUG
+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F3 ) )
+ {
+ ret--;
+ }
+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F4 ) )
+ {
+ ret++;
+ }
+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F5 ) )
+ {
+ ret = ret - 10;
+ }
+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F6 ) )
+ {
+ ret = ret + 10;
+ }
+
+ if( this.b座標デバッグモード )
{
- //14 群青(右)
- this.tx群青.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
- this.tx群青.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 88 ? ( 703 - ( ( ( this.counter.n現在の値 - 68 ) * 302 ) / 20 ) ) : 401, 206 ); //最終:401
-
- //13 青(左)
- this.tx青色.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
- this.tx青色.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 86 ? ( -223 + ( ( ( this.counter.n現在の値 - 66 ) * 302 ) / 20 ) ) : 79, 206 ); //最終:79
-
- //12 水色(左上)
- this.tx水色.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
- this.tx水色.t2D描画( CDTXMania.app.Device, 0, this.counter.n現在の値 <= 84 ? ( -256 + ( ( ( this.counter.n現在の値 - 64 ) * 304 ) / 20 ) ) : 48 ); //最終:48
-
- //11 黒(左下)
- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
- this.tx黒.t2D描画( CDTXMania.app.Device, -10, this.counter.n現在の値 <= 80 ? ( 726 - ( ( ( this.counter.n現在の値 - 60 ) * 304 ) / 20 ) ) : 422 ); //最終:422
-
- //10 青(上)
- this.tx青色.fZ軸中心回転 = C変換.DegreeToRadian( 0 );
- this.tx青色.t2D描画( CDTXMania.app.Device, 0, this.counter.n現在の値 <= 69 ? ( -528 + ( ( ( this.counter.n現在の値 - 49 ) * 304 ) / 20 ) ) : -224 ); //最終:-224
-
- //9 黒(下)
- this.tx黒.fZ軸中心回転 = 0;
- this.tx黒.t2D描画( CDTXMania.app.Device, 300, this.counter.n現在の値 <= 68 ? ( 913 - ( ( ( this.counter.n現在の値 - 48 ) * 304 ) / 20 ) ) : 609 ); //最終:609
-
- //8 黒(右上)
- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
- this.tx黒.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 66 ? ( 892 - ( ( ( this.counter.n現在の値 - 46 ) * 427 ) / 20 ) ) : 465, -23 ); //最終:465
-
- //7 水色(右下)
- this.tx水色.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
- this.tx水色.t2D描画( CDTXMania.app.Device, 646, this.counter.n現在の値 <= 61 ? ( 843 - ( ( ( this.counter.n現在の値 - 41 ) * 427 ) / 20 ) ) : 416 ); //最終:416
-
- //6 黒(右)
- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
- this.tx黒.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 55 ? ( 1124 - ( ( ( this.counter.n現在の値 - 35 ) * 304 ) / 20 ) ) : 820, 206 ); //1079 最終:820
-
- //5 群青(左)
- this.tx群青.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
- this.tx群青.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 48 ? ( -527 + ( ( ( this.counter.n現在の値 - 28 ) * 304 ) / 20 ) ) : -223, 196 ); //-527 最終:-223
-
- //4 青(右下)
- this.tx青色.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
- this.tx青色.t2D描画( CDTXMania.app.Device, 836, this.counter.n現在の値 <= 41 ? ( 866 - ( ( ( this.counter.n現在の値 - 21 ) * 427 ) / 20 ) ) : 422 ); //最終座標:422
-
- //3 黒(左上)
- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
- this.tx黒.t2D描画( CDTXMania.app.Device, -309, this.counter.n現在の値 <= 34 ? ( -457 + ( ( ( this.counter.n現在の値 - 14 ) * 427 ) / 20 ) ) : -23 ); //最終座標:-23
-
- //2 群青(右上)
- this.tx群青.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
- this.tx群青.t2D描画( CDTXMania.app.Device, 854, this.counter.n現在の値 <= 27 ? ( -457 + ( ( (this.counter.n現在の値 - 7 ) * 427 ) / 20 ) ) : -24 ); //-457 最終座標:-24
-
- //1 水色(左下)
- this.tx水色.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
- this.tx水色.t2D描画( CDTXMania.app.Device, -306, this.counter.n現在の値 <= 20 ? ( 843 - ( ( this.counter.n現在の値 * 427 ) / 20 ) ) : 416 ); //427 最終座標:416
+ this.tx水色.n透明度 = 128;
+ this.tx群青.n透明度 = 128;
+ this.tx青色.n透明度 = 128;
+ this.tx黒.n透明度 = 128;
+ }
+#endif
+
+ if ( this.mode == EFIFOモード.フェードアウト )
+ {
+ Matrix mat;
+
+ // 14 群青(右)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
+ mat *= Matrix.Translation((float)this._図形[13].var画像中心位置X.Value, (float)this._図形[13].var画像中心位置Y.Value, 0);
+ this.tx群青.t3D描画(CDTXMania.app.Device, mat);
+
+ // 13 青(左)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
+ mat *= Matrix.Translation((float)this._図形[12].var画像中心位置X.Value, (float)this._図形[12].var画像中心位置Y.Value, 0);
+ this.tx青色.t3D描画(CDTXMania.app.Device, mat);
+
+ // 12 水色(左上)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
+ mat *= Matrix.Translation((float)this._図形[11].var画像中心位置X.Value, (float)this._図形[11].var画像中心位置Y.Value, 0);
+ this.tx水色.t3D描画( CDTXMania.app.Device, mat);
+
+ // 11 黒(左下)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
+ mat *= Matrix.Translation((float)this._図形[10].var画像中心位置X.Value, (float)this._図形[10].var画像中心位置Y.Value, 0);
+ this.tx黒.t3D描画( CDTXMania.app.Device, mat);
+
+ // 10 青(上)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.Translation((float)this._図形[9].var画像中心位置X.Value, (float)this._図形[9].var画像中心位置Y.Value, 0);
+ this.tx青色.t3D描画( CDTXMania.app.Device, mat);
+
+ // 9 黒(下)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.Translation((float)this._図形[8].var画像中心位置X.Value, (float)this._図形[8].var画像中心位置Y.Value, 0);
+ this.tx黒.t3D描画( CDTXMania.app.Device, mat );
+
+ // 8 黒(右上)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
+ mat *= Matrix.Translation((float)this._図形[7].var画像中心位置X.Value, (float)this._図形[7].var画像中心位置Y.Value, 0);
+ this.tx黒.t3D描画( CDTXMania.app.Device, mat );
+
+ // 7 水色(右下)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
+ mat *= Matrix.Translation((float)this._図形[6].var画像中心位置X.Value, (float)this._図形[6].var画像中心位置Y.Value, 0);
+ this.tx水色.t3D描画( CDTXMania.app.Device, mat );
+
+ // 6 黒(右)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
+ mat *= Matrix.Translation((float)this._図形[5].var画像中心位置X.Value, (float)this._図形[5].var画像中心位置Y.Value, 0);
+ this.tx黒.t3D描画( CDTXMania.app.Device, mat );
+
+ // 5 群青(左)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
+ mat *= Matrix.Translation((float)this._図形[4].var画像中心位置X.Value, (float)this._図形[4].var画像中心位置Y.Value, 0);
+ this.tx群青.t3D描画( CDTXMania.app.Device, mat );
+
+ // 4 青(右下)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
+ mat *= Matrix.Translation((float)this._図形[3].var画像中心位置X.Value, (float)this._図形[3].var画像中心位置Y.Value, 0);
+ this.tx青色.t3D描画( CDTXMania.app.Device, mat );
+
+ // 3 黒(左上)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
+ mat *= Matrix.Translation((float)this._図形[2].var画像中心位置X.Value, (float)this._図形[2].var画像中心位置Y.Value, 0);
+ this.tx黒.t3D描画( CDTXMania.app.Device, mat );
+
+ // 2 群青(右上)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
+ mat *= Matrix.Translation((float)this._図形[1].var画像中心位置X.Value, (float)this._図形[1].var画像中心位置Y.Value, 0);
+ this.tx群青.t3D描画( CDTXMania.app.Device, mat );
+
+ // 1 水色(左下)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
+ mat *= Matrix.Translation((float)this._図形[0].var画像中心位置X.Value, (float)this._図形[0].var画像中心位置Y.Value, 0);
+ this.tx水色.t3D描画( CDTXMania.app.Device, mat );
+
+ // タイトルロゴ
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.Translation((float)this._タイトルロゴ.var画像中心位置X.Value, (float)this._タイトルロゴ.var画像中心位置Y.Value, 0);
+ this.txロゴ.n透明度 = (int)this._タイトルロゴ.var画像不透明度.Value;
+ this.txロゴ.t3D描画(CDTXMania.app.Device, mat);
}
else
{
- //14 群青(右)
- this.tx群青.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
- this.tx群青.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 88 ? ( 703 - ( ( ( this.counter.n現在の値 - 68 ) * 302 ) / 20 ) ) : 401, 206 ); //最終:401
-
- //13 青(左)
- this.tx青色.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
- this.tx青色.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 86 ? ( -223 + ( ( ( this.counter.n現在の値 - 66 ) * 302 ) / 20 ) ) : 79, 206 ); //最終:79
-
- //12 水色(左上)
- this.tx水色.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
- this.tx水色.t2D描画( CDTXMania.app.Device, 0, this.counter.n現在の値 <= 84 ? ( -256 + ( ( ( this.counter.n現在の値 - 64 ) * 304 ) / 20 ) ) : 48 ); //最終:48
-
- //11 黒(左下)
- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
- this.tx黒.t2D描画( CDTXMania.app.Device, -10, this.counter.n現在の値 <= 80 ? ( 726 - ( ( ( this.counter.n現在の値 - 60 ) * 304 ) / 20 ) ) : 422 ); //最終:422
-
- //10 青(上)
- this.tx青色.fZ軸中心回転 = C変換.DegreeToRadian( 0 );
- this.tx青色.t2D描画( CDTXMania.app.Device, 0, this.counter.n現在の値 <= 69 ? ( -528 + ( ( ( this.counter.n現在の値 - 49 ) * 304 ) / 20 ) ) : -224 ); //最終:-224
-
- //9 黒(下)
- this.tx黒.fZ軸中心回転 = 0;
- this.tx黒.t2D描画( CDTXMania.app.Device, 300, this.counter.n現在の値 <= 68 ? ( 913 - ( ( ( this.counter.n現在の値 - 48 ) * 304 ) / 20 ) ) : 609 ); //最終:609
-
- //8 黒(右上)
- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
- this.tx黒.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 66 ? ( 892 - ( ( ( this.counter.n現在の値 - 46 ) * 427 ) / 20 ) ) : 465, -23 ); //最終:465
-
- //7 水色(右下)
- this.tx水色.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
- this.tx水色.t2D描画( CDTXMania.app.Device, 646, this.counter.n現在の値 <= 61 ? ( 843 - ( ( ( this.counter.n現在の値 - 41 ) * 427 ) / 20 ) ) : 416 ); //最終:416
-
- //6 黒(右)
- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
- this.tx黒.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 55 ? ( 1124 - ( ( ( this.counter.n現在の値 - 35 ) * 304 ) / 20 ) ) : 820, 206 ); //1079 最終:820
-
- //5 群青(左)
- this.tx群青.fZ軸中心回転 = C変換.DegreeToRadian( 90 );
- this.tx群青.t2D描画( CDTXMania.app.Device, this.counter.n現在の値 <= 48 ? ( -527 + ( ( ( this.counter.n現在の値 - 28 ) * 304 ) / 20 ) ) : -223, 196 ); //-527 最終:-223
-
- //4 青(右下)
- this.tx青色.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
- this.tx青色.t2D描画( CDTXMania.app.Device, 836, this.counter.n現在の値 <= 41 ? ( 866 - ( ( ( this.counter.n現在の値 - 21 ) * 427 ) / 20 ) ) : 422 ); //最終座標:422
-
- //3 黒(左上)
- this.tx黒.fZ軸中心回転 = C変換.DegreeToRadian( 45 );
- this.tx黒.t2D描画( CDTXMania.app.Device, -309, this.counter.n現在の値 <= 34 ? ( -457 + ( ( ( this.counter.n現在の値 - 14 ) * 427 ) / 20 ) ) : -23 ); //最終座標:-23
-
- //2 群青(右上)
- this.tx群青.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
- this.tx群青.t2D描画( CDTXMania.app.Device, 854, this.counter.n現在の値 <= 27 ? ( -457 + ( ( (this.counter.n現在の値 - 7 ) * 427 ) / 20 ) ) : -24 ); //-457 最終座標:-24
-
- //1 水色(左下)
- this.tx水色.fZ軸中心回転 = C変換.DegreeToRadian( -45 );
- this.tx水色.t2D描画( CDTXMania.app.Device, -306, this.counter.n現在の値 <= 20 ? ( 843 - ( ( this.counter.n現在の値 * 427 ) / 20 ) ) : 416 ); //427 最終座標:416
+ Matrix mat;
+
+ // 14 群青(右)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
+ mat *= Matrix.Translation((float)this._図形[13].var画像中心位置X.Value, (float)this._図形[13].var画像中心位置Y.Value, 0);
+ this.tx群青.t3D描画(CDTXMania.app.Device, mat);
+
+ // 13 青(左)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
+ mat *= Matrix.Translation((float)this._図形[12].var画像中心位置X.Value, (float)this._図形[12].var画像中心位置Y.Value, 0);
+ this.tx青色.t3D描画(CDTXMania.app.Device, mat);
+
+ // 12 水色(左上)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
+ mat *= Matrix.Translation((float)this._図形[11].var画像中心位置X.Value, (float)this._図形[11].var画像中心位置Y.Value, 0);
+ this.tx水色.t3D描画(CDTXMania.app.Device, mat);
+
+ // 11 黒(左下)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
+ mat *= Matrix.Translation((float)this._図形[10].var画像中心位置X.Value, (float)this._図形[10].var画像中心位置Y.Value, 0);
+ this.tx黒.t3D描画(CDTXMania.app.Device, mat);
+
+ // 10 青(上)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.Translation((float)this._図形[9].var画像中心位置X.Value, (float)this._図形[9].var画像中心位置Y.Value, 0);
+ this.tx青色.t3D描画(CDTXMania.app.Device, mat);
+
+ // 9 黒(下)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.Translation((float)this._図形[8].var画像中心位置X.Value, (float)this._図形[8].var画像中心位置Y.Value, 0);
+ this.tx黒.t3D描画(CDTXMania.app.Device, mat);
+
+ // 8 黒(右上)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
+ mat *= Matrix.Translation((float)this._図形[7].var画像中心位置X.Value, (float)this._図形[7].var画像中心位置Y.Value, 0);
+ this.tx黒.t3D描画(CDTXMania.app.Device, mat);
+
+ // 7 水色(右下)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
+ mat *= Matrix.Translation((float)this._図形[6].var画像中心位置X.Value, (float)this._図形[6].var画像中心位置Y.Value, 0);
+ this.tx水色.t3D描画(CDTXMania.app.Device, mat);
+
+ // 6 黒(右)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
+ mat *= Matrix.Translation((float)this._図形[5].var画像中心位置X.Value, (float)this._図形[5].var画像中心位置Y.Value, 0);
+ this.tx黒.t3D描画(CDTXMania.app.Device, mat);
+
+ // 5 群青(左)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(90));
+ mat *= Matrix.Translation((float)this._図形[4].var画像中心位置X.Value, (float)this._図形[4].var画像中心位置Y.Value, 0);
+ this.tx群青.t3D描画(CDTXMania.app.Device, mat);
+
+ // 4 青(右下)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
+ mat *= Matrix.Translation((float)this._図形[3].var画像中心位置X.Value, (float)this._図形[3].var画像中心位置Y.Value, 0);
+ this.tx青色.t3D描画(CDTXMania.app.Device, mat);
+
+ // 3 黒(左上)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(45));
+ mat *= Matrix.Translation((float)this._図形[2].var画像中心位置X.Value, (float)this._図形[2].var画像中心位置Y.Value, 0);
+ this.tx黒.t3D描画(CDTXMania.app.Device, mat);
+
+ // 2 群青(右上)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
+ mat *= Matrix.Translation((float)this._図形[1].var画像中心位置X.Value, (float)this._図形[1].var画像中心位置Y.Value, 0);
+ this.tx群青.t3D描画(CDTXMania.app.Device, mat);
+
+ // 1 水色(左下)
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ((float)C変換.DegreeToRadian(-45));
+ mat *= Matrix.Translation((float)this._図形[0].var画像中心位置X.Value, (float)this._図形[0].var画像中心位置Y.Value, 0);
+ this.tx水色.t3D描画(CDTXMania.app.Device, mat);
+
+ // タイトルロゴ
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.Translation((float)this._タイトルロゴ.var画像中心位置X.Value, (float)this._タイトルロゴ.var画像中心位置Y.Value, 0);
+ this.txロゴ.n透明度 = (int)this._タイトルロゴ.var画像不透明度.Value;
+ this.txロゴ.t3D描画(CDTXMania.app.Device, mat);
}
-
+#if DEBUG
+ if( this.b座標デバッグモード )
+ CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, $"ret:{ret.ToString()}");
+#endif
}
- this.counter.t進行();
- CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, this.counter.n現在の値.ToString() );
+ if ( this._タイトルロゴ._ストーリーボード.Status != StoryboardStatus.Ready )
+ {
+ return 0;
+ }
- if ( this.counter.n現在の値 != 100 )
- {
- return 0;
- }
return 1;
}
// その他
-
#region [ private ]
//-----------------
- private CCounter counter;
private EFIFOモード mode;
- private CTexture tx白タイル64x64;
private CTexture txロゴ;
+ private CTexture tx水色;
+ private CTexture tx青色;
+ private CTexture tx群青;
+ private CTexture tx黒;
+#if DEBUG
+ private int ret;
+ private readonly bool b座標デバッグモード = false;
+#endif
//-----------------
#endregion
#region[ 図形描画用 ]
- CTexture tx水色;
- CTexture tx青色;
- CTexture tx群青;
- CTexture tx黒;
-
protected C図形[] _図形 = new C図形[ 14 ];
-
+ protected Cタイトルロゴ _タイトルロゴ;
protected class C図形 : IDisposable
{
+ public Variable var表示;
public Variable var画像中心位置X;
public Variable var画像中心位置Y;
public Variable var画像Z軸回転度;
this._ストーリーボード?.Abandon();
this._ストーリーボード = null;
+ this.var表示?.Dispose();
+ this.var表示 = null;
+
this.var画像中心位置X?.Dispose();
this.var画像中心位置X = null;
--- /dev/null
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Text;
+using System.Drawing;
+using SharpDX.Animation;
+using FDK;
+
+using SlimDXKey = SlimDX.DirectInput.Key;
+using SharpDX;
+
+namespace DTXMania
+{
+ // 未完成
+ // - 黒幕
+ // 長辺:1280px 短辺(一番短い時):70~72px
+ // - 短辺は最大で360px
+ //
+ // - 背景画像
+ // 黒幕が画面を覆い尽くしたタイミングで出現or消滅する制御があるのでStoryBoardが要る
+
+ internal class CActFIFOSpin : CActivity
+ {
+ // メソッド
+ public void tフェードアウト開始WAM()
+ {
+ this.mode = EFIFOモード.フェードアウト;
+
+ #region[ Storyboardの構築 ]
+ float f速度倍率 = 0.3f;
+ double dコマ秒 = 0.016;
+ double 秒(double v) => ( v / f速度倍率 );
+ var animation = CDTXMania.AnimationManager;
+ var basetime = animation.Timer.Time;
+ var start = basetime;
+
+ C図形 図形 = this._図形[ 0 ];
+ 図形._ストーリーボード = new Storyboard( animation.Manager );
+ 図形.var画像Z軸回転度 = new Variable( animation.Manager, -135 );
+ 図形.var画像中心位置X = new Variable( animation.Manager, -1280 );
+ 図形.var画像中心位置Y = new Variable( animation.Manager, -180);
+
+ // 初期50度 -> 180度
+
+ using (var Z回転 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 20), 0))
+ using (var X移動1 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 20), 0))
+ //using (var X移動2 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 16), 0))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像Z軸回転度, Z回転);
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動1);
+ //図形._ストーリーボード.AddTransition(図形.var画像中心位置X, X移動2);
+ }
+ this._図形[0]._ストーリーボード?.Schedule( start );
+
+ start += 秒(dコマ秒 * 2);
+ 図形 = this._図形[ 1 ];
+ 図形._ストーリーボード = new Storyboard(animation.Manager);
+ 図形.var画像Z軸回転度 = new Variable(animation.Manager, C変換.DegreeToRadian(-45));
+ 図形.var画像中心位置X = new Variable(animation.Manager, 568);
+ 図形.var画像中心位置Y = new Variable(animation.Manager, 662);
+
+ using (var Y移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 10), 226, 0.1, 0.9))
+ {
+ 図形._ストーリーボード.AddTransition(図形.var画像中心位置Y, Y移動);
+ }
+ this._図形[1]._ストーリーボード?.Schedule(start);
+
+
+ // タイトルロゴ
+ start = basetime + 秒(dコマ秒 * 8);
+ _タイトルロゴ._ストーリーボード = new Storyboard(animation.Manager);
+ _タイトルロゴ.var画像不透明度 = new Variable(animation.Manager, 0);
+ _タイトルロゴ.var画像中心位置X = new Variable(animation.Manager, 268);
+ _タイトルロゴ.var画像中心位置Y = new Variable(animation.Manager, -240);
+
+ // 8コマ待機
+ // 不透明度変化 12コマ
+ // X座標移動 20コマ 268 -> 388 (70%/30%)
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 20), 388, 0.1, 0.9))
+ using (var 不透明度 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 12), 255))
+ {
+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像中心位置X, X移動);
+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像不透明度, 不透明度);
+ }
+ _タイトルロゴ._ストーリーボード?.Schedule(start);
+
+ #endregion
+ }
+
+ public void tフェードイン開始WAM()
+ {
+ this.mode = EFIFOモード.フェードイン;
+
+ #region[ Storyboardの構築 ]
+ float f速度倍率 = 1.0f;
+ double dコマ秒 = 0.016;
+ double 秒(double v) => ( v / f速度倍率 );
+ var animation = CDTXMania.AnimationManager;
+ var basetime = animation.Timer.Time;
+ var start = basetime;
+
+ // タイトルロゴ
+ start = basetime + 秒(dコマ秒 * 8);
+ _タイトルロゴ._ストーリーボード = new Storyboard(animation.Manager);
+ _タイトルロゴ.var画像不透明度 = new Variable(animation.Manager, 255);
+ _タイトルロゴ.var画像中心位置X = new Variable(animation.Manager, 390);
+ _タイトルロゴ.var画像中心位置Y = new Variable(animation.Manager, -220);
+
+ // 8コマ待機
+ // 不透明度変化 12コマ
+ // X座標移動 20コマ 268 -> 388 (70%/30%)
+ using (var X移動 = animation.TrasitionLibrary.AccelerateDecelerate(秒(dコマ秒 * 20), 388, 0.7, 0.3))
+ using (var 不透明度 = animation.TrasitionLibrary.Linear(秒(dコマ秒 * 12), 0))
+ {
+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像中心位置X, X移動);
+ _タイトルロゴ._ストーリーボード.AddTransition(_タイトルロゴ.var画像不透明度, 不透明度);
+ }
+ _タイトルロゴ._ストーリーボード?.Schedule(start);
+ #endregion
+ }
+
+ // CActivity 実装
+ public override void On活性化()
+ {
+ this._図形 = new C図形[2];
+ for (int i = 0; i < this._図形.Length; i++)
+ {
+ this._図形[i] = new C図形();
+ }
+ this._タイトルロゴ = new Cタイトルロゴ();
+
+ base.On活性化();
+ }
+
+ public override void On非活性化()
+ {
+ if( !base.b活性化してない )
+ {
+ foreach (C図形 s in this._図形)
+ {
+ s?.Dispose();
+ }
+ this._図形 = null;
+
+ this._タイトルロゴ?.Dispose();
+ this._タイトルロゴ = null;
+
+ base.On非活性化();
+ }
+ }
+ public override void OnManagedリソースの作成()
+ {
+ if( !base.b活性化してない )
+ {
+ // テクスチャ生成
+ // 黒幕、マスクのテクスチャを生成する。
+ int textureSizeW = SampleFramework.GameWindowSize.Width;
+ int textureSizeH = 70;
+
+ // 黒幕
+ Bitmap bmp = new Bitmap(textureSizeW, textureSizeH);
+ Graphics graphic = Graphics.FromImage(bmp);
+ graphic?.FillRectangle(Brushes.Black, 0, 0, textureSizeW, textureSizeH);
+ graphic?.Dispose();
+
+ this.tx黒幕 = CDTXMania.tテクスチャの生成(bmp);
+ bmp?.Dispose();
+
+ this.tx背景画像 = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO bg.png" ) );
+
+ this.txロゴ = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\FIFO logo.png" ) );
+ base.OnManagedリソースの作成();
+ }
+ }
+ public override int On進行描画()
+ {
+ if( base.b活性化してない || ( this._図形[ 0 ]._ストーリーボード == null ) )
+ {
+ return 0;
+ }
+
+ if( this.tx黒幕 != null )
+ {
+#if DEBUG
+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F3 ) )
+ {
+ ret--;
+ }
+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F4 ) )
+ {
+ ret++;
+ }
+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F5 ) )
+ {
+ ret = ret - 10;
+ }
+ if( CDTXMania.Input管理.Keyboard.bキーが押された( (int) SlimDXKey.F6 ) )
+ {
+ ret = ret + 10;
+ }
+
+ if( this.b座標デバッグモード )
+ {
+ this.tx黒幕.n透明度 = 128;
+ }
+#endif
+
+ if ( this.mode == EFIFOモード.フェードアウト )
+ {
+ Matrix mat;
+
+ // 黒幕(右)
+ //mat = Matrix.Identity;
+ //mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ //mat *= Matrix.RotationZ((float)this._図形[0].var画像Z軸回転度.Value);
+ //mat *= Matrix.Translation((float)this._図形[1].var画像中心位置X.Value, (float)this._図形[1].var画像中心位置Y.Value, 0);
+ //this.tx黒幕.t3D描画( CDTXMania.app.Device, mat );
+
+ // 黒幕(左)
+ // 上辺中央座標
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.RotationZ(C変換.DegreeToRadian((float)this._図形[0].var画像Z軸回転度.Value));
+ mat *= Matrix.Translation((float)this._図形[0].var画像中心位置X.Value, (float)this._図形[0].var画像中心位置Y.Value, 0);
+ //mat *= Matrix.RotationZ(C変換.DegreeToRadian(0));
+ //mat *= Matrix.Translation(0, 0, 0);
+ //this.tx黒幕.t3D描画(CDTXMania.app.Device, mat, new Vector3(0, -this.tx黒幕.szテクスチャサイズ.Height / 2f, 0));
+ this.tx黒幕.t3D描画(CDTXMania.app.Device, mat);
+
+ //mat = Matrix.Identity;
+ //mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ //mat *= Matrix.RotationZ(C変換.DegreeToRadian(50));
+ //mat *= Matrix.Translation(ret, (float)this._図形[0].var画像中心位置Y.Value, 0);
+ //this.tx黒幕.t3D描画( CDTXMania.app.Device, mat );
+
+ // タイトルロゴ
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.Translation((float)this._タイトルロゴ.var画像中心位置X.Value, (float)this._タイトルロゴ.var画像中心位置Y.Value, 0);
+ this.txロゴ.n透明度 = (int)this._タイトルロゴ.var画像不透明度.Value;
+ this.txロゴ.t3D描画(CDTXMania.app.Device, mat);
+ }
+ else
+ {
+ Matrix mat;
+
+ // タイトルロゴ
+ mat = Matrix.Identity;
+ mat *= Matrix.Scaling(1.0f, 1.0f, 1.0f);
+ mat *= Matrix.Translation((float)this._タイトルロゴ.var画像中心位置X.Value, (float)this._タイトルロゴ.var画像中心位置Y.Value, 0);
+ this.txロゴ.n透明度 = (int)this._タイトルロゴ.var画像不透明度.Value;
+ this.txロゴ.t3D描画(CDTXMania.app.Device, mat);
+ }
+#if DEBUG
+ if( this.b座標デバッグモード )
+ CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, $"ret:{ret.ToString()}");
+#endif
+ }
+
+ if ( this._タイトルロゴ._ストーリーボード.Status != StoryboardStatus.Ready )
+ {
+ return 0;
+ }
+
+ return 1;
+ }
+
+
+ // その他
+ #region [ private ]
+ //-----------------
+ private EFIFOモード mode;
+ private CTexture txロゴ;
+ private CTexture tx背景画像;
+ private CTexture tx黒幕;
+#if DEBUG
+ private int ret;
+ private readonly bool b座標デバッグモード = true;
+#endif
+ //-----------------
+ #endregion
+
+ #region[ 図形描画用 ]
+ protected C図形[] _図形 = new C図形[ 2 ];
+ protected C背景 _背景;
+ protected Cタイトルロゴ _タイトルロゴ;
+ protected class C図形 : IDisposable
+ {
+ public Variable var表示;
+ public Variable var画像中心位置X;
+ public Variable var画像中心位置Y;
+ public Variable var画像Z軸回転度;
+ public Variable var画像X拡大率;
+ public Storyboard _ストーリーボード;
+
+ public void Dispose()
+ {
+ this._ストーリーボード?.Abandon();
+ this._ストーリーボード = null;
+
+ this.var表示?.Dispose();
+ this.var表示 = null;
+
+ this.var画像中心位置X?.Dispose();
+ this.var画像中心位置X = null;
+
+ this.var画像中心位置Y?.Dispose();
+ this.var画像中心位置Y = null;
+
+ this.var画像Z軸回転度?.Dispose();
+ this.var画像Z軸回転度 = null;
+
+ this.var画像X拡大率?.Dispose();
+ this.var画像X拡大率 = null;
+ }
+ }
+
+ protected class C背景 : IDisposable
+ {
+ public Variable var画像拡大率;
+ public Storyboard _ストーリーボード;
+
+ public void Dispose()
+ {
+ this._ストーリーボード?.Abandon();
+ this._ストーリーボード = null;
+
+ this.var画像拡大率?.Dispose();
+ this.var画像拡大率 = null;
+ }
+ }
+
+ protected class Cタイトルロゴ : IDisposable
+ {
+ public Variable var画像中心位置X;
+ public Variable var画像中心位置Y;
+ public Variable var画像不透明度;
+ public Storyboard _ストーリーボード;
+
+ public void Dispose()
+ {
+ this._ストーリーボード?.Abandon();
+ this._ストーリーボード = null;
+
+ this.var画像中心位置X?.Dispose();
+ this.var画像中心位置X = null;
+
+ this.var画像中心位置Y?.Dispose();
+ this.var画像中心位置Y = null;
+
+ this.var画像不透明度?.Dispose();
+ this.var画像不透明度 = null;
+ }
+ }
+ #endregion
+ }
+}