+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-using System.Diagnostics;\r
-using SharpDX;\r
-using FDK;\r
-\r
-using Rectangle = System.Drawing.Rectangle;\r
-\r
-namespace DTXMania\r
-{\r
- internal class CActResultSongBar : CActivity\r
- {\r
- private CCounter ct登場用;\r
- private Font ft曲名用フォント;\r
- private int n本体X;\r
- private int n本体Y;\r
- private CTextureAf txバー;\r
- private CTexture tx曲名;\r
-\r
- public CActResultSongBar()\r
- {\r
- base.b活性化してない = true;\r
- }\r
-\r
- public void tアニメを完了させる()\r
- {\r
- this.ct登場用.n現在の値 = this.ct登場用.n終了値;\r
- }\r
-\r
- public override void On活性化()\r
- {\r
- if (b活性化してない)\r
- {\r
- this.n本体X = 0;\r
- this.n本体Y = 0x18b;\r
- this.ft曲名用フォント = new Font("MS PGothic", 44f * Scale.Y, FontStyle.Bold, GraphicsUnit.Pixel);\r
- base.On活性化();\r
- }\r
- }\r
-\r
- public override void On非活性化()\r
- {\r
- if (b活性化してる)\r
- {\r
- if (this.ft曲名用フォント != null)\r
- {\r
- this.ft曲名用フォント.Dispose();\r
- this.ft曲名用フォント = null;\r
- }\r
- if (this.ct登場用 != null)\r
- {\r
- this.ct登場用 = null;\r
- }\r
- base.On非活性化();\r
- }\r
- }\r
- public override void OnManagedリソースの作成()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- this.txバー = TextureFactory.tテクスチャの生成Af(CSkin.Path(@"Graphics\ScreenResult song bar.png"), false);\r
- try\r
- {\r
- Bitmap image = new Bitmap((int)(0x3a8 * Scale.X), (int)(0x36 * Scale.Y));\r
- Graphics graphics = Graphics.FromImage(image);\r
- graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;\r
- graphics.DrawString(CDTXMania.Instance.DTX.TITLE, this.ft曲名用フォント, Brushes.White, (float)8f * Scale.X, (float)0f);\r
- this.tx曲名 = new CTexture(CDTXMania.Instance.Device, image, CDTXMania.Instance.TextureFormat);\r
- this.tx曲名.vc拡大縮小倍率 = new Vector3(0.5f, 0.5f, 1f);\r
- graphics.Dispose();\r
- image.Dispose();\r
- }\r
- catch (CTextureCreateFailedException)\r
- {\r
- Trace.TraceError("曲名テクスチャの生成に失敗しました。");\r
- this.tx曲名 = null;\r
- }\r
- base.OnManagedリソースの作成();\r
- }\r
- }\r
- public override void OnManagedリソースの解放()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- TextureFactory.tテクスチャの解放(ref this.txバー);\r
- TextureFactory.tテクスチャの解放(ref this.tx曲名);\r
- base.OnManagedリソースの解放();\r
- }\r
- }\r
- public override int On進行描画()\r
- {\r
- if (base.b活性化してる)\r
- {\r
- if (base.b初めての進行描画)\r
- {\r
- this.ct登場用 = new CCounter(0, 270, 4, CDTXMania.Instance.Timer);\r
- base.b初めての進行描画 = false;\r
- }\r
- this.ct登場用.t進行();\r
- int num = 0x1d4;\r
- int num2 = num - 0x40;\r
- if (this.ct登場用.b進行中)\r
- {\r
- if (this.ct登場用.n現在の値 <= 100)\r
- {\r
- double num3 = 1.0 - (((double)this.ct登場用.n現在の値) / 100.0);\r
- this.n本体X = -((int)(num * Math.Sin(Math.PI / 2 * num3)));\r
- this.n本体Y = 0x18b;\r
- }\r
- else if (this.ct登場用.n現在の値 <= 200)\r
- {\r
- double num4 = ((double)(this.ct登場用.n現在の値 - 100)) / 100.0;\r
- this.n本体X = -((int)((((double)num) / 6.0) * Math.Sin(Math.PI * num4)));\r
- this.n本体Y = 0x18b;\r
- }\r
- else if (this.ct登場用.n現在の値 <= 270)\r
- {\r
- double num5 = ((double)(this.ct登場用.n現在の値 - 200)) / 70.0;\r
- this.n本体X = -((int)((((double)num) / 18.0) * Math.Sin(Math.PI * num5)));\r
- this.n本体Y = 0x18b;\r
- }\r
- }\r
- else\r
- {\r
- this.n本体X = 0;\r
- this.n本体Y = 0x18b;\r
- }\r
- int num6 = this.n本体X;\r
- int y = this.n本体Y;\r
- int num8 = 0;\r
- while (num8 < num2)\r
- {\r
- Rectangle rectangle = new Rectangle(0, 0, 0x40, 0x40);\r
- if ((num8 + rectangle.Width) >= num2)\r
- {\r
- rectangle.Width -= (num8 + rectangle.Width) - num2;\r
- }\r
- if (this.txバー != null)\r
- {\r
- Rectangle rectangle1 = rectangle;\r
- rectangle1.X = (int)(rectangle1.X * Scale.X);\r
- rectangle1.Y = (int)(rectangle1.Y * Scale.Y);\r
- rectangle1.Width = (int)(rectangle1.Width * Scale.X);\r
- rectangle1.Height = (int)(rectangle1.Height * Scale.Y);\r
- this.txバー.t2D描画(\r
- CDTXMania.Instance.Device,\r
- (num6 + num8) * Scale.X,\r
- y * Scale.Y,\r
- rectangle1\r
- );\r
- }\r
- num8 += rectangle.Width;\r
- }\r
- if (this.txバー != null)\r
- {\r
- this.txバー.t2D描画(\r
- CDTXMania.Instance.Device,\r
- (num6 + num8) * Scale.X,\r
- y * Scale.Y,\r
- new Rectangle(\r
- (int)(0x40 * Scale.X),\r
- 0,\r
- (int)(0x40 * Scale.X),\r
- (int)(0x40 * Scale.Y)\r
- )\r
- );\r
- }\r
- if (this.tx曲名 != null)\r
- {\r
- this.tx曲名.t2D描画(\r
- CDTXMania.Instance.Device,\r
- this.n本体X * Scale.X,\r
- (this.n本体Y + 20) * Scale.Y\r
- );\r
- }\r
- if (!this.ct登場用.b終了値に達した)\r
- {\r
- return 0;\r
- }\r
- return 1;\r
- }\r
- return 0;\r
- }\r
- }\r
-}\r