From: くまかみ工房 Date: Fri, 7 Oct 2016 05:20:56 +0000 (+0900) Subject: サムネイル画像とタイトル画像のサイズと位置を調整。 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=34ca41f1ab3e1815392b5233e0e5586fd975fdbc;p=strokestylet%2FCsWin10Desktop3.git サムネイル画像とタイトル画像のサイズと位置を調整。 --- diff --git a/StrokeStyleT/ステージ/選曲/曲パネルビュー.cs b/StrokeStyleT/ステージ/選曲/曲パネルビュー.cs index c5f2efe..184fa65 100644 --- a/StrokeStyleT/ステージ/選曲/曲パネルビュー.cs +++ b/StrokeStyleT/ステージ/選曲/曲パネルビュー.cs @@ -235,20 +235,39 @@ namespace SST.ステージ.選曲 { // 画面を見ながら直観的に調整した固定パラメータたち。 const float 見かけの倍率 = 3.0f; - const float パネル全体のY方向移動量dpx = +350f; // パネル全体を少しだけ上にシフトする。 + const float パネル全体のY方向移動量dpx = +250f; // パネル全体を少しだけ上にシフトする。 const float パネル全体のZ方向移動量dpx = +3000f; const float 行間 = 1.1f; const float パネル間X方向角度deg = 19f; + // Nullパネル画像を表示する。 + { + var 拡大縮小 = SharpDX.Matrix.Scaling( パネルノード.ノードの全体サイズdpx.Width, パネルノード.ノードの全体サイズdpx.Height, 1f ) + * SharpDX.Matrix.Scaling( 見かけの倍率 ); + + var 平行移動 = SharpDX.Matrix.Translation( + 0f, + パネル全体のY方向移動量dpx + ( 1 - パネル位置.Y ) * ( パネルノード.ノードの全体サイズdpx.Height * 見かけの倍率 * 行間 ), + パネル全体のZ方向移動量dpx ); + + var Y軸回転 = SharpDX.Matrix.RotationY( SharpDX.MathUtil.DegreesToRadians( ( パネル位置.X - 4 ) * パネル間X方向角度deg ) ); + + this.Nullパネルの画像.進行描画する( dr, ( 拡大縮小 * 平行移動 * Y軸回転 ) ); + } if( null != パネルノード ) { // ノード画像を表示する。 { - var 拡大縮小 = SharpDX.Matrix.Scaling( パネルノード.ノード画像サイズdpx.Width, パネルノード.ノード画像サイズdpx.Height, 1f ) * SharpDX.Matrix.Scaling( 見かけの倍率 ); - var 平行移動 = SharpDX.Matrix.Translation( - 0f, - パネル全体のY方向移動量dpx + ( 1 - パネル位置.Y ) * ( パネルノード.ノード全体サイズdpx.Height * 見かけの倍率 * 行間 ), - パネル全体のZ方向移動量dpx ); + var 拡大縮小 = SharpDX.Matrix.Scaling( パネルノード.ノードの画像領域のサイズdpx.Width, パネルノード.ノードの画像領域のサイズdpx.Height, 1f ) + * SharpDX.Matrix.Scaling( 見かけの倍率 ); + + var 平行移動 = SharpDX.Matrix.Translation( + 0f, + パネル全体のY方向移動量dpx + + ( 1 - パネル位置.Y ) * ( パネルノード.ノードの全体サイズdpx.Height * 見かけの倍率 * 行間 ) + + ( パネルノード.ノードのタイトル領域のサイズdpx.Height / 2f ) * 見かけの倍率, + パネル全体のZ方向移動量dpx + 1f ); + var Y軸回転 = SharpDX.Matrix.RotationY( SharpDX.MathUtil.DegreesToRadians( ( パネル位置.X - 4 ) * パネル間X方向角度deg ) ); パネルノード.ノード画像を描画する( dr, ( 拡大縮小 * 平行移動 * Y軸回転 ) ); @@ -256,28 +275,20 @@ namespace SST.ステージ.選曲 // タイトル文字列画像を表示する。 { - var 拡大縮小 = SharpDX.Matrix.Scaling( パネルノード.タイトル画像サイズdpx.Width, パネルノード.タイトル画像サイズdpx.Height, 1f ) * SharpDX.Matrix.Scaling( 見かけの倍率 ); - var 平行移動 = SharpDX.Matrix.Translation( - 0f, - パネル全体のY方向移動量dpx + ( 1 - パネル位置.Y ) * ( パネルノード.ノード全体サイズdpx.Height * 見かけの倍率 * 行間 ) - ( パネルノード.ノード画像サイズdpx.Height * 見かけの倍率 ), - パネル全体のZ方向移動量dpx ); - var Y軸回転 = SharpDX.Matrix.RotationY( SharpDX.MathUtil.DegreesToRadians( ( パネル位置.X - 4 ) * パネル間X方向角度deg ) ); + float 幅dpx = Math.Min( パネルノード.タイトル画像サイズdpx.Width, パネルノード.ノードのタイトル領域のサイズdpx.Width ); // 左右にはみ出さないよう圧縮 + var 拡大縮小 = SharpDX.Matrix.Scaling( 幅dpx, パネルノード.タイトル画像サイズdpx.Height, 1f ) + * SharpDX.Matrix.Scaling( 見かけの倍率 ); - パネルノード.タイトル画像を描画する( dr, ( 拡大縮小 * 平行移動 * Y軸回転 ) ); - } - } - else - { - // Nullパネル画像を表示する。 - { - var 拡大縮小 = this.Nullパネルの画像.等倍スケーリング行列 * SharpDX.Matrix.Scaling( 見かけの倍率 ); var 平行移動 = SharpDX.Matrix.Translation( 0f, - パネル全体のY方向移動量dpx + ( 1 - パネル位置.Y ) * ( パネルノード.ノード全体サイズdpx.Height * 見かけの倍率 * 行間 ), - パネル全体のZ方向移動量dpx ); + パネル全体のY方向移動量dpx + + ( 1 - パネル位置.Y ) * ( パネルノード.ノードの全体サイズdpx.Height * 見かけの倍率 * 行間 ) + - ( パネルノード.ノードの画像領域のサイズdpx.Height / 2f ) * 見かけの倍率, + パネル全体のZ方向移動量dpx + 2f ); + var Y軸回転 = SharpDX.Matrix.RotationY( SharpDX.MathUtil.DegreesToRadians( ( パネル位置.X - 4 ) * パネル間X方向角度deg ) ); - this.Nullパネルの画像.進行描画する( dr, ( 拡大縮小 * 平行移動 * Y軸回転 ) ); + パネルノード.タイトル画像を描画する( dr, ( 拡大縮小 * 平行移動 * Y軸回転 ) ); } } } diff --git a/StrokeStyleT/ステージ/選曲/曲パネルビューD2D.cs b/StrokeStyleT/ステージ/選曲/曲パネルビューD2D.cs index 6d88937..cbbfffe 100644 --- a/StrokeStyleT/ステージ/選曲/曲パネルビューD2D.cs +++ b/StrokeStyleT/ステージ/選曲/曲パネルビューD2D.cs @@ -257,8 +257,8 @@ namespace SST.ステージ.選曲 #region " 3D変換行列を作成してノード画像を表示する。" //----------------- 変換行列3Dpx = SharpDX.Matrix.Scaling( - x: パネルサイズdpx.画像領域dpx.Width / パネルノード.ノード画像サイズdpx.Width, // ノード画像を設計値サイズに拡大縮小する。 - y: パネルサイズdpx.画像領域dpx.Height / パネルノード.ノード画像サイズdpx.Height, + x: パネルサイズdpx.画像領域dpx.Width / パネルノード.ノードの画像領域のサイズdpx.Width, // ノード画像を設計値サイズに拡大縮小する。 + y: パネルサイズdpx.画像領域dpx.Height / パネルノード.ノードの画像領域のサイズdpx.Height, z: 1.0f ); // カーソル位置なら拡大する。 @@ -275,8 +275,8 @@ namespace SST.ステージ.選曲 #region " 3D変換行列を作成してタイトル画像を表示する。" //----------------- 変換行列3Dpx = SharpDX.Matrix.Scaling( - x: パネルサイズdpx.タイトル領域dpx.Width / パネルノード.タイトル画像サイズdpx.Width, // タイトル画像を設計値サイズに拡大縮小する。 - y: パネルサイズdpx.タイトル領域dpx.Height / パネルノード.タイトル画像サイズdpx.Height, + x: パネルサイズdpx.タイトル領域dpx.Width / パネルノード.ノードのタイトル領域のサイズdpx.Width, // タイトル画像を設計値サイズに拡大縮小する。 + y: パネルサイズdpx.タイトル領域dpx.Height / パネルノード.ノードのタイトル領域のサイズdpx.Height, z: 1.0f ); // カーソル位置なら拡大する。 diff --git a/StrokeStyleT/曲/MusicNode.cs b/StrokeStyleT/曲/MusicNode.cs index c9a3c13..d0814f9 100644 --- a/StrokeStyleT/曲/MusicNode.cs +++ b/StrokeStyleT/曲/MusicNode.cs @@ -52,16 +52,7 @@ namespace SST.曲 } public override void ノード画像を描画する( デバイスリソース dr, SharpDX.Matrix ワールド変換行列 ) { - if( null != this.サムネイル画像 ) - { - // (A) 自前のサムネイル画像があるなら、それを表示する。 - this.サムネイル画像.進行描画する( dr, ワールド変換行列 ); - } - else - { - // (B) サムネイル画像がないなら、既定の曲画像を表示する。 - base.ノード画像を描画する( dr, ワールド変換行列 ); - } + this.サムネイル画像?.進行描画する( dr, ワールド変換行列 ); } protected FDK.メディア.テクスチャ サムネイル画像 = null; diff --git a/StrokeStyleT/曲/Node.cs b/StrokeStyleT/曲/Node.cs index a248bc2..e91e343 100644 --- a/StrokeStyleT/曲/Node.cs +++ b/StrokeStyleT/曲/Node.cs @@ -66,14 +66,15 @@ namespace SST.曲 } } - 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 ); + 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 ); + public SharpDX.Size2F タイトル画像サイズdpx => this.タイトル文画像.サイズdpx; protected override void On活性化( デバイスリソース dr ) { // タイトル部の文字画像を作成する。 - this.子リスト.Add( this.タイトル文画像 = new 文字列テクスチャ( this.タイトル ) ); + this.子リスト.Add( this.タイトル文画像 = new 文字列テクスチャ( this.タイトル, 30f ) ); } protected override void On非活性化( デバイスリソース dr ) {