// ・目標を超えると現在が光る\r
// ・オート時には描画しない\r
// 要望・実装予定\r
- // ・グラフを波打たせるなどの視覚の向上\r
-\r
+ // ・グラフを波打たせるなどの視覚の向上→実装済\r
+ // 修正等\r
+ // ・画像がないと落ちる→修正済\r
\r
// プロパティ\r
\r
{\r
if( base.b初めての進行描画 )\r
{\r
+ for( int k = 0; k < 64; k++ )\r
+ {\r
+ this.stキラキラ[ k ].x = 0 + CDTXMania.Random.Next( 8 );\r
+ this.stキラキラ[ k ].fScale = 1f + ( CDTXMania.Random.Next( 9 ) * 0.2f );\r
+ this.stキラキラ[ k ].Trans = 0 + CDTXMania.Random.Next( 32 ) ;\r
+ if (k < 32)\r
+ {\r
+ this.stキラキラ[ k ].ct進行 = new CCounter(0, 230, 10 + CDTXMania.Random.Next(20), CDTXMania.Timer);\r
+ }\r
+ else if (k < 64)\r
+ {\r
+ this.stキラキラ[ k ].ct進行 = new CCounter(0, 230, 20 + CDTXMania.Random.Next(50), CDTXMania.Timer);\r
+ }\r
+ this.stキラキラ[ k ].ct進行.n現在の値 = CDTXMania.Random.Next(230);\r
+ }\r
+ for( int k = 0; k < 16; k++ )\r
+ {\r
+ this.stフラッシュ[ k ].y = -1;\r
+ this.stフラッシュ[ k ].Trans = 0;\r
+ }\r
base.b初めての進行描画 = false;\r
}\r
// 背景暗幕\r
+ Rectangle rectangle = new Rectangle(22, 0, 1, 1);\r
if (this.txグラフ != null)\r
{\r
- this.txグラフ.n透明度 = 128;\r
this.txグラフ.vc拡大縮小倍率 = new Vector3(38f, 230f, 1f);\r
+ this.txグラフ.n透明度 = 128;\r
+ this.txグラフ.t2D描画(CDTXMania.app.Device, 345, 88, rectangle);\r
}\r
- Rectangle rectangle = new Rectangle(22, 0, 1, 1);\r
- this.txグラフ.t2D描画(CDTXMania.app.Device, 345, 88, rectangle);\r
\r
// 基準線\r
+ rectangle = new Rectangle(20, 0, 1, 1);\r
+ if (this.txグラフ != null)\r
+ {\r
+ this.txグラフ.n透明度 = 32;\r
+ this.txグラフ.vc拡大縮小倍率 = new Vector3(38f, 1f, 1f);\r
+ for (int i = 0; i < 20; i++)\r
+ {\r
+ this.txグラフ.t2D描画(CDTXMania.app.Device, 345, 88 + (int)(11.5 * i), rectangle);\r
+ }\r
+ this.txグラフ.vc拡大縮小倍率 = new Vector3(1f, 230f, 1f);\r
+ for (int i = 0; i < 2; i++)\r
+ {\r
+ this.txグラフ.t2D描画(CDTXMania.app.Device, 349 + i * 18, 88 , rectangle);\r
+ this.txグラフ.t2D描画(CDTXMania.app.Device, 360 + i * 18, 88 , rectangle);\r
+ }\r
+ }\r
if (this.txグラフ != null)\r
{\r
- this.txグラフ.n透明度 = 192;\r
this.txグラフ.vc拡大縮小倍率 = new Vector3(38f, 1f, 1f);\r
}\r
- for (int i = 0; i < 4; i++)\r
+ for (int i = 0; i < 5; i++)\r
{\r
- // 基準線を越えたら黄色くなる\r
+ // 基準線を越えたら線が黄色くなる\r
if (this.dbグラフ値現在 >= (100 - i * 10))\r
{\r
- rectangle = new Rectangle(21, 0, 1, 1);\r
+ rectangle = new Rectangle(21, 0, 1, 1);//黄色\r
+ this.txグラフ.n透明度 = 224;\r
}\r
else\r
{\r
rectangle = new Rectangle(20, 0, 1, 1);\r
+ this.txグラフ.n透明度 = 160;\r
}\r
- this.txグラフ.t2D描画(CDTXMania.app.Device, 345, 88+i*23, rectangle);\r
- }\r
\r
+ if (this.txグラフ != null)\r
+ {\r
+ this.txグラフ.t2D描画(CDTXMania.app.Device, 345, 88 + i * 23, rectangle);\r
+ }\r
+ }\r
// グラフ\r
// --現在値\r
+ if (this.dbグラフ値現在_表示 < this.dbグラフ値現在)\r
+ {\r
+ this.dbグラフ値現在_表示 += (this.dbグラフ値現在 - this.dbグラフ値現在_表示) / 5 + 0.01;\r
+ }\r
+ if (this.dbグラフ値現在_表示 >= this.dbグラフ値現在)\r
+ {\r
+ this.dbグラフ値現在_表示 = this.dbグラフ値現在;\r
+ }\r
+ rectangle = new Rectangle(0, 0, 10, (int)(230f * this.dbグラフ値現在_表示 / 100));\r
if (this.txグラフ != null)\r
{\r
- this.txグラフ.n透明度 = 192;\r
this.txグラフ.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f);\r
+ this.txグラフ.n透明度 = 192;\r
+ this.txグラフ.t2D描画(CDTXMania.app.Device, 350, 318 - (int)(230f * this.dbグラフ値現在_表示 / 100), rectangle);\r
}\r
- rectangle = new Rectangle(0, 0, 10, (int)(230f * this.dbグラフ値現在 / 100));\r
- this.txグラフ.t2D描画(CDTXMania.app.Device, 350, 318 - (int)(230f * this.dbグラフ値現在 / 100), rectangle);\r
- if (dbグラフ値現在 >= dbグラフ値目標)\r
+ for( int k = 0; k < 32; k++ )\r
+ {\r
+ rectangle = new Rectangle(20, 0, 1, 1);\r
+ if (this.txグラフ != null)\r
+ {\r
+ this.stキラキラ[ k ].ct進行.t進行Loop();\r
+ int num1 = (int)this.stキラキラ[ k ].x;\r
+ int num2 = this.stキラキラ[ k ].ct進行.n現在の値;\r
+ this.txグラフ.vc拡大縮小倍率 = new Vector3(this.stキラキラ[ k ].fScale, this.stキラキラ[ k ].fScale, this.stキラキラ[ k ].fScale);\r
+ this.txグラフ.n透明度 = 138 - 2 * this.stキラキラ[ k ].Trans;\r
+ if ( num2 < (2.3f * this.dbグラフ値現在_表示) )\r
+ {\r
+ this.txグラフ.t2D描画(CDTXMania.app.Device, 350+num1, 318-num2, rectangle);\r
+ }\r
+ }\r
+ }\r
+ // --現在値_追加エフェクト\r
+ if (this.dbグラフ値直前 != this.dbグラフ値現在)\r
{\r
- this.txグラフ.vc拡大縮小倍率 = new Vector3(1.2f, 1f, 1f);\r
- this.txグラフ.n透明度 = 64;\r
+ this.stフラッシュ[ nグラフフラッシュct ].y = 0;\r
+ this.stフラッシュ[ nグラフフラッシュct ].Trans = 224;\r
+ nグラフフラッシュct ++;\r
+ if (nグラフフラッシュct >= 16)\r
+ {\r
+ nグラフフラッシュct = 0;\r
+ }\r
+ }\r
+ this.dbグラフ値直前 = this.dbグラフ値現在;\r
+ for (int m = 0; m < 16; m++)\r
+ {\r
+ rectangle = new Rectangle(20, 0, 1, 1);\r
+ if ((this.stフラッシュ[ m ].y >= 0) && (this.stフラッシュ[ m ].y+3 < (int)(230f * this.dbグラフ値現在_表示 / 100)) && (this.txグラフ != null))\r
+ {\r
+ this.txグラフ.vc拡大縮小倍率 = new Vector3(10f, 1f, 1f);\r
+ this.txグラフ.n透明度 = this.stフラッシュ[ m ].Trans;\r
+ this.txグラフ.t2D描画(CDTXMania.app.Device, 350, this.stフラッシュ[ m ].y + (318 - (int)(230f * this.dbグラフ値現在_表示 / 100)), rectangle);\r
+ this.txグラフ.n透明度 = this.stフラッシュ[ m ].Trans;\r
+ this.txグラフ.t2D描画(CDTXMania.app.Device, 350, this.stフラッシュ[ m ].y + 2 + (318 - (int)(230f * this.dbグラフ値現在_表示 / 100)), rectangle);\r
+ }\r
+ this.stフラッシュ[ m ].y += 4;\r
+ this.stフラッシュ[ m ].Trans -= 4;\r
+ }\r
+ // --現在値_目標越\r
+ rectangle = new Rectangle(0, 0, 10, (int)(230f * this.dbグラフ値現在_表示 / 100));\r
+ if ((dbグラフ値現在 >= dbグラフ値目標) && (this.txグラフ != null))\r
+ {\r
+ this.txグラフ.vc拡大縮小倍率 = new Vector3(1.4f, 1f, 1f);\r
+ this.txグラフ.n透明度 = 128;\r
this.txグラフ.b加算合成 = true;\r
- this.txグラフ.t2D描画(CDTXMania.app.Device, 349, 318 - (int)(230f * this.dbグラフ値現在 / 100), rectangle);\r
+ this.txグラフ.t2D描画(CDTXMania.app.Device, 348, 318 - (int)(230f * this.dbグラフ値現在_表示 / 100), rectangle);\r
+ this.txグラフ.b加算合成 = false;\r
}\r
// --目標値\r
+ if (this.dbグラフ値目標_表示 < this.dbグラフ値目標)\r
+ {\r
+ this.dbグラフ値目標_表示 += (this.dbグラフ値目標 - this.dbグラフ値目標_表示) / 5 + 0.01;\r
+ }\r
+ if (this.dbグラフ値目標_表示 >= this.dbグラフ値目標)\r
+ {\r
+ this.dbグラフ値目標_表示 = this.dbグラフ値目標;\r
+ }\r
+ rectangle = new Rectangle(10, 0, 10, (int)(230f * this.dbグラフ値目標_表示 / 100));\r
if (this.txグラフ != null)\r
{\r
- this.txグラフ.n透明度 = 192;\r
this.txグラフ.vc拡大縮小倍率 = new Vector3(1f, 1f, 1f);\r
+ this.txグラフ.n透明度 = 192;\r
+ this.txグラフ.t2D描画(CDTXMania.app.Device, 368, 318 - (int)(230f * this.dbグラフ値目標_表示 / 100), rectangle);\r
+ this.txグラフ.vc拡大縮小倍率 = new Vector3(1.4f, 1f, 1f);\r
+ this.txグラフ.n透明度 = 48;\r
+ this.txグラフ.b加算合成 = true;\r
+ this.txグラフ.t2D描画(CDTXMania.app.Device, 366, 318 - (int)(230f * this.dbグラフ値目標_表示 / 100), rectangle);\r
this.txグラフ.b加算合成 = false;\r
}\r
- rectangle = new Rectangle(10, 0, 10, (int)(230f * this.dbグラフ値目標 / 100));\r
- this.txグラフ.t2D描画(CDTXMania.app.Device, 368, 318 - (int)(230f * this.dbグラフ値目標 / 100), rectangle);\r
+ for( int k = 32; k < 64; k++ )\r
+ {\r
+ rectangle = new Rectangle(20, 0, 1, 1);\r
+ if (this.txグラフ != null)\r
+ {\r
+ this.stキラキラ[ k ].ct進行.t進行Loop();\r
+ int num1 = (int)this.stキラキラ[ k ].x;\r
+ int num2 = this.stキラキラ[ k ].ct進行.n現在の値;\r
+ this.txグラフ.vc拡大縮小倍率 = new Vector3(this.stキラキラ[ k ].fScale, this.stキラキラ[ k ].fScale, this.stキラキラ[ k ].fScale);\r
+ this.txグラフ.n透明度 = 138 - 2 * this.stキラキラ[ k ].Trans;\r
+ if ( num2 < (2.3f * this.dbグラフ値目標_表示) )\r
+ {\r
+ this.txグラフ.t2D描画(CDTXMania.app.Device, 368+num1, 318-num2, rectangle);\r
+ }\r
+ }\r
+ }\r
\r
}\r
return 0;\r
\r
#region [ private ]\r
//----------------\r
+ [StructLayout( LayoutKind.Sequential )]\r
+ private struct STキラキラ\r
+ {\r
+ public int x;\r
+ public int y;\r
+ public float fScale;\r
+ public int Trans;\r
+ public CCounter ct進行;\r
+ }\r
+ private STキラキラ[] stキラキラ = new STキラキラ[ 64 ];\r
+ private STキラキラ[] stフラッシュ = new STキラキラ[ 16 ];\r
+\r
private double dbグラフ値目標;\r
+ private double dbグラフ値目標_表示;\r
private double dbグラフ値現在;\r
+ private double dbグラフ値現在_表示;\r
+ private double dbグラフ値直前;\r
+ private int nグラフフラッシュct;\r
+\r
private CTexture txグラフ;\r
//-----------------\r
#endregion\r