OSDN Git Service

選挙区画面に文字列テクスチャを使ってタイトルを表示。
authorくまかみ工房 <kumakamikoubou@gmail.com>
Fri, 7 Oct 2016 01:48:53 +0000 (10:48 +0900)
committerくまかみ工房 <kumakamikoubou@gmail.com>
Fri, 7 Oct 2016 01:48:53 +0000 (10:48 +0900)
StrokeStyleT/ステージ/選曲/曲パネルビュー.cs
StrokeStyleT/ステージ/選曲/曲パネルビューD2D.cs
StrokeStyleT/曲/MusicNode.cs
StrokeStyleT/曲/Node.cs

index 697f9cf..0f0facf 100644 (file)
@@ -88,6 +88,8 @@ namespace SST.ステージ.選曲
                        }
                        else
                        {
+                               #region " カーソルの移動に伴う全パネルの横方向スクロール進行。"
+                               //----------------
                                this.横スクロール用カウンタ.経過時間の分だけ進行する( 8, () => {
 
                                        int オフセットの加減算速度 = 1;
@@ -141,6 +143,8 @@ namespace SST.ステージ.選曲
                                        }
 
                                } );
+                               //----------------
+                               #endregion
                        }
 
                        // 描画。
@@ -233,8 +237,9 @@ namespace SST.ステージ.選曲
                        {
                                // ノード画像を表示する。
                                パネルノード.ノード画像を描画する( dr, this.ワールド変換行列を計算して返す( パネル位置, SharpDX.Matrix.Scaling( パネルノード.ノード画像サイズdpx.Width, パネルノード.ノード画像サイズdpx.Height, 1f ) ) );
-                               
+
                                // タイトル文字列画像を表示する。
+                               パネルノード.タイトル画像を描画する( dr, this.ワールド変換行列を計算して返す( パネル位置, SharpDX.Matrix.Scaling( パネルノード.タイトル画像サイズdpx.Width, パネルノード.タイトル画像サイズdpx.Height, 1f ), -( パネルノード.ノード画像サイズdpx.Height ) ) );
                        }
                        else
                        {
@@ -242,8 +247,7 @@ namespace SST.ステージ.選曲
                                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;
@@ -257,7 +261,7 @@ namespace SST.ステージ.選曲
 
                        // 平行移動
                        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 ) );
index d2c2190..6d88937 100644 (file)
@@ -287,7 +287,7 @@ namespace SST.ステージ.選曲
                                変換行列3Dpx *= this.横位置割合からパネルの変換行列を算出して返す( dr, 横位置割合, パネル位置.Y );
 
                                // 描画。
-                               パネルノード.タイトル画像を描画する( dr, 変換行列2Dpx, 変換行列3Dpx );
+                               //パネルノード.タイトル画像を描画する( dr, 変換行列2Dpx, 変換行列3Dpx );
                                //-----------------
                                #endregion
                        }
index 1b4909d..c9a3c13 100644 (file)
@@ -13,7 +13,6 @@ namespace SST.曲
        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ファイルパス )
index 0279a2c..a248bc2 100644 (file)
@@ -66,16 +66,14 @@ namespace SST.曲
                        }
                }
 
-               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 )
                {
@@ -105,12 +103,13 @@ namespace SST.曲
                        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;   // 全インスタンスで共有
        }