+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Text;\r
-using System.Drawing;\r
-using FDK;\r
-\r
-namespace DTXMania\r
-{\r
- internal class C文字コンソール : CActivity\r
- {\r
- // 定数\r
-\r
- public enum Eフォント種別\r
- {\r
- 白,\r
- 赤,\r
- 灰,\r
- 白細,\r
- 赤細,\r
- 灰細\r
- }\r
- public enum E配置\r
- {\r
- 左詰,\r
- 中央,\r
- 右詰\r
- }\r
-\r
-\r
- // メソッド\r
-\r
- public void tPrint(int x, int y, Eフォント種別 font, string str英数字文字列)\r
- {\r
- if (!base.b活性化してない && !string.IsNullOrEmpty(str英数字文字列))\r
- {\r
- int BOL = x;\r
- for (int i = 0; i < str英数字文字列.Length; i++)\r
- {\r
- char ch = str英数字文字列[i];\r
- if (ch == '\n')\r
- {\r
- x = BOL;\r
- y += CDTXMania.Instance.Coordinates.ImgConsoleFont.H;\r
- }\r
- else\r
- {\r
- int index = str表記可能文字.IndexOf(ch);\r
- if (index < 0)\r
- {\r
- x += CDTXMania.Instance.Coordinates.ImgConsoleFont.W;\r
- }\r
- else\r
- {\r
- if (this.txフォント8x16[(int)((int)font / (int)Eフォント種別.白細)] != null)\r
- {\r
- this.txフォント8x16[(int)((int)font / (int)Eフォント種別.白細)].t2D描画(CDTXMania.Instance.Device, x, y, this.rc文字の矩形領域[(int)((int)font % (int)Eフォント種別.白細), index]);\r
- }\r
- x += CDTXMania.Instance.Coordinates.ImgConsoleFont.W;\r
- }\r
- }\r
- }\r
- }\r
- }\r
-\r
-\r
- // CActivity 実装\r
-\r
- public override void On活性化()\r
- {\r
- this.rc文字の矩形領域 = new Rectangle[3, str表記可能文字.Length];\r
- for (int i = 0; i < 3; i++)\r
- {\r
- for (int j = 0; j < str表記可能文字.Length; j++)\r
- {\r
- const int regionX = 128 * 2, regionY = 16;\r
- this.rc文字の矩形領域[i, j].X = ((i / 2) * regionX) + ((j % regionY) * CDTXMania.Instance.Coordinates.ImgConsoleFont.W);\r
- this.rc文字の矩形領域[i, j].Y = ((i % 2) * regionX) + ((j / regionY) * CDTXMania.Instance.Coordinates.ImgConsoleFont.H);\r
- this.rc文字の矩形領域[i, j].Width = CDTXMania.Instance.Coordinates.ImgConsoleFont.W;\r
- this.rc文字の矩形領域[i, j].Height = CDTXMania.Instance.Coordinates.ImgConsoleFont.H;\r
- }\r
- }\r
- base.On活性化();\r
- }\r
- public override void On非活性化()\r
- {\r
- if (this.rc文字の矩形領域 != null)\r
- this.rc文字の矩形領域 = null;\r
-\r
- base.On非活性化();\r
- }\r
- public override void OnManagedリソースの作成()\r
- {\r
- if (!base.b活性化してない)\r
- {\r
- this.txフォント8x16[0] = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\Console font 8x16.png"));\r
- this.txフォント8x16[1] = TextureFactory.tテクスチャの生成(CSkin.Path(@"Graphics\Console font 2 8x16.png"));\r
- base.OnManagedリソースの作成();\r
- }\r
- }\r
- public override void OnManagedリソースの解放()\r
- {\r
- if (!base.b活性化してない)\r
- {\r
- for (int i = 0; i < 2; i++)\r
- {\r
- if (this.txフォント8x16[i] != null)\r
- {\r
- this.txフォント8x16[i].Dispose();\r
- this.txフォント8x16[i] = null;\r
- }\r
- }\r
- base.OnManagedリソースの解放();\r
- }\r
- }\r
-\r
-\r
- // その他\r
-\r
- #region [ private ]\r
- //-----------------\r
- private Rectangle[,] rc文字の矩形領域;\r
- private const string str表記可能文字 = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ";\r
- private CTexture[] txフォント8x16 = new CTexture[2];\r
- //-----------------\r
- #endregion\r
- }\r
-}\r