}
else
{
+ #region " カーソルの移動に伴う全パネルの横方向スクロール進行。"
+ //----------------
this.横スクロール用カウンタ.経過時間の分だけ進行する( 8, () => {
int オフセットの加減算速度 = 1;
}
} );
+ //----------------
+ #endregion
}
// 描画。
{
// ノード画像を表示する。
パネルノード.ノード画像を描画する( dr, this.ワールド変換行列を計算して返す( パネル位置, SharpDX.Matrix.Scaling( パネルノード.ノード画像サイズdpx.Width, パネルノード.ノード画像サイズdpx.Height, 1f ) ) );
-
+
// タイトル文字列画像を表示する。
+ パネルノード.タイトル画像を描画する( dr, this.ワールド変換行列を計算して返す( パネル位置, SharpDX.Matrix.Scaling( パネルノード.タイトル画像サイズdpx.Width, パネルノード.タイトル画像サイズdpx.Height, 1f ), -( パネルノード.ノード画像サイズdpx.Height ) ) );
}
else
{
this.Nullパネルの画像.進行描画する( dr, this.ワールド変換行列を計算して返す( パネル位置, this.Nullパネルの画像.等倍スケーリング行列 ) );
}
}
-
- protected SharpDX.Matrix ワールド変換行列を計算して返す( SharpDX.Point パネル位置, SharpDX.Matrix 等倍スケーリング行列 )
+ protected SharpDX.Matrix ワールド変換行列を計算して返す( SharpDX.Point パネル位置, SharpDX.Matrix 等倍スケーリング行列, float Y方向移動量dpx = 0f )
{
// 画面を見ながら直観的に調整した固定パラメータたち。
const float 見かけの倍率 = 3.0f;
// 平行移動
float パネル間縦距離dpx = ( this.Nullパネルの画像.サイズdpx.Height * 見かけの倍率 * 行間 );
- mat = mat * SharpDX.Matrix.Translation( 0f, パネル全体のY方向移動量dpx + ( パネル位置.Y - 1 ) * パネル間縦距離dpx, パネル全体のZ方向移動量dpx );
+ mat = mat * SharpDX.Matrix.Translation( 0f, パネル全体のY方向移動量dpx + ( 1 - パネル位置.Y ) * パネル間縦距離dpx + ( Y方向移動量dpx * 見かけの倍率 ), パネル全体のZ方向移動量dpx );
// Y軸回転
mat = mat * SharpDX.Matrix.RotationY( SharpDX.MathUtil.DegreesToRadians( ( パネル位置.X - 4 ) * パネル間X方向角度deg ) );
変換行列3Dpx *= this.横位置割合からパネルの変換行列を算出して返す( dr, 横位置割合, パネル位置.Y );
// 描画。
- パネルノード.タイトル画像を描画する( dr, 変換行列2Dpx, 変換行列3Dpx );
+ //パネルノード.タイトル画像を描画する( dr, 変換行列2Dpx, 変換行列3Dpx );
//-----------------
#endregion
}
public class MusicNode : Node
{
public string sstfファイルパス { get; protected set; } = null;
-// public override SharpDX.Size2F ノード画像サイズdpx => this.サムネイル画像?.サイズdpx ?? base.ノード画像サイズdpx;
public string 動画ファイルパス { get; protected set; } = null;
public MusicNode( string sstfファイルパス )
}
}
- public virtual SharpDX.Size2F ノード画像サイズdpx => new SharpDX.Size2F( 314f, 220f ); // 規定の設計値[dpx]
- public virtual SharpDX.Size2F タイトル画像サイズdpx => new SharpDX.Size2F( 314f, 220f ); // 規定の設計値[dpx](暫定)
- //=> new SharpDX.Size2F( 314f, 82f ); } // 規定の設計値[dpx](最終)
+ public SharpDX.Size2F ノード全体サイズdpx => new SharpDX.Size2F( 314f, 220f );
+ public virtual SharpDX.Size2F ノード画像サイズdpx => new SharpDX.Size2F( 314f, 220f-82f );
+ public virtual SharpDX.Size2F タイトル画像サイズdpx => new SharpDX.Size2F( 314f, 82f );
+
protected override void On活性化( デバイスリソース dr )
{
// タイトル部の文字画像を作成する。
- this.子リスト.Add( this.タイトル文画像 = new 文字列画像( this.タイトル, 20.0f, "メイリオ" ) {
- レイアウトサイズdpx = new SharpDX.Size2F( 314f, 220f ),
- 下詰め = true,
- } );
+ this.子リスト.Add( this.タイトル文画像 = new 文字列テクスチャ( this.タイトル ) );
}
protected override void On非活性化( デバイスリソース dr )
{
if( Node.既定の曲画像.活性化している )
Node.既定の曲画像.進行描画する( dr, ワールド変換行列 );
}
- public virtual void タイトル画像を描画する( デバイスリソース dr, SharpDX.Matrix3x2 変換行列2Dpx, SharpDX.Matrix 変換行列3Dpx, float 不透明度0to1 = 1.0f )
+ public virtual void タイトル画像を描画する( デバイスリソース dr, SharpDX.Matrix ワールド変換行列 )
{
- this.タイトル文画像.進行描画する( dr, 変換行列2Dpx, 変換行列3Dpx, 不透明度0to1 );
+ if( this.タイトル文画像.活性化している )
+ this.タイトル文画像.進行描画する( dr, ワールド変換行列 );
}
- protected FDK.メディア.文字列画像 タイトル文画像 = null;
+ protected FDK.メディア.文字列テクスチャ タイトル文画像 = null;
protected static FDK.メディア.テクスチャ 既定の曲画像 = null; // 全インスタンスで共有
}