#region [ strAVIファイル名の作成。]\r
//-----------------\r
string strAVIファイル名;\r
- if( !string.IsNullOrEmpty( CDTXMania.DTX.PATH_WAV ) )\r
- strAVIファイル名 = CDTXMania.DTX.PATH_WAV + this.strファイル名;\r
+\r
+ if ( CDTXMania.DTX != null && !Path.IsPathRooted( this.strファイル名 ) ) // CDTX抜きでCAVI単体で使うことを考慮(選曲画面, リザルト画面)\r
+ { // 演奏終了直後はCDTXオブジェクトが残っているので、ファイル名がフルパスかどうかでプレビュー判定する\r
+ if ( !string.IsNullOrEmpty( CDTXMania.DTX.PATH_WAV ) )\r
+ strAVIファイル名 = CDTXMania.DTX.PATH_WAV + this.strファイル名;\r
+ else\r
+ strAVIファイル名 = CDTXMania.DTX.strフォルダ名 + this.strファイル名;\r
+ }\r
else\r
- strAVIファイル名 = CDTXMania.DTX.strフォルダ名 + this.strファイル名;\r
+ {\r
+ strAVIファイル名 = this.strファイル名;\r
+ }\r
//-----------------\r
#endregion\r
\r
if( !File.Exists( strAVIファイル名 ) )\r
{\r
- Trace.TraceWarning( "ファイルが存在しません。({0})({1})", this.strコメント文, strAVIファイル名 );\r
+ Trace.TraceWarning( "CAVI: ファイルが存在しません。({0})({1})", this.strコメント文, Path.GetFileName( strAVIファイル名 ) );\r
this.avi = null;\r
return;\r
}\r
try\r
{\r
this.avi = new CAvi( strAVIファイル名 );\r
- Trace.TraceInformation( "動画を生成しました。({0})({1})({2}frames)", this.strコメント文, strAVIファイル名, this.avi.GetMaxFrameCount() );\r
+ Trace.TraceInformation( "CAVI: 動画を生成しました。({0})({1})({2}frames)", this.strコメント文, Path.GetFileName( strAVIファイル名 ), this.avi.GetMaxFrameCount() );\r
}\r
- catch( Exception e )\r
+ catch ( Exception e )\r
{\r
Trace.TraceError( e.Message );\r
- Trace.TraceError( "動画の生成に失敗しました。({0})({1})", this.strコメント文, strAVIファイル名 );\r
+ Trace.TraceError( "CAVI: 動画の生成に失敗しました。({0})({1})", this.strコメント文, Path.GetFileName( strAVIファイル名 ) );\r
this.avi = null;\r
}\r
}\r
\r
if( this.avi != null )\r
{\r
- #region [ strAVIファイル名 の作成。 ]\r
+ #region [ strAVIファイル名 の作成。なぜDispose時にファイル名の生成をしているのかと思ったら、デバッグログ用でした。 ]\r
//-----------------\r
string strAVIファイル名;\r
- if( !string.IsNullOrEmpty( CDTXMania.DTX.PATH_WAV ) )\r
- strAVIファイル名 = CDTXMania.DTX.PATH_WAV + this.strファイル名;\r
+ if ( CDTXMania.DTX != null && !Path.IsPathRooted( this.strファイル名 ) ) // CDTX抜きでCAVI単体で使うことを考慮(選曲画面, リザルト画面)\r
+ { // 演奏終了直後はCDTXオブジェクトが残っているので、ファイル名がフルパスかどうかでプレビュー判定する\r
+ if ( !string.IsNullOrEmpty( CDTXMania.DTX.PATH_WAV ) )\r
+ strAVIファイル名 = CDTXMania.DTX.PATH_WAV + this.strファイル名;\r
+ else\r
+ strAVIファイル名 = CDTXMania.DTX.strフォルダ名 + this.strファイル名;\r
+ }\r
else\r
- strAVIファイル名 = CDTXMania.DTX.strフォルダ名 + this.strファイル名;\r
+ {\r
+ strAVIファイル名 = this.strファイル名;\r
+ }\r
//-----------------\r
#endregion\r
\r
this.avi.Dispose();\r
this.avi = null;\r
\r
- Trace.TraceInformation( "動画を解放しました。({0})({1})", this.strコメント文, strAVIファイル名 );\r
+ Trace.TraceInformation( "動画を解放しました。({0})({1})", this.strコメント文, Path.GetFileName( strAVIファイル名 ) );\r
}\r
-\r
this.bDispose済み = true;\r
}\r
//-----------------\r
{\r
get\r
{\r
- if (this.nチャンネル番号 == 3 || this.nチャンネル番号 == 8) {\r
- return true;\r
- } else {\r
- return false;\r
- }\r
+ return (\r
+ this.nチャンネル番号 == (int) Ech定義.BPM ||\r
+ this.nチャンネル番号 == (int) Ech定義.BPMEx\r
+ );\r
}\r
}\r
public bool bWAVを使うチャンネルである\r
}\r
//-----------------\r
#endregion\r
+\r
+ #region [ チャンネル番号→Chipの種類、の変換。今後の拡張を容易にするために追加。 ]\r
+ public ESoundChipType tチャンネル番号からESoundChipTypeを得る()\r
+ {\r
+ switch ( this.nチャンネル番号 )\r
+ {\r
+ #region [ Drums ]\r
+ case (int) Ech定義.HiHatClose:\r
+ case (int) Ech定義.Snare:\r
+ case (int) Ech定義.BassDrum:\r
+ case (int) Ech定義.HighTom:\r
+ case (int) Ech定義.LowTom:\r
+ case (int) Ech定義.Cymbal:\r
+ case (int) Ech定義.FloorTom:\r
+ case (int) Ech定義.HiHatOpen:\r
+ case (int) Ech定義.RideCymbal:\r
+ case (int) Ech定義.LeftCymbal:\r
+\r
+ case (int) Ech定義.HiHatClose_Hidden:\r
+ case (int) Ech定義.Snare_Hidden:\r
+ case (int) Ech定義.BassDrum_Hidden:\r
+ case (int) Ech定義.HighTom_Hidden:\r
+ case (int) Ech定義.LowTom_Hidden:\r
+ case (int) Ech定義.Cymbal_Hidden:\r
+ case (int) Ech定義.FloorTom_Hidden:\r
+ case (int) Ech定義.HiHatOpen_Hidden:\r
+ case (int) Ech定義.RideCymbal_Hidden:\r
+ case (int) Ech定義.LeftCymbal_Hidden:\r
+\r
+ case (int) Ech定義.HiHatClose_NoChip:\r
+ case (int) Ech定義.Snare_NoChip:\r
+ case (int) Ech定義.BassDrum_NoChip:\r
+ case (int) Ech定義.HighTom_NoChip:\r
+ case (int) Ech定義.LowTom_NoChip:\r
+ case (int) Ech定義.Cymbal_NoChip:\r
+ case (int) Ech定義.FloorTom_NoChip:\r
+ case (int) Ech定義.HiHatOpen_NoChip:\r
+ case (int) Ech定義.RideCymbal_NoChip:\r
+ case (int) Ech定義.LeftCymbal_NoChip:\r
+ return ESoundChipType.Drums;\r
+ #endregion\r
+\r
+ #region [ Guitar ]\r
+ case (int) Ech定義.Guitar_Open:\r
+ case (int) Ech定義.Guitar_xxB:\r
+ case (int) Ech定義.Guitar_xGx:\r
+ case (int) Ech定義.Guitar_xGB:\r
+ case (int) Ech定義.Guitar_Rxx:\r
+ case (int) Ech定義.Guitar_RxB:\r
+ case (int) Ech定義.Guitar_RGx:\r
+ case (int) Ech定義.Guitar_RGB:\r
+ case (int) Ech定義.Guitar_Wailing:\r
+ case (int) Ech定義.Guitar_WailingSound:\r
+ case (int) Ech定義.Guitar_NoChip:\r
+ return ESoundChipType.Guitar;\r
+ #endregion\r
+\r
+ #region [ Bass ]\r
+ case (int) Ech定義.Bass_Open:\r
+ case (int) Ech定義.Bass_xxB:\r
+ case (int) Ech定義.Bass_xGx:\r
+ case (int) Ech定義.Bass_xGB:\r
+ case (int) Ech定義.Bass_Rxx:\r
+ case (int) Ech定義.Bass_RxB:\r
+ case (int) Ech定義.Bass_RGx:\r
+ case (int) Ech定義.Bass_RGB:\r
+ case (int) Ech定義.Bass_Wailing:\r
+ case (int) Ech定義.Bass_WailingSound:\r
+ case (int) Ech定義.Bass_NoChip:\r
+ return ESoundChipType.Bass;\r
+ #endregion\r
+\r
+ #region [ SE ]\r
+ case (int) Ech定義.SE01:\r
+ case (int) Ech定義.SE02:\r
+ case (int) Ech定義.SE03:\r
+ case (int) Ech定義.SE04:\r
+ case (int) Ech定義.SE05:\r
+ case (int) Ech定義.SE06:\r
+ case (int) Ech定義.SE07:\r
+ case (int) Ech定義.SE08:\r
+ case (int) Ech定義.SE09:\r
+ case (int) Ech定義.SE10:\r
+ case (int) Ech定義.SE11:\r
+ case (int) Ech定義.SE12:\r
+ case (int) Ech定義.SE13:\r
+ case (int) Ech定義.SE14:\r
+ case (int) Ech定義.SE15:\r
+ case (int) Ech定義.SE16:\r
+ case (int) Ech定義.SE17:\r
+ case (int) Ech定義.SE18:\r
+ case (int) Ech定義.SE19:\r
+ case (int) Ech定義.SE20:\r
+ case (int) Ech定義.SE21:\r
+ case (int) Ech定義.SE22:\r
+ case (int) Ech定義.SE23:\r
+ case (int) Ech定義.SE24:\r
+ case (int) Ech定義.SE25:\r
+ case (int) Ech定義.SE26:\r
+ case (int) Ech定義.SE27:\r
+ case (int) Ech定義.SE28:\r
+ case (int) Ech定義.SE29:\r
+ case (int) Ech定義.SE30:\r
+ case (int) Ech定義.SE31:\r
+ case (int) Ech定義.SE32:\r
+ return ESoundChipType.SE;\r
+ #endregion\r
+\r
+ #region [ BGM ]\r
+ case (int) Ech定義.BGM:\r
+ return ESoundChipType.BGM;\r
+ #endregion\r
+\r
+ #region [ その他 ]\r
+ default:\r
+ return ESoundChipType.UNKNOWN;\r
+ #endregion\r
+ }\r
+ }\r
+ #endregion\r
+\r
+ public bool bIsVisibleChip\r
+ {\r
+ get\r
+ {\r
+ switch ( this.nチャンネル番号 )\r
+ {\r
+ case (int) Ech定義.HiHatClose:\r
+ case (int) Ech定義.Snare:\r
+ case (int) Ech定義.BassDrum:\r
+ case (int) Ech定義.HighTom:\r
+ case (int) Ech定義.LowTom:\r
+ case (int) Ech定義.Cymbal:\r
+ case (int) Ech定義.FloorTom:\r
+ case (int) Ech定義.HiHatOpen:\r
+ case (int) Ech定義.RideCymbal:\r
+ case (int) Ech定義.LeftCymbal:\r
+\r
+ case (int) Ech定義.Guitar_Open:\r
+ case (int) Ech定義.Guitar_xxB:\r
+ case (int) Ech定義.Guitar_xGx:\r
+ case (int) Ech定義.Guitar_xGB:\r
+ case (int) Ech定義.Guitar_Rxx:\r
+ case (int) Ech定義.Guitar_RxB:\r
+ case (int) Ech定義.Guitar_RGx:\r
+ case (int) Ech定義.Guitar_RGB:\r
+\r
+ case (int) Ech定義.Bass_Open:\r
+ case (int) Ech定義.Bass_xxB:\r
+ case (int) Ech定義.Bass_xGx:\r
+ case (int) Ech定義.Bass_xGB:\r
+ case (int) Ech定義.Bass_Rxx:\r
+ case (int) Ech定義.Bass_RxB:\r
+ case (int) Ech定義.Bass_RGx:\r
+ case (int) Ech定義.Bass_RGB:\r
+ return true;\r
+\r
+ default:\r
+ return false;\r
+ }\r
+ }\r
+ }\r
+\r
/// <summary>\r
/// shallow copyです。\r
/// </summary>\r
public bool LeftCymbal;\r
public bool OpenGuitar;\r
public bool OpenBass;\r
+\r
+ public bool BGA;\r
+ public bool Movie;\r
\r
public bool this[ int index ]\r
{\r
// public bool bGUITAR演奏で直前のGUITARを消音する;\r
// public bool bBASS演奏で直前のBASSを消音する;\r
#endif\r
- // コンストラクタ\r
+ #region [ コンストラクタ ]\r
\r
public CDTX()\r
{\r
this.bチップがある.LeftCymbal = false;\r
this.bチップがある.OpenGuitar = false;\r
this.bチップがある.OpenBass = false;\r
+ this.bチップがある.BGA = false;\r
+ this.bチップがある.Movie = false; \r
this.strファイル名 = "";\r
this.strフォルダ名 = "";\r
this.strファイル名の絶対パス = "";\r
this.bGUITAR演奏で直前のGUITARを消音する = true;\r
this.bBASS演奏で直前のBASSを消音する = true;\r
#endif\r
- \r
+\r
}\r
public CDTX( string str全入力文字列 )\r
: this()\r
this.On活性化();\r
this.t入力( strファイル名, bヘッダのみ, db再生速度, nBGMAdjust );\r
}\r
+ #endregion\r
\r
\r
// メソッド\r
this.listWAV[ chip.n整数値・内部番号 ].listこのWAVを使用するチャンネル番号の集合.Add( chip.nチャンネル番号 );\r
\r
int c = chip.nチャンネル番号 >> 4;\r
- switch ( c )\r
+ switch ( chip.tチャンネル番号からESoundChipTypeを得る() )\r
{\r
- case 0x01:\r
+ case ESoundChipType.Drums:\r
if ( !chip.b空打ちチップである )\r
{\r
this.listWAV[ chip.n整数値・内部番号 ].bIsDrumsSound = true;\r
}\r
break;\r
- case 0x02:\r
+ case ESoundChipType.Guitar:\r
this.listWAV[ chip.n整数値・内部番号 ].bIsGuitarSound = true; break;\r
- case 0x0A:\r
+ case ESoundChipType.Bass:\r
this.listWAV[ chip.n整数値・内部番号 ].bIsBassSound = true; break;\r
- case 0x06:\r
- case 0x07:\r
- case 0x08:\r
- case 0x09:\r
+ case ESoundChipType.SE:\r
this.listWAV[ chip.n整数値・内部番号 ].bIsSESound = true; break;\r
- case 0x00:\r
+ case ESoundChipType.BGM:\r
if ( chip.nチャンネル番号 == 0x01 )\r
{\r
this.listWAV[ chip.n整数値・内部番号 ].bIsBGMSound = true; break;\r
case 0x80: case 0x81: case 0x82: case 0x83: case 0x84: case 0x85: case 0x86: case 0x87: case 0x88: case 0x89:\r
case 0x90: case 0x91: case 0x92:\r
\r
- #region [ 発音1秒前のタイミングを算出 ]\r
+ #region [ 発音1秒前のタイミングを記録 ]\r
int n発音前余裕ms = 1000, n発音後余裕ms = 800;\r
{\r
int ch = pChip.nチャンネル番号 >> 4;\r
{\r
this.bチップがある.Bass = true;\r
}\r
- switch( nチャンネル番号 )\r
+ else if ( ( nチャンネル番号 == 0x04 ) || ( nチャンネル番号 == 0x07 ) ||\r
+ ( ( 0x55 <= nチャンネル番号 ) && ( nチャンネル番号 <= 0x59 ) ) || ( nチャンネル番号 == 0x60 ) )\r
+ {\r
+ this.bチップがある.BGA = true;\r
+ }\r
+ else if ( nチャンネル番号 == 0x54 )\r
+ {\r
+ this.bチップがある.Movie = true;\r
+ }\r
+\r
+ switch ( nチャンネル番号 )\r
{\r
case 0x18:\r
this.bチップがある.HHOpen = true;\r
using System.Runtime.InteropServices;\r
using System.Drawing;\r
using SlimDX.Direct3D9;\r
+using SlimDX;\r
using FDK;\r
\r
namespace DTXMania\r
{\r
if( ( this.stLayer[ i ].rBMP != null ) && ( this.stLayer[ i ].rBMP.tx画像 != null ) )\r
{\r
- this.stLayer[ i ].rBMP.tx画像.t2D描画( CDTXMania.app.Device, x + rectangle2.X, y + rectangle2.Y, rectangle );\r
+ this.stLayer[ i ].rBMP.tx画像.vc拡大縮小倍率 = new Vector3( Scale.X, Scale.Y, 1f );\r
+ //this.stLayer[ i ].rBMP.tx画像.vc拡大縮小倍率 = new Vector3( 2f, 2f, 1f );\r
+ this.stLayer[ i ].rBMP.tx画像.t2D描画(\r
+ CDTXMania.app.Device,\r
+ (x + rectangle2.X) * Scale.X,\r
+ (y + rectangle2.Y) * Scale.Y,\r
+ rectangle );\r
}\r
else if( ( this.stLayer[ i ].rBMPTEX != null ) && ( this.stLayer[ i ].rBMPTEX.tx画像 != null ) )\r
{\r
- this.stLayer[ i ].rBMPTEX.tx画像.t2D描画( CDTXMania.app.Device, x + rectangle2.X, y + rectangle2.Y, rectangle );\r
+ this.stLayer[ i ].rBMPTEX.tx画像.vc拡大縮小倍率 = new Vector3( Scale.X, Scale.Y, 1f );\r
+ //this.stLayer[ i ].rBMPTEX.tx画像.vc拡大縮小倍率 = new Vector3( 2f, 2f, 1f );\r
+ this.stLayer[ i ].rBMPTEX.tx画像.t2D描画(\r
+ CDTXMania.app.Device,\r
+ (x + rectangle2.X) * Scale.X,\r
+ (y + rectangle2.Y) * Scale.Y,\r
+ rectangle );\r
}\r
}\r
}\r
\r
protected enum EEvent { 非表示, 数値更新, 同一数値, ミス通知 }\r
protected enum EMode { 非表示中, 進行表示中, 残像表示中 }\r
- protected const int nギターコンボのCOMBO文字の高さ = 16;\r
- protected const int nギターコンボのCOMBO文字の幅 = 45;\r
- protected const int nギターコンボの高さ = 35;\r
- protected const int nギターコンボの幅 = 23;\r
- protected const int nギターコンボの文字間隔 = 1;\r
- protected const int nドラムコンボのCOMBO文字の高さ = 32;\r
- protected const int nドラムコンボのCOMBO文字の幅 = 90;\r
- protected const int nドラムコンボの高さ = 70;\r
- protected const int nドラムコンボの幅 = 45;\r
- protected const int nドラムコンボの文字間隔 = 2;\r
+ protected const int nギターコンボのCOMBO文字の高さ = (int) ( 16 * Scale.Y );\r
+ protected const int nギターコンボのCOMBO文字の幅 = (int) ( 45 * Scale.X );\r
+ protected const int nギターコンボの高さ = (int) ( 35 * Scale.Y );\r
+ protected const int nギターコンボの幅 = (int) ( 23 * Scale.X );\r
+ protected const int nギターコンボの文字間隔 = (int) ( 1 * Scale.X );\r
+ protected const int nドラムコンボのCOMBO文字の高さ = (int) ( 32 * Scale.Y );\r
+ protected const int nドラムコンボのCOMBO文字の幅 = (int) ( 90 * Scale.X );\r
+ protected const int nドラムコンボの高さ = (int) ( 70 * Scale.Y );\r
+ protected const int nドラムコンボの幅 = (int) ( 45 * Scale.X );\r
+ protected const int nドラムコンボの文字間隔 = (int) ( 2 * Scale.X );\r
protected int[] nジャンプ差分値 = new int[ 180 ];\r
protected CSTATUS status;\r
protected CTexture txCOMBOギター;\r
\r
// 180度分のジャンプY座標差分を取得。(0度: 0 → 90度:-15 → 180度: 0)\r
for( int i = 0; i < 180; i++ )\r
- this.nジャンプ差分値[ i ] = (int) ( -15.0 * Math.Sin( ( Math.PI * i ) / 180.0 ) );\r
+ this.nジャンプ差分値[ i ] = (int) ( -15.0 * Math.Sin( ( Math.PI * i ) / 180.0 ) * Scale.Y );\r
演奏判定ライン座標 = new C演奏判定ライン座標共通();\r
}\r
\r
//-----------------\r
const int n1桁ごとのジャンプの遅れ = 50; // 1桁につき 50 インデックス遅れる\r
\r
- int nX中央位置px = 187;\r
+ int nX中央位置px = (int) ( 187 * Scale.X );\r
switch( e表示位置 )\r
{\r
case Eドラムコンボ文字の表示位置.LEFT:\r
- nX中央位置px = 187;\r
+ nX中央位置px = (int) ( 187 * Scale.X );\r
break;\r
\r
case Eドラムコンボ文字の表示位置.CENTER:\r
- nX中央位置px = 320;\r
+ nX中央位置px = (int) ( 320 * Scale.X );\r
break;\r
\r
case Eドラムコンボ文字の表示位置.RIGHT:\r
- nX中央位置px = 485;\r
+ nX中央位置px = (int) ( 485 * Scale.X );\r
break;\r
}\r
- int nY上辺位置px = CDTXMania.ConfigIni.bReverse.Drums ? 350 : 60;\r
+ int nY上辺位置px = CDTXMania.ConfigIni.bReverse.Drums ? (int) ( 350 * Scale.Y ) : (int) ( 60 * Scale.Y );\r
int n数字とCOMBOを合わせた画像の全長px = ( ( nドラムコンボの幅 + nドラムコンボの文字間隔 ) * n桁数 ) + nドラムコンボのCOMBO文字の幅;\r
int x = ( nX中央位置px + ( n数字とCOMBOを合わせた画像の全長px / 2 ) ) - nドラムコンボのCOMBO文字の幅;\r
int y = ( nY上辺位置px + nドラムコンボの高さ ) - nドラムコンボのCOMBO文字の高さ;\r
y += this.nジャンプ差分値[ nJump ];\r
\r
if( this.txCOMBOドラム != null )\r
- this.txCOMBOドラム.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( 0, 140, 90, 32 ) ); // "COMBO" を表示。\r
+ this.txCOMBOドラム.t2D描画( CDTXMania.app.Device,\r
+ x, y,\r
+ new Rectangle( 0, (int) ( 140 * Scale.Y ), (int) ( 90 * Scale.X ), (int) ( 32 * Scale.Y ) ) ); // "COMBO" を表示。\r
\r
// COMBO値を1の位から順に表示。\r
\r
\r
if( this.txCOMBOドラム != null )\r
{\r
- this.txCOMBOドラム.t2D描画( CDTXMania.app.Device, x, y,\r
+ this.txCOMBOドラム.t2D描画( CDTXMania.app.Device,\r
+ x, y,\r
new Rectangle( ( n位の数[ i ] % 5 ) * nドラムコンボの幅, ( n位の数[ i ] / 5 ) * nドラムコンボの高さ, nドラムコンボの幅, nドラムコンボの高さ ) );\r
}\r
}\r
#endregion\r
#region [ "COMBO" 文字を表示。]\r
//-----------------\r
- int x = n表示中央X - ( (int) ( ( nギターコンボのCOMBO文字の幅 * f拡大率 ) / 2.0f ) );\r
- int y = n表示中央Y;\r
- \r
- if( this.txCOMBOギター != null )\r
- this.txCOMBOギター.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( 0, 70, 45, 16 ) );\r
+ int x = (int) ( n表示中央X * Scale.X ) - ( (int) ( ( nギターコンボのCOMBO文字の幅 * f拡大率 ) / 2.0f ) );\r
+ int y = (int) ( n表示中央Y * Scale.Y );\r
+\r
+ if ( this.txCOMBOギター != null )\r
+ this.txCOMBOギター.t2D描画(\r
+ CDTXMania.app.Device,\r
+ x,\r
+ y,\r
+ new Rectangle(\r
+ 0,\r
+ (int) ( 70 * Scale.Y ),\r
+ (int) ( 45 * Scale.X ),\r
+ (int) ( 16 * Scale.Y )\r
+ )\r
+ ); \r
//-----------------\r
#endregion\r
\r
+ //x = (int) ( n表示中央X * Scale.X ) + ( n全桁の合計幅 / 2 );\r
x = n表示中央X + ( n全桁の合計幅 / 2 );\r
- for( int i = 0; i < n桁数; i++ )\r
+ for ( int i = 0; i < n桁数; i++ )\r
{\r
#region [ 数字の拡大率を設定。]\r
//-----------------\r
#region [ 数字を1桁表示。]\r
//-----------------\r
x -= nギターコンボの幅 + nギターコンボの文字間隔;\r
+ //y = (int) ( n表示中央Y * Scale.Y ) - nギターコンボの高さ;\r
y = n表示中央Y - nギターコンボの高さ;\r
\r
if( this.txCOMBOギター != null )\r
{\r
if ( !base.b活性化してない )\r
{\r
- this.txWailingBonus = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlay wailing bonus.png" ) );\r
+ this.txWailingBonus = CDTXMania.tテクスチャの生成Af( CSkin.Path( @"Graphics\ScreenPlay wailing bonus.png" ), false );\r
base.OnManagedリソースの作成();\r
}\r
}\r
#region [ private ]\r
//-----------------\r
protected CCounter[,] ct進行用 = new CCounter[ 3, 4 ];\r
- protected CTexture txWailingBonus;\r
+ protected CTextureAf txWailingBonus;\r
//-----------------\r
#endregion\r
}\r
if( this.ct進行.n現在の値 < 100 )\r
{\r
int x = (int) ( 320.0 * Math.Cos( ( Math.PI / 2 * this.ct進行.n現在の値 ) / 100.0 ) );\r
- if( ( x != 320 ) && ( this.txStageFailed != null ) )\r
+ if ( ( x != 320 ) && ( this.txStageFailed != null ) )\r
{\r
- this.txStageFailed.t2D描画( CDTXMania.app.Device, 0, 0, new Rectangle( x, 0, 320 - x, 480 ) );\r
- this.txStageFailed.t2D描画( CDTXMania.app.Device, 320 + x, 0, new Rectangle( 320, 0, 320 - x, 480 ) );\r
+ this.txStageFailed.t2D描画( CDTXMania.app.Device,\r
+ 0, 0,\r
+ new Rectangle( (int) ( x * Scale.X ), 0, (int) ( ( 320 - x ) * Scale.X ), (int) ( 480 * Scale.Y ) ) );\r
+ this.txStageFailed.t2D描画( CDTXMania.app.Device,\r
+ (int) ( ( 320 + x ) * Scale.X ), 0,\r
+ new Rectangle( (int) ( 320 * Scale.X ), 0, (int) ( ( 320 - x ) * Scale.X ), (int) ( 480 * Scale.Y ) ) );\r
}\r
}\r
else\r
int y = CDTXMania.Random.Next( 5 ) - 2;\r
if( this.txStageFailed != null )\r
{\r
- this.txStageFailed.t2D描画( CDTXMania.app.Device, num2, y );\r
+ this.txStageFailed.t2D描画( CDTXMania.app.Device, num2 * Scale.X, y * Scale.Y );\r
}\r
}\r
if( !this.b効果音再生済み )\r
if( ( this.ct進行[ j ].n現在の経過時間ms != -1 ) && ( this.tx火花[ j % 3 ] != null ) )\r
{\r
float scale = (float) ( 3.0 * Math.Cos( ( Math.PI * ( 90.0 - ( 90.0 * ( ( (double) this.ct進行[ j ].n現在の値 ) / 56.0 ) ) ) ) / 180.0 ) );\r
- int x = this.pt中央位置[ j ].X - ( (int) ( ( this.tx火花[ j % 3 ].sz画像サイズ.Width * scale ) / 2f ) );\r
- int y = this.pt中央位置[ j ].Y - ( (int) ( ( this.tx火花[ j % 3 ].sz画像サイズ.Height * scale ) / 2f ) );\r
+ int x = (int) ( this.pt中央位置[ j ].X ) - ( (int) ( ( this.tx火花[ j % 3 ].sz画像サイズ.Width * scale ) / 2f ) );\r
+ int y = (int) ( this.pt中央位置[ j ].Y ) - ( (int) ( ( this.tx火花[ j % 3 ].sz画像サイズ.Height * scale ) / 2f ) );\r
this.tx火花[ j % 3 ].n透明度 = ( this.ct進行[ j ].n現在の値 < 0x1c ) ? 0xff : ( 0xff - ( (int) ( 255.0 * Math.Cos( ( Math.PI * ( 90.0 - ( 90.0 * ( ( (double) ( this.ct進行[ j ].n現在の値 - 0x1c ) ) / 28.0 ) ) ) ) / 180.0 ) ) ) );\r
this.tx火花[ j % 3 ].vc拡大縮小倍率 = new Vector3( scale, scale, 1f );\r
\r
Trace.TraceError( "パネル文字列テクスチャの生成に失敗しました。" );\r
this.txPanel = null;\r
}\r
- this.ct進行用 = new CCounter( -278, this.n文字列の長さdot / 2, 8, CDTXMania.Timer );\r
+ this.ct進行用 = new CCounter( (int) ( -278 * Scale.X ), this.n文字列の長さdot / 2, unchecked( (int) ( 8.0f / Scale.X ) ), CDTXMania.Timer );\r
}\r
this.Start();\r
}\r
\r
public override void On活性化()\r
{\r
- this.ft表示用フォント = new Font( "MS PGothic", 48f, FontStyle.Italic | FontStyle.Bold, GraphicsUnit.Pixel );\r
+ this.ft表示用フォント = new Font( "MS PGothic", 48f * Scale.Y, FontStyle.Italic | FontStyle.Bold, GraphicsUnit.Pixel );\r
this.n文字列の長さdot = 0;\r
this.txPanel = null;\r
this.ct進行用 = new CCounter();\r
return 0;\r
}\r
float num = this.txPanel.vc拡大縮小倍率.X;\r
- Rectangle rectangle = new Rectangle( (int) ( ( (float) this.ct進行用.n現在の値 ) / num ), 0, (int) ( 278f / num ), (int) this.ft表示用フォント.Size );\r
- if( rectangle.X < 0 )\r
+ Rectangle rectangle = new Rectangle(\r
+ (int) ( ( (float) this.ct進行用.n現在の値 ) / num ),\r
+ 0,\r
+ (int) ( 278f / num * Scale.X ),\r
+ (int) this.ft表示用フォント.Size\r
+ );\r
+ if ( rectangle.X < 0 )\r
{\r
- x -= (int) ( rectangle.X * num );\r
+ x -= (int) ( rectangle.X * num / Scale.X );\r
rectangle.Width += rectangle.X;\r
rectangle.X = 0;\r
}\r
{\r
rectangle.Width -= rectangle.Right - this.n文字列の長さdot;\r
}\r
- this.txPanel.t2D描画( CDTXMania.app.Device, x, y, rectangle );\r
+ this.txPanel.t2D描画( CDTXMania.app.Device, x * Scale.X, y * Scale.Y, rectangle );\r
}\r
return 0;\r
}\r
{\r
this.st判定文字列 = new ST判定文字列[ 7 ];\r
Rectangle[] r = new Rectangle[] {\r
- new Rectangle( 0, 0, 0x80, 0x2a ), // Perfect\r
- new Rectangle( 0, 0x2b, 0x80, 0x2a ), // Great\r
- new Rectangle( 0, 0x56, 0x80, 0x2a ), // Good\r
- new Rectangle( 0, 0, 0x80, 0x2a ), // Poor\r
- new Rectangle( 0, 0x2b, 0x80, 0x2a ), // Miss\r
- new Rectangle( 0, 0x56, 0x80, 0x2a ), // Bad\r
- new Rectangle( 0, 0, 0x80, 0x2a ) // Auto\r
+ new Rectangle( 0, 256 / 3 * 0, 256, 256 / 3 ), // Perfect\r
+ new Rectangle( 0, 256 / 3 * 1, 256, 256 / 3 ), // Great\r
+ new Rectangle( 0, 256 / 3 * 2, 256, 256 / 3 ), // Good\r
+ new Rectangle( 0, 256 / 3 * 0, 256, 256 / 3 ), // Poor\r
+ new Rectangle( 0, 256 / 3 * 1, 256, 256 / 3 ), // Miss\r
+ new Rectangle( 0, 256 / 3 * 2, 256, 256 / 3 ), // Bad\r
+ new Rectangle( 0, 256 / 3 * 0, 256, 256 / 3 ) // Auto\r
+\r
};\r
for ( int i = 0; i < 7; i++ )\r
{\r
}\r
\r
this.stLag数値 = new STlag数値[ 12 * 2 ]; // #25370 2011.2.1 yyagi\r
+\r
for ( int i = 0; i < 12; i++ )\r
{\r
- this.stLag数値[ i ].rc = new Rectangle( ( i % 4 ) * 15 , ( i / 4 ) * 19 , 15, 19 ); // plus numbers\r
- this.stLag数値[ i + 12 ].rc = new Rectangle( ( i % 4 ) * 15 + 64, ( i / 4 ) * 19 + 64, 15, 19 ); // minus numbers\r
+ this.stLag数値[ i ].rc = new Rectangle(\r
+ (int) ( ( i % 4 ) * 15 * Scale.X ),\r
+ (int) ( ( i / 4 ) * 19 * Scale.Y ),\r
+ (int) ( 15 * Scale.X ),\r
+ (int) ( 19 * Scale.Y )\r
+ ); // plus numbers\r
+ this.stLag数値[ i + 12 ].rc = new Rectangle(\r
+ (int) ( ( ( i % 4 ) * 15 + 64 ) * Scale.X ),\r
+ (int) ( ( ( i / 4 ) * 19 + 64 ) * Scale.Y ),\r
+ (int) ( 15 * Scale.X ),\r
+ (int) ( 19 * Scale.Y )\r
+ ); // minus numbers\r
}\r
base.b活性化してない = true;\r
}\r
{\r
if ( ( ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED ) && ( base.eフェーズID != CStage.Eフェーズ.演奏_STAGE_FAILED_フェードアウト ) ) && ( !CDTXMania.ConfigIni.bストイックモード && CDTXMania.ConfigIni.bAVI有効 ) )\r
{\r
- this.actAVI.t進行描画( x, y );\r
+ this.actAVI.t進行描画( (int) ( x * Scale.X ), (int) ( y * Scale.Y ) );\r
}\r
}\r
protected abstract void t進行描画・BGA();\r
//double speed = 264.0; // BPM150の時の1小節の長さ[dot]\r
const double speed = 234.0; // BPM150の時の1小節の長さ[dot]\r
\r
- double ScrollSpeedDrums = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums + 1.0 ) * 0.5 * 37.5 * speed / 60000.0;\r
+ double ScrollSpeedDrums = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Drums + 1.0 ) * 0.5 * 37.5 * speed / 60000.0;\r
double ScrollSpeedGuitar = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Guitar + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
- double ScrollSpeedBass = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Bass + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
+ double ScrollSpeedBass = ( this.act譜面スクロール速度.db現在の譜面スクロール速度.Bass + 1.0 ) * 0.5 * 0.5 * 37.5 * speed / 60000.0;\r
\r
CDTX dTX = CDTXMania.DTX;\r
CConfigIni configIni = CDTXMania.ConfigIni;\r
}\r
if ( ( ePlayMode == E楽器パート.DRUMS ) && ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 && ( this.txチップ != null ) )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bf, 0x128, 1 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device,\r
+ 0x23 * Scale.X,\r
+ configIni.bReverse.Drums ?\r
+ (int) ( ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) * Scale.Y ) :\r
+ (int) ( ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ) * Scale.Y ),\r
+ new Rectangle( 0, (int) ( 0x1bf * Scale.Y ), (int) ( 0x128 * Scale.X ), (int) ( 1 * Scale.Y ) )\r
+ );\r
}\r
break;\r
#endregion\r
pChip.bHit = true;\r
if ( configIni.bAVI有効 )\r
{\r
+ if ( CDTXMania.DTX.bチップがある.BGA )\r
+ {\r
+ this.actAVI.bHasBGA = true;\r
+ }\r
switch ( pChip.eAVI種別 )\r
{\r
case EAVI種別.AVI:\r
- if ( pChip.rAVI != null )\r
{\r
- this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, 278, 355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms );\r
+ int startWidth = ( CDTXMania.DTX.bチップがある.BGA ) ? 278 : SampleFramework.GameWindowSize.Width;\r
+ int startHeight = ( CDTXMania.DTX.bチップがある.BGA ) ? 355 : SampleFramework.GameWindowSize.Height;\r
+ this.actAVI.Start( pChip.nチャンネル番号, pChip.rAVI, startWidth, startHeight, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, pChip.n発声時刻ms );\r
}\r
break;\r
\r
protected abstract void t進行描画・チップ・ギターベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst );\r
\r
protected void t進行描画・チップ・ギターベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst,\r
- int barYNormal, int barYReverse, int showRangeY0, int showRangeY1, int openXg, int openXb,\r
- int rectOpenOffsetX, int rectOpenOffsetY, int openChipWidth, int chipHeight,\r
- int chipWidth, int guitarNormalX, int guitarLeftyX, int bassNormalX, int bassLeftyX, int drawDeltaX, int chipTexDeltaX )\r
+ int barYNormal, int barYReverse,\r
+ int showRangeY0, int showRangeY1, int openXg, int openXb,\r
+ int rectOpenOffsetX, int rectOpenOffsetY, int openChipWidth, int chipHeight, int chipWidth,\r
+ int guitarNormalX, int guitarLeftyX, int bassNormalX, int bassLeftyX, int drawDeltaX, int chipTexDeltaX )\r
{\r
int instIndex = (int) inst;\r
if ( configIni.bGuitar有効 )\r
{\r
this.txチップ.n透明度 = pChip.n透明度;\r
}\r
- int y = configIni.bReverse[ instIndex ] ? ( barYReverse - pChip.nバーからの距離dot[ instIndex ] ) : ( barYNormal + pChip.nバーからの距離dot[ instIndex ] );\r
- int n小節線消失距離dot = configIni.bReverse[ instIndex ] ? -100 : ( configIni.e判定位置[ instIndex ] == E判定位置.標準 ) ? -36 : -25;\r
+ int y = configIni.bReverse[ instIndex ] ?\r
+ (int) ( barYReverse - pChip.nバーからの距離dot[ instIndex ] * Scale.Y ) :\r
+ (int) ( barYNormal + pChip.nバーからの距離dot[ instIndex ] * Scale.Y );\r
+ int n小節線消失距離dot = configIni.bReverse[ instIndex ] ?\r
+ (int) ( -100 * Scale.Y ) :\r
+ ( configIni.e判定位置[ instIndex ] == E判定位置.標準 ) ? (int) ( -36 * Scale.Y ) : (int) ( -25 * Scale.Y );\r
if ( configIni.bReverse[ instIndex ] )\r
{\r
//showRangeY1 = barYReverse - n小節線消失距離dot;\r
if ( this.txチップ != null )\r
{\r
int nアニメカウンタ現在の値 = this.ctチップ模様アニメ[ instIndex ].n現在の値;\r
+ #region [ OPENチップの描画 ]\r
if ( pChip.nチャンネル番号 == OPEN )\r
{\r
int xo = ( inst == E楽器パート.GUITAR ) ? openXg : openXb;\r
- this.txチップ.t2D描画( CDTXMania.app.Device, xo, y - 2,\r
- new Rectangle( rectOpenOffsetX, rectOpenOffsetY + ( ( nアニメカウンタ現在の値 % 5 ) * chipHeight ),\r
- openChipWidth, chipHeight ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device,\r
+ xo * Scale.X,\r
+ y - ( 2 * Scale.Y ),\r
+ new Rectangle(\r
+ (int) ( rectOpenOffsetX * Scale.X ),\r
+ (int) ( rectOpenOffsetY * Scale.Y ) + (int) ( ( ( nアニメカウンタ現在の値 % 5 ) * chipHeight * Scale.Y ) ),\r
+ (int) ( openChipWidth * Scale.X ),\r
+ (int) ( chipHeight * Scale.Y )\r
+ )\r
+ );\r
}\r
- Rectangle rc = new Rectangle( rectOpenOffsetX, nアニメカウンタ現在の値 * chipHeight, chipWidth, chipHeight );\r
+ #endregion\r
+ Rectangle rc = new Rectangle(\r
+ (int) ( rectOpenOffsetX * Scale.X ),\r
+ (int) ( nアニメカウンタ現在の値 * chipHeight * Scale.Y ),\r
+ (int) ( chipWidth * Scale.X ),\r
+ (int) ( chipHeight * Scale.Y )\r
+ );\r
+ #region [ RGBチップのX座標初期化 ]\r
int x;\r
if ( inst == E楽器パート.GUITAR )\r
{\r
x = ( configIni.bLeft.Bass ) ? bassLeftyX : bassNormalX;\r
}\r
int deltaX = ( configIni.bLeft[ instIndex ] ) ? -drawDeltaX : +drawDeltaX;\r
-\r
-//Trace.TraceInformation( "chip={0:x2}, E楽器パート={1}, x={2}", pChip.nチャンネル番号, inst, x );\r
+ #endregion\r
+ //Trace.TraceInformation( "chip={0:x2}, E楽器パート={1}, x={2}", pChip.nチャンネル番号, inst, x );\r
+ #region [ Rチップ描画 ]\r
if ( bChipHasR )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - chipHeight / 2, rc );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device,\r
+ x * Scale.X,\r
+ y - ( chipHeight / 2 ) * Scale.Y,\r
+ rc\r
+ );\r
}\r
- rc.X += chipTexDeltaX;\r
+ #endregion\r
+ #region [ Gチップ描画 ]\r
+ rc.X += (int) ( chipTexDeltaX * Scale.X );\r
x += deltaX;\r
if ( bChipHasG )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - chipHeight / 2, rc );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device,\r
+ x * Scale.X,\r
+ y - ( chipHeight / 2 ) * Scale.Y,\r
+ rc\r
+ );\r
}\r
- rc.X += chipTexDeltaX;\r
+ #endregion\r
+ #region [ Bチップ描画 ]\r
+ rc.X += (int) ( chipTexDeltaX * Scale.X );\r
x += deltaX;\r
if ( bChipHasB )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - chipHeight / 2, rc );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device,\r
+ x * Scale.X,\r
+ y - ( chipHeight / 2 ) * Scale.Y,\r
+ rc\r
+ );\r
}\r
+ #endregion\r
}\r
}\r
}\r
{\r
if ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
{\r
- int y = CDTXMania.ConfigIni.bReverse.Drums ? 53 - 演奏判定ライン座標.nJudgeLinePosY_delta.Drums : 419 + 演奏判定ライン座標.nJudgeLinePosY_delta.Drums;\r
+ int y = CDTXMania.ConfigIni.bReverse.Drums ? (int) ( 53 * Scale.Y ) - 演奏判定ライン座標.nJudgeLinePosY_delta.Drums : (int) ( 419 * Scale.Y ) + 演奏判定ライン座標.nJudgeLinePosY_delta.Drums;\r
// #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
if ( this.txヒットバー != null )\r
{\r
for ( int i = 32; i < 335; i += 8 )\r
{\r
- this.txヒットバー.t2D描画( CDTXMania.app.Device, i, y, new Rectangle( 0, 0, ( ( i + 8 ) >= 335 ) ? ( 7 - ( ( i + 8 ) - 335 ) ) : 8, 8 ) );\r
+ this.txヒットバー.t2D描画( CDTXMania.app.Device,\r
+ i * Scale.X,\r
+ y,\r
+ new Rectangle( 0, 0, ( ( i + 8 ) >= 335 ) ? (int) ( ( 7 - ( ( i + 8 ) - 335 ) ) * Scale.X ) : (int) ( 8 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
}\r
}\r
}\r
{\r
try\r
{\r
- Bitmap bitmap2 = null;\r
- bitmap2 = new Bitmap( bgfilename );\r
- if ( ( bitmap2.Size.Width == 0 ) && ( bitmap2.Size.Height == 0 ) )\r
+ Bitmap bitmap1 = null;\r
+ bitmap1 = new Bitmap( bgfilename );\r
+ if ( ( bitmap1.Size.Width == 0 ) && ( bitmap1.Size.Height == 0 ) )\r
{\r
this.tx背景 = null;\r
return;\r
}\r
- Bitmap bitmap3 = new Bitmap(SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height);\r
- Graphics graphics = Graphics.FromImage( bitmap3 );\r
+\r
+ int newWidth = (int) ( bitmap1.Width * Scale.X );\r
+ int newHeight = (int) ( bitmap1.Height * Scale.Y );\r
+ Bitmap bitmap2 = new Bitmap( newWidth, newHeight );\r
+ Graphics graphic2 = Graphics.FromImage( bitmap2 );\r
+ graphic2.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;\r
+ graphic2.DrawImage( bitmap1, 0, 0, newWidth, newHeight );\r
+ graphic2.Dispose();\r
+ bitmap1.Dispose();\r
+\r
+\r
+ Bitmap bitmap3 = new Bitmap( SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height );\r
+ Graphics graphics3 = Graphics.FromImage( bitmap3 );\r
for ( int i = 0; i < SampleFramework.GameWindowSize.Height; i += bitmap2.Size.Height )\r
{\r
for ( int j = 0; j < SampleFramework.GameWindowSize.Width; j += bitmap2.Size.Width )\r
{\r
- graphics.DrawImage( bitmap2, j, i, bitmap2.Width, bitmap2.Height );\r
+ graphics3.DrawImage( bitmap2, j, i, bitmap2.Width, bitmap2.Height );\r
}\r
}\r
- graphics.Dispose();\r
+ graphics3.Dispose(); \r
+ \r
bitmap2.Dispose();\r
image = new Bitmap( CSkin.Path( DefaultBgFilename ) );\r
- graphics = Graphics.FromImage( image );\r
+ graphics3 = Graphics.FromImage( image );\r
ColorMatrix matrix2 = new ColorMatrix();\r
matrix2.Matrix00 = 1f;\r
matrix2.Matrix11 = 1f;\r
ColorMatrix newColorMatrix = matrix2;\r
ImageAttributes imageAttr = new ImageAttributes();\r
imageAttr.SetColorMatrix( newColorMatrix );\r
- graphics.DrawImage( bitmap3, new Rectangle( 0, 0, SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height ), 0, 0, SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height, GraphicsUnit.Pixel, imageAttr );\r
+ graphics3.DrawImage( bitmap3, new Rectangle( 0, 0, SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height ), 0, 0, SampleFramework.GameWindowSize.Width, SampleFramework.GameWindowSize.Height, GraphicsUnit.Pixel, imageAttr );\r
imageAttr.Dispose();\r
- graphics.DrawImage( bitmap3, bgrect, bgrect.X, bgrect.Y, bgrect.Width, bgrect.Height, GraphicsUnit.Pixel );\r
- graphics.Dispose();\r
+ graphics3.DrawImage( bitmap3, bgrect, bgrect.X, bgrect.Y, bgrect.Width, bgrect.Height, GraphicsUnit.Pixel );\r
+ graphics3.Dispose();\r
bitmap3.Dispose();\r
flag = false;\r
}\r
try\r
{\r
this.tx背景 = new CTexture( CDTXMania.app.Device, image, CDTXMania.TextureFormat );\r
+ this.tx背景.n透明度 = CDTXMania.ConfigIni.n背景の透過度; // 背景動画用\r
}\r
catch ( CTextureCreateFailedException )\r
{\r
#region [ 判定ライン座標の初期化]\r
// Normal, Drums画面, 判定ライン\r
n判定ラインY座標元データ[ 0, 0, 0 ].Drums = 0; //未使用\r
- n判定ラインY座標元データ[ 0, 0, 0 ].Guitar = 95;\r
- n判定ラインY座標元データ[ 0, 0, 0 ].Bass = 95;\r
+ n判定ラインY座標元データ[ 0, 0, 0 ].Guitar = (int)(95 * Scale.Y);\r
+ n判定ラインY座標元データ[ 0, 0, 0 ].Bass = (int)(95 * Scale.Y);\r
// Reverse, Drums画面, 判定ライン\r
n判定ラインY座標元データ[ 1, 0, 0 ].Drums = 0; //未使用\r
- n判定ラインY座標元データ[ 1, 0, 0 ].Guitar = 374;\r
- n判定ラインY座標元データ[ 1, 0, 0 ].Bass = 374;\r
+ n判定ラインY座標元データ[ 1, 0, 0 ].Guitar = (int)(374 * Scale.Y);\r
+ n判定ラインY座標元データ[ 1, 0, 0 ].Bass = (int)(374 * Scale.Y);\r
// Normal, Drums画面, Wailing枠\r
n判定ラインY座標元データ[ 0, 0, 1 ].Drums = 0; //未使用\r
- n判定ラインY座標元データ[ 0, 0, 1 ].Guitar = 69;\r
- n判定ラインY座標元データ[ 0, 0, 1 ].Bass = 69;\r
+ n判定ラインY座標元データ[ 0, 0, 1 ].Guitar = (int)(69 * Scale.Y);\r
+ n判定ラインY座標元データ[ 0, 0, 1 ].Bass = (int)(69 * Scale.Y);\r
// Reverse, Drums画面, Wailing枠\r
n判定ラインY座標元データ[ 1, 0, 1 ].Drums = 0; //未使用\r
- n判定ラインY座標元データ[ 1, 0, 1 ].Guitar = 350;\r
- n判定ラインY座標元データ[ 1, 0, 1 ].Bass = 350;\r
+ n判定ラインY座標元データ[ 1, 0, 1 ].Guitar = (int)(350 * Scale.Y);\r
+ n判定ラインY座標元データ[ 1, 0, 1 ].Bass = (int)(350 * Scale.Y);\r
\r
// Normal, GR画面, 判定ライン\r
n判定ラインY座標元データ[ 0, 1, 0 ].Drums = 0; //未使用\r
- n判定ラインY座標元データ[ 0, 1, 0 ].Guitar = 40;\r
- n判定ラインY座標元データ[ 0, 1, 0 ].Bass = 40;\r
+ n判定ラインY座標元データ[ 0, 1, 0 ].Guitar = (int)(40 * Scale.Y);\r
+ n判定ラインY座標元データ[ 0, 1, 0 ].Bass = (int)(40 * Scale.Y);\r
// Reverse, GR画面, 判定ライン\r
n判定ラインY座標元データ[ 1, 1, 0 ].Drums = 0; //未使用\r
- n判定ラインY座標元データ[ 1, 1, 0 ].Guitar = 369;\r
- n判定ラインY座標元データ[ 1, 1, 0 ].Bass = 369;\r
+ n判定ラインY座標元データ[ 1, 1, 0 ].Guitar = (int)(369 * Scale.Y);\r
+ n判定ラインY座標元データ[ 1, 1, 0 ].Bass = (int)(369 * Scale.Y);\r
// Normal, GR画面, Wailing枠\r
n判定ラインY座標元データ[ 0, 1, 1 ].Drums = 0; //未使用\r
- n判定ラインY座標元データ[ 0, 1, 1 ].Guitar = 11;\r
- n判定ラインY座標元データ[ 0, 1, 1 ].Bass = 11;\r
+ n判定ラインY座標元データ[ 0, 1, 1 ].Guitar = (int)(11 * Scale.Y);\r
+ n判定ラインY座標元データ[ 0, 1, 1 ].Bass = (int)(11 * Scale.Y);\r
// Reverse, GR画面, Wailing枠\r
n判定ラインY座標元データ[ 1, 1, 1 ].Drums = 0; //未使用\r
- n判定ラインY座標元データ[ 1, 1, 1 ].Guitar = 340;\r
- n判定ラインY座標元データ[ 1, 1, 1 ].Bass = 340;\r
+ n判定ラインY座標元データ[ 1, 1, 1 ].Guitar = (int)(340 * Scale.Y);\r
+ n判定ラインY座標元データ[ 1, 1, 1 ].Bass = (int)(340 * Scale.Y);\r
#endregion\r
\r
n演奏RGBボタンY座標元データ = new STDGBVALUE<int>[ 2, 2, 2 ];\r
#region [ RGBボタン座標の初期化]\r
// Normal, Drums画面, RGBボタン\r
n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Drums = 0; // 未使用\r
- n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Guitar = 57;\r
- n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Bass = 57;\r
+ n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Guitar = (int)(57 * Scale.Y);\r
+ n演奏RGBボタンY座標元データ[ 0, 0, 0 ].Bass = (int)(57 * Scale.Y);\r
// Reverse, Drums画面, RGBボタン\r
n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Drums = 0; // 未使用\r
- n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Guitar = 57;\r
- n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Bass = 57;\r
+ n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Guitar = (int)(57 * Scale.Y);\r
+ n演奏RGBボタンY座標元データ[ 1, 0, 0 ].Bass = (int)(57 * Scale.Y);\r
// Normal, Drums画面, RGBボタン(Vシリーズ)\r
n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Drums = 0; // 未使用\r
- n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Guitar = 107;\r
- n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Bass = 107;\r
+ n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Guitar = (int)(107 * Scale.Y);\r
+ n演奏RGBボタンY座標元データ[ 0, 0, 1 ].Bass = (int)(107 * Scale.Y);\r
// Reverse, Drums画面, RGBボタン(Vシリーズ)\r
n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Drums = 0; // 未使用\r
- n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Guitar = 107;\r
- n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Bass = 107;\r
+ n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Guitar = (int)(107 * Scale.Y);\r
+ n演奏RGBボタンY座標元データ[ 1, 0, 1 ].Bass = (int)(107 * Scale.Y);\r
\r
// Normal, GR画面, RGBボタン\r
n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Drums = 0; // 未使用\r
- n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Guitar = 3;\r
- n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Bass = 3;\r
+ n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Guitar = (int)(3 * Scale.Y);\r
+ n演奏RGBボタンY座標元データ[ 0, 1, 0 ].Bass = (int)(3 * Scale.Y);\r
// Reverse, GR画面, RGBボタン\r
n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Drums = 0; // 未使用\r
- n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Guitar = 3;\r
- n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Bass = 3;\r
+ n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Guitar = (int)(3 * Scale.Y);\r
+ n演奏RGBボタンY座標元データ[ 1, 1, 0 ].Bass = (int)(3 * Scale.Y);\r
// Normal, GR画面, RGBボタン(Vシリーズ)\r
n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Drums = 0; // 未使用\r
- n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Guitar = 44;\r
- n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Bass = 44;\r
+ n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Guitar = (int)(44 * Scale.Y);\r
+ n演奏RGBボタンY座標元データ[ 0, 1, 1 ].Bass = (int)(44 * Scale.Y);\r
// Reverse, GR画面, RGBボタン(Vシリーズ)\r
n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Drums = 0; // 未使用\r
- n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Guitar = 44;\r
- n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Bass = 44;\r
+ n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Guitar = (int)(44 * Scale.Y);\r
+ n演奏RGBボタンY座標元データ[ 1, 1, 1 ].Bass = (int) ( 44 * Scale.Y );\r
#endregion\r
\r
n判定位置 = new STDGBVALUE<E判定位置>();\r
/// <returns></returns>\r
public int n判定ラインY座標( E楽器パート eInst, bool bGRmode, bool bReverse )\r
{\r
- return n判定ラインY座標( eInst, bGRmode, bReverse, false );\r
+ return n判定ラインY座標( eInst, bGRmode, bReverse, false, false );\r
}\r
\r
public int n判定ラインY座標( E楽器パート eInst, bool bGRmode, bool bReverse, bool bWailingFrame )\r
int ret = this.n判定ラインY座標元データ[ nReverse, nGRmode, nWailing ][ nInst ]; // 補正無しの値\r
if ( bReverse )\r
{\r
- if ( n判定位置[ nInst ] == E判定位置.Lower ) ret += 13;\r
+ if ( n判定位置[ nInst ] == E判定位置.Lower ) ret += (int)(13 * Scale.Y);\r
if ( b補正あり ) ret += nJudgeLinePosY_delta[ nInst ];\r
}\r
else\r
{\r
- if ( n判定位置[ nInst ] == E判定位置.Lower ) ret += 52;\r
+ if ( n判定位置[ nInst ] == E判定位置.Lower ) ret += (int) ( 52 * Scale.Y );\r
if ( b補正あり ) ret -= nJudgeLinePosY_delta[ nInst ];\r
}\r
return ret;\r
{\r
int yG = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, bReverse[ (int) E楽器パート.GUITAR ], true );\r
int yB = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, true, bReverse[ (int) E楽器パート.BASS ], true );\r
- base.t進行描画・Wailing枠( 0x8b, 0x251,\r
+ base.t進行描画・Wailing枠(\r
+ (int) ( 0x8b * Scale.X ),\r
+ (int) ( 0x251 * Scale.X ),\r
yG,\r
yB\r
//CDTXMania.ConfigIni.bReverse.Guitar ? 340 : 11,\r
base.t進行描画・チップ・ギターベース( configIni, ref dTX, ref pChip, inst,\r
演奏判定ライン座標.n判定ラインY座標( inst, true, false ), // 40\r
演奏判定ライン座標.n判定ラインY座標( inst, true, true ), // 369\r
- 0, 409, // Y軸表示範囲\r
- 26, 480, // openチップのX座標(Gt, Bs)\r
- 0, 192, 103, 8, // オープンチップの x, y, w, h\r
- 32, 26, 98, 480, 552, 36, 32\r
+ (int) ( 0 * Scale.Y ), (int) ( 409 * Scale.Y ), // Y軸表示範囲\r
+ 26, 480, // openチップのX座標(Gt, Bs)\r
+ 0, 192, 103, 8, 32, // オープンチップregionの x, y, w, h, 通常チップのw\r
+ 26, 98, 480, 552, // GtのX, Gt左利きのX, BsのX, Bs左利きのX,\r
+ 36, 32 // 描画のX座標間隔, テクスチャのX座標間隔\r
);\r
}\r
#if false\r
{\r
if( !base.b活性化してない )\r
{\r
- this.txDANGER = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayDrums danger.png" ) );\r
+ this.txDANGER = CDTXMania.tテクスチャの生成Af( CSkin.Path( @"Graphics\ScreenPlayDrums danger.png" ), false );\r
base.OnManagedリソースの作成();\r
}\r
}\r
{\r
if( this.txDANGER != null )\r
{\r
- this.txDANGER.t2D描画( CDTXMania.app.Device, 0x26, ( i * 0x80 ) + num2, this.rc領域[ 0 ] );\r
- this.txDANGER.t2D描画( CDTXMania.app.Device, 0x26, ( ( i * 0x80 ) + num2 ) + 0x40, this.rc領域[ 1 ] );\r
- this.txDANGER.t2D描画( CDTXMania.app.Device, 0x12a, ( i * 0x80 ) + num2, this.rc領域[ 0 ] );\r
- this.txDANGER.t2D描画( CDTXMania.app.Device, 0x12a, ( ( i * 0x80 ) + num2 ) + 0x40, this.rc領域[ 1 ] );\r
+ this.txDANGER.t2D描画( CDTXMania.app.Device, 0x26 * Scale.X, ( ( i * 0x80 ) + num2 ) * Scale.Y );\r
+ //this.txDANGER.t2D描画( CDTXMania.app.Device, 0x26 * Scale.X, ( ( ( i * 0x80 ) + num2 ) + 0x40 ) * Scale.Y, this.rc領域[ 1 ] );\r
+ this.txDANGER.t2D描画( CDTXMania.app.Device, 0x12a * Scale.X, ( ( i * 0x80 ) + num2 ) * Scale.Y );\r
+ //this.txDANGER.t2D描画( CDTXMania.app.Device, 0x12a * Scale.X, ( ( ( i * 0x80 ) + num2 ) + 0x40 ) * Scale.Y, this.rc領域[ 1 ] );\r
}\r
}\r
}\r
//private CCounter ct透明度用;\r
// private const int n右位置 = 0x12a;\r
// private const int n左位置 = 0x26;\r
- private readonly Rectangle[] rc領域 = new Rectangle[] { new Rectangle( 0, 0, 0x20, 0x40 ), new Rectangle( 0x20, 0, 0x20, 0x40 ) };\r
- private CTexture txDANGER;\r
+ //private readonly Rectangle[] rc領域 = new Rectangle[] {\r
+ // new Rectangle( 0, 0, (int)(0x20 * Scale.X), (int)(0x40 * Scale.Y) ),\r
+ // new Rectangle( (int)(0x20 * Scale.X), (int)(0 * Scale.Y), (int)(0x20 * Scale.X), (int)(0x40 * Scale.Y) )\r
+ //};\r
+ private CTextureAf txDANGER;\r
+\r
//-----------------\r
#endregion\r
}\r
for( int j = 0; j < 3; j++ )\r
{\r
int index = CDTXMania.ConfigIni.bLeft.Guitar ? ( 2 - j ) : j;\r
- Rectangle rectangle = new Rectangle( index * 0x18, 0, 0x18, 0x20 );\r
- if( base.b押下状態[ index ] )\r
+ Rectangle rectangle = new Rectangle(\r
+ (int) ( index * 0x18 * Scale.X ),\r
+ 0,\r
+ (int) ( 0x18 * Scale.X ),\r
+ (int) ( 0x20 * Scale.Y )\r
+ );\r
+ if ( base.b押下状態[ index ] )\r
{\r
- rectangle.Y += 0x20;\r
+ rectangle.Y += (int) ( 0x20 * Scale.Y );\r
}\r
if( base.txRGB != null )\r
{\r
- int y = 演奏判定ライン座標.n演奏RGBボタンY座標( E楽器パート.GUITAR, false, CDTXMania.ConfigIni.bReverse.Guitar );\r
// int y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, CDTXMania.ConfigIni.bReverse.Guitar, false, false );\r
- base.txRGB.t2D描画( CDTXMania.app.Device, 0x1fd + ( j * 0x1a ), y, rectangle );\r
//base.txRGB.t2D描画( CDTXMania.app.Device, 0x1fd + ( j * 0x1a ), 0x39, rectangle );\r
+ int y = 演奏判定ライン座標.n演奏RGBボタンY座標( E楽器パート.GUITAR, false, CDTXMania.ConfigIni.bReverse.Guitar );\r
+ base.txRGB.t2D描画(\r
+ CDTXMania.app.Device,\r
+ ( 0x1fd + ( j * 0x1a ) ) * Scale.X,\r
+ y,\r
+ rectangle\r
+ );\r
}\r
}\r
}\r
for( int k = 0; k < 3; k++ )\r
{\r
int num4 = CDTXMania.ConfigIni.bLeft.Bass ? ( 2 - k ) : k;\r
- Rectangle rectangle2 = new Rectangle( num4 * 0x18, 0, 0x18, 0x20 );\r
+ Rectangle rectangle2 = new Rectangle(\r
+ (int) ( num4 * 0x18 * Scale.X ),\r
+ (int) ( 0 * Scale.Y ),\r
+ (int) ( 0x18 * Scale.X ),\r
+ (int) ( 0x20 * Scale.Y )\r
+ );\r
if( base.b押下状態[ num4 + 3 ] )\r
{\r
- rectangle2.Y += 0x20;\r
+ rectangle2.Y += (int) ( 0x20 * Scale.Y );\r
}\r
if( base.txRGB != null )\r
{\r
int y = 演奏判定ライン座標.n演奏RGBボタンY座標( E楽器パート.BASS, false, CDTXMania.ConfigIni.bReverse.Bass );\r
- base.txRGB.t2D描画( CDTXMania.app.Device, 400 + ( k * 0x1a ), y, rectangle2 );\r
+ base.txRGB.t2D描画(\r
+ CDTXMania.app.Device,\r
+ ( 400 + ( k * 0x1a )) * Scale.X,\r
+ y,\r
+ rectangle2\r
+ );\r
}\r
}\r
}\r
{\r
num4 = ( 0x163 - num4 ) - 0xf4;\r
}\r
- Rectangle rectangle = new Rectangle( 0, 0, 0x1a, 0x7a );\r
- if( ( 0x163 - num4 ) < rectangle.Bottom )\r
+ Rectangle rectangle = new Rectangle( 0, 0, 0x1a, 0x7a * 2 );\r
+ if ( ( 0x163 - num4 ) < rectangle.Bottom )\r
{\r
rectangle.Height = ( 0x163 - num4 ) - rectangle.Top;\r
}\r
rectangle.Y = -num4;\r
num5 = -num4;\r
}\r
- if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )\r
+ if ( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )\r
{\r
- this.txWailingBonus.t2D描画( CDTXMania.app.Device, x, ( ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x39 : 0x39 ) + num4 ) + num5, rectangle );\r
- }\r
- num5 = 0;\r
- rectangle = new Rectangle( 0x1a, 0, 0x1a, 0x7a );\r
- if( ( 0x163 - ( num4 + 0x7a ) ) < rectangle.Bottom )\r
- {\r
- rectangle.Height = ( 0x163 - ( num4 + 0x7a ) ) - rectangle.Top;\r
- }\r
- if( ( num4 + 0x7a ) < 0 )\r
- {\r
- rectangle.Y = -( num4 + 0x7a );\r
- num5 = -( num4 + 0x7a );\r
- }\r
- if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )\r
- {\r
- this.txWailingBonus.t2D描画( CDTXMania.app.Device, x, ( ( ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x39 : 0x39 ) + num4 ) + num5 ) + 0x7a, rectangle );\r
+ rectangle.X = (int) ( rectangle.X * Scale.X );\r
+ rectangle.Y = (int) ( rectangle.Y * Scale.Y );\r
+ rectangle.Width = (int) ( rectangle.Width * Scale.X );\r
+ rectangle.Height = (int) ( rectangle.Height * Scale.Y );\r
+ this.txWailingBonus.t2D描画(\r
+ CDTXMania.app.Device,\r
+ x * Scale.X,\r
+ ( ( ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x39 : 0x39 ) + num4 ) + num5 ) * Scale.Y,\r
+ rectangle\r
+ );\r
}\r
+ //num5 = 0;\r
+ //rectangle = new Rectangle( 0x1a, 0, 0x1a, 0x7a );\r
+ //if( ( 0x163 - ( num4 + 0x7a ) ) < rectangle.Bottom )\r
+ //{\r
+ // rectangle.Height = ( 0x163 - ( num4 + 0x7a ) ) - rectangle.Top;\r
+ //}\r
+ //if( ( num4 + 0x7a ) < 0 )\r
+ //{\r
+ // rectangle.Y = -( num4 + 0x7a );\r
+ // num5 = -( num4 + 0x7a );\r
+ //}\r
+ //if( ( rectangle.Top < rectangle.Bottom ) && ( this.txWailingBonus != null ) )\r
+ //{\r
+ // this.txWailingBonus.t2D描画( CDTXMania.app.Device, x, ( ( ( ( e楽器パート == E楽器パート.GUITAR ) ? 0x39 : 0x39 ) + num4 ) + num5 ) + 0x7a, rectangle );\r
+ //}\r
}\r
}\r
}\r
base.b初めての進行描画 = false;\r
}\r
// 背景暗幕\r
- Rectangle rectangle = new Rectangle(22, 0, 1, 1);\r
+ Rectangle rectangle = new Rectangle(\r
+ (int)(22 * Scale.X),\r
+ (int)(0 * Scale.Y),\r
+ (int)(1* Scale.X),\r
+ (int)(1 * Scale.Y)\r
+ );\r
if (this.txグラフ != null)\r
{\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
+ this.txグラフ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ 345 * Scale.X,\r
+ 88 * Scale.Y,\r
+ rectangle\r
+ );\r
}\r
\r
// 基準線\r
- rectangle = new Rectangle(20, 0, 1, 1);\r
+ rectangle = new Rectangle(\r
+ (int)(20 * Scale.X),\r
+ (int)(0 * Scale.Y),\r
+ (int)(1* Scale.X),\r
+ (int)(1 * Scale.Y)\r
+ );\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
+ this.txグラフ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ 345 * Scale.X,\r
+ (88 + (int)(11.5 * i)) * Scale.Y,\r
+ rectangle\r
+ );\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
+ this.txグラフ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ (349 + i * 18) * Scale.X,\r
+ (88 * Scale.Y),\r
+ rectangle\r
+ );\r
+ this.txグラフ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ (360 + i * 18) * Scale.X,\r
+ (88 * Scale.Y),\r
+ rectangle\r
+ );\r
}\r
}\r
if (this.txグラフ != null)\r
// 基準線を越えたら線が黄色くなる\r
if (this.dbグラフ値現在 >= (100 - i * 10))\r
{\r
- rectangle = new Rectangle(21, 0, 1, 1);//黄色\r
- if (this.txグラフ != null)\r
+ rectangle = new Rectangle( //黄色\r
+ (int)(21 * Scale.X),\r
+ (int)(0 * Scale.Y),\r
+ (int)(1* Scale.X),\r
+ (int)(1 * Scale.Y)\r
+ );\r
+ if (this.txグラフ != null)\r
{\r
this.txグラフ.n透明度 = 224;\r
}\r
}\r
else\r
{\r
- rectangle = new Rectangle(20, 0, 1, 1);\r
+ rectangle = new Rectangle(\r
+ (int)(20 * Scale.X),\r
+ (int)(0 * Scale.Y),\r
+ (int)(1* Scale.X),\r
+ (int)(1 * Scale.Y)\r
+ );\r
if (this.txグラフ != null)\r
{\r
this.txグラフ.n透明度 = 160;\r
\r
if (this.txグラフ != null)\r
{\r
- this.txグラフ.t2D描画(CDTXMania.app.Device, 345, 88 + i * 23, rectangle);\r
+ this.txグラフ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ 345 * Scale.X,\r
+ (88 + i * 23) * Scale.Y,\r
+ rectangle\r
+ );\r
}\r
}\r
// グラフ\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
+ rectangle = new Rectangle(\r
+ (int)(0 * Scale.X),\r
+ (int)(0 * Scale.Y),\r
+ (int)(10* Scale.X),\r
+ (int)((int)(230f * this.dbグラフ値現在_表示 / 100) * Scale.Y)\r
+ );\r
+\r
+ if (this.txグラフ != null)\r
{\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
+ this.txグラフ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ 350 * Scale.X,\r
+ (318 - (int)(230f * this.dbグラフ値現在_表示 / 100)) * Scale.Y,\r
+ rectangle\r
+ );\r
}\r
for( int k = 0; k < 32; k++ )\r
{\r
- rectangle = new Rectangle(20, 0, 1, 1);\r
+ rectangle = new Rectangle(\r
+ (int)(20 * Scale.X),\r
+ (int)(0 * Scale.Y),\r
+ (int)(1* Scale.X),\r
+ (int)(1 * Scale.Y)\r
+ );\r
if (this.txグラフ != null)\r
{\r
this.stキラキラ[ k ].ct進行.t進行Loop();\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
+ this.txグラフ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ (350+num1) * Scale.X,\r
+ (318-num2) * Scale.Y,\r
+ rectangle\r
+ );\r
}\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
+ rectangle = new Rectangle(\r
+ (int) ( 20 * Scale.X ),\r
+ (int) ( 0 * Scale.Y ),\r
+ (int) ( 1 * Scale.X ),\r
+ (int) ( 1 * Scale.Y )\r
+ );\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グラフ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ 350 * Scale.X,\r
+ (this.stフラッシュ[ m ].y + (318 - (int)(230f * this.dbグラフ値現在_表示 / 100))) * Scale.Y,\r
+ rectangle\r
+ );\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
+ this.txグラフ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ 350 * Scale.X,\r
+ (this.stフラッシュ[ m ].y + 2 + (318 - (int)(230f * this.dbグラフ値現在_表示 / 100))) * Scale.Y,\r
+ rectangle\r
+ );\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
+ rectangle = new Rectangle(\r
+ (int) ( 0 * Scale.X ),\r
+ (int) ( 0 * Scale.Y ),\r
+ (int) ( 10 * Scale.X ),\r
+ (int) ( (int)(230f * this.dbグラフ値現在_表示 / 100) * Scale.Y )\r
+ );\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, 348, 318 - (int)(230f * this.dbグラフ値現在_表示 / 100), rectangle);\r
+ this.txグラフ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ 348 * Scale.X,\r
+ (318 - (int)(230f * this.dbグラフ値現在_表示 / 100)) * Scale.Y,\r
+ rectangle\r
+ );\r
this.txグラフ.b加算合成 = false;\r
}\r
// --目標値\r
{\r
this.dbグラフ値目標_表示 = this.dbグラフ値目標;\r
}\r
- rectangle = new Rectangle(10, 0, 10, (int)(230f * this.dbグラフ値目標_表示 / 100));\r
+ rectangle = new Rectangle(\r
+ (int) ( 10 * Scale.X ),\r
+ (int) ( 0 * Scale.Y ),\r
+ (int) ( 10 * Scale.X ),\r
+ (int) ( (int)(230f * this.dbグラフ値目標_表示 / 100) * Scale.Y )\r
+ );\r
if (this.txグラフ != null)\r
{\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グラフ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ 368 * Scale.X,\r
+ (318 - (int)(230f * this.dbグラフ値目標_表示 / 100))*Scale.Y,\r
+ rectangle\r
+ );\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グラフ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ 366 * Scale.X,\r
+ (318 - (int)(230f * this.dbグラフ値目標_表示 / 100)) * Scale.Y,\r
+ rectangle\r
+ );\r
this.txグラフ.b加算合成 = false;\r
}\r
for( int k = 32; k < 64; k++ )\r
{\r
- rectangle = new Rectangle(20, 0, 1, 1);\r
+ rectangle = new Rectangle(\r
+ (int) ( 20 * Scale.X ),\r
+ (int) ( 0 * Scale.Y ),\r
+ (int) ( 1 * Scale.X ),\r
+ (int) ( 1 * Scale.Y )\r
+ );\r
if (this.txグラフ != null)\r
{\r
this.stキラキラ[ k ].ct進行.t進行Loop();\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
+ this.txグラフ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ (368+num1) * Scale.X,\r
+ (318-num2) * Scale.Y,\r
+ rectangle\r
+ );\r
}\r
}\r
}\r
{\r
CActLVLNFont.EFontColor efc = this.IsDanger( E楽器パート.DRUMS ) ?\r
CActLVLNFont.EFontColor.Red : CActLVLNFont.EFontColor.Yellow;\r
- actLVLNFont.t文字列描画( 15, 408, nRiskyTimes.ToString(), efc, CActLVLNFont.EFontAlign.Right );\r
+ actLVLNFont.t文字列描画( (int)(12 * Scale.X), (int)(408 * Scale.Y), nRiskyTimes.ToString(), efc, CActLVLNFont.EFontAlign.Right );\r
}\r
\r
int num2 = ( this.dbゲージ値 == 1.0 ) ? ( (int) ( 352.0 * this.dbゲージ値 ) ) : ( (int) ( ( 352.0 * this.dbゲージ値 ) + ( 2.0 * Math.Sin( Math.PI * 2 * ( ( (double) this.ct本体振動.n現在の値 ) / 360.0 ) ) ) ) );\r
int num5 = num2 + num3;\r
while( num5 > 0 )\r
{\r
- Rectangle rectangle = ( this.dbゲージ値 == 1.0 ) ? new Rectangle( 0x10, 0, 0x10, 0x1b ) : new Rectangle( 0, 0, 0x10, 0x1b );\r
+ Rectangle rectangle = ( this.dbゲージ値 == 1.0 ) ?\r
+ new Rectangle( 0x10, 0, 0x10, 0x1b ) :\r
+ new Rectangle( 0, 0, 0x10, 0x1b );\r
if( y < ( 0x195 - num2 ) )\r
{\r
int num6 = ( 0x195 - num2 ) - y;\r
{\r
break;\r
}\r
- if( this.txゲージ != null )\r
+ Rectangle rectangle1 = rectangle;\r
+ if ( this.txゲージ != null )\r
{\r
- this.txゲージ.t2D描画( CDTXMania.app.Device, 6, y, rectangle );\r
+ rectangle.X = (int) ( rectangle.X * Scale.X );\r
+ rectangle.Y = (int) ( rectangle.Y * Scale.Y );\r
+ rectangle.Width = (int) ( rectangle.Width * Scale.X );\r
+ rectangle.Height = (int) ( rectangle.Height * Scale.Y );\r
+ this.txゲージ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ 6 * Scale.X,\r
+ y * Scale.Y,\r
+ rectangle\r
+ );\r
}\r
- num5 -= rectangle.Height;\r
- y += rectangle.Height;\r
+ num5 -= rectangle1.Height;\r
+ y += rectangle1.Height - 1; // 横線が入る問題を、取り急ぎ対策\r
}\r
if( this.txゲージ != null )\r
{\r
}\r
for( int i = 0; i < 4; i++ )\r
{\r
- Rectangle rectangle2 = new Rectangle( 0x40 + ( i * 0x10 ), 0, 0x10, 0x40 );\r
+ Rectangle rectangle2 = new Rectangle(\r
+ 0x40 + ( i * 0x10 ),\r
+ 0,\r
+ 0x10,\r
+ 0x40\r
+ );\r
int num9 = ( 0x195 - num2 ) + ( i * 0x40 );\r
if( num9 >= 0x195 )\r
{\r
}\r
if( ( rectangle2.Top < rectangle2.Bottom ) && ( this.txゲージ != null ) )\r
{\r
- this.txゲージ.t2D描画( CDTXMania.app.Device, 6, num9, rectangle2 );\r
+ rectangle2.X = (int) ( rectangle2.X * Scale.X );\r
+ rectangle2.Y = (int) ( rectangle2.Y * Scale.Y + 0.5f );\r
+ rectangle2.Width = (int) ( rectangle2.Width * Scale.X );\r
+ rectangle2.Height = (int) ( rectangle2.Height * Scale.Y + 0.5f );\r
+\r
+ this.txゲージ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ (int)(6 * Scale.X),\r
+ (int)(num9 * Scale.Y + 0.5f),\r
+ rectangle2\r
+ );\r
}\r
}\r
if( this.txゲージ != null )\r
this.txゲージ.n透明度 = 0xff;\r
this.txゲージ.b加算合成 = false;\r
}\r
- Rectangle rectangle3 = new Rectangle( 0x30, 0, 0x10, 0x10 );\r
+ Rectangle rectangle3 = new Rectangle(\r
+ 0x30,\r
+ 0,\r
+ 0x10,\r
+ 0x10\r
+ );\r
int num11 = 0x195 - num2;\r
if( num11 < 0x195 )\r
{\r
}\r
if( ( rectangle3.Top < rectangle3.Bottom ) && ( this.txゲージ != null ) )\r
{\r
- this.txゲージ.t2D描画( CDTXMania.app.Device, 6, num11, rectangle3 );\r
+ rectangle3.X = (int) ( rectangle3.X * Scale.X );\r
+ rectangle3.Y = (int) ( rectangle3.Y * Scale.Y + 0.5f );\r
+ rectangle3.Width = (int) ( rectangle3.Width * Scale.X );\r
+ rectangle3.Height = (int) ( rectangle3.Height * Scale.Y + 0.5f );\r
+ this.txゲージ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ (int)(6*Scale.X),\r
+ (int)(num11*Scale.Y + 0.5f),\r
+ rectangle3\r
+ );\r
}\r
}\r
if( this.txゲージ != null )\r
int num16 = ( this.st白い星[ j ].ct進行.n現在の値 < 0xb0 ) ? 0 : ( (int) ( 255.0 * ( ( (double) ( this.st白い星[ j ].ct進行.n現在の値 - 0xb0 ) ) / 176.0 ) ) );\r
if( ( num16 != 0 ) && ( num15 < 0x191 ) )\r
{\r
- Rectangle rectangle4 = new Rectangle( 0, 0x20, 0x20, 0x20 );\r
+ Rectangle rectangle4 = new Rectangle(\r
+ (int)(0*Scale.X),\r
+ (int)(0x20*Scale.Y),\r
+ (int) ( 0x20 * Scale.X ),\r
+ (int)(0x20*Scale.Y)\r
+ );\r
if( this.txゲージ != null )\r
{\r
this.txゲージ.vc拡大縮小倍率 = new Vector3( this.st白い星[ j ].fScale, this.st白い星[ j ].fScale, 1f );\r
this.txゲージ.n透明度 = num16;\r
- this.txゲージ.t2D描画( CDTXMania.app.Device, x, num15, rectangle4 );\r
+ this.txゲージ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ (int)(x*Scale.X),\r
+ (int)(num15*Scale.Y+0.5f),\r
+ rectangle4\r
+ );\r
}\r
}\r
}\r
int x, y;\r
if( CDTXMania.DTX.bチップがある.Bass )\r
{\r
- x = 0x222;\r
+ x = ( int ) ( 0x222 * Scale.X );\r
//y = CDTXMania.ConfigIni.bReverse.Guitar ? 0xaf : 270;\r
y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, CDTXMania.ConfigIni.bReverse.Guitar );\r
- y += CDTXMania.ConfigIni.bReverse.Guitar ? -134 : +174;\r
+ y += CDTXMania.ConfigIni.bReverse.Guitar ? (int) ( -134 * Scale.Y ) : (int) ( +174 * Scale.Y );\r
if ( base.txCOMBOギター != null )\r
{\r
base.txCOMBOギター.n透明度 = 120;\r
}\r
else\r
{\r
- x = 0x1c0;\r
+ x = (int) ( 0x1c0 * Scale.X );\r
//y = CDTXMania.ConfigIni.bReverse.Guitar ? 0xee : 0xcf;\r
y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, CDTXMania.ConfigIni.bReverse.Guitar );\r
- y += CDTXMania.ConfigIni.bReverse.Guitar ? -134 : +174;\r
+ y += CDTXMania.ConfigIni.bReverse.Guitar ? (int) ( -134 * Scale.Y ) : (int) ( +174 * Scale.Y );\r
if ( base.txCOMBOギター != null )\r
{\r
base.txCOMBOギター.n透明度 = 0xff;\r
}\r
protected override void tコンボ表示・ベース( int nCombo値, int nジャンプインデックス )\r
{\r
- int x = 0x1b5;\r
+ int x = ( int ) ( 0x1b5 * Scale.X );\r
//int y = CDTXMania.ConfigIni.bReverse.Bass ? 0xaf : 270;\r
int y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, CDTXMania.ConfigIni.bReverse.Bass );\r
- y += CDTXMania.ConfigIni.bReverse.Bass ? -134 : +174;\r
+ y += CDTXMania.ConfigIni.bReverse.Guitar ? (int) ( -134 * Scale.Y ) : (int) ( +174 * Scale.Y );\r
if ( base.txCOMBOギター != null )\r
{\r
base.txCOMBOギター.n透明度 = 120;\r
{\r
Rectangle rectangle;\r
char ch = str[i];\r
- if (ch.Equals(' '))\r
- {\r
- rectangle = new Rectangle(0, 0, 12, 0x18);\r
- }\r
- else\r
- {\r
- int num4 = int.Parse(str.Substring(i, 1));\r
- if (num4 < 5)\r
- {\r
- rectangle = new Rectangle(num4 * 12, 0, 12, 0x18);\r
- }\r
- else\r
- {\r
- rectangle = new Rectangle((num4 - 5) * 12, 0x18, 12, 0x18);\r
- }\r
- }\r
- if (base.txScore != null)\r
- {\r
- base.txScore.t2D描画(CDTXMania.app.Device, 0x164 + (i * 12), 14, rectangle);\r
- }\r
+ if ( ch.Equals( ' ' ) )\r
+ {\r
+ rectangle = new Rectangle(\r
+ 0,\r
+ 0,\r
+ (int) ( 12 * Scale.X ),\r
+ (int) ( 0x18 * Scale.Y )\r
+ );\r
+ }\r
+ else\r
+ {\r
+ int num4 = int.Parse( str.Substring( i, 1 ) );\r
+ if ( num4 < 5 )\r
+ {\r
+ rectangle = new Rectangle(\r
+ (int) ( num4 * 12 * Scale.X ),\r
+ 0,\r
+ (int) ( 12 * Scale.X ),\r
+ (int) ( 0x18 * Scale.Y )\r
+ );\r
+ }\r
+ else\r
+ {\r
+ rectangle = new Rectangle(\r
+ (int) ( ( num4 - 5 ) * 12 * Scale.X ),\r
+ (int) ( 0x18 * Scale.Y ),\r
+ (int) ( 12 * Scale.X ),\r
+ (int) ( 0x18 * Scale.Y )\r
+ );\r
+ }\r
+ }\r
+ if ( base.txScore != null )\r
+ {\r
+ base.txScore.t2D描画(\r
+ CDTXMania.app.Device,\r
+ ( 0x164 + ( i * 12 ) ) * Scale.X,\r
+ 14 * Scale.Y,\r
+ rectangle\r
+ );\r
+ }\r
}\r
}\r
return 0;\r
}\r
public override int On進行描画()\r
{\r
- if( !base.b活性化してない && ( this.txStatusPanels != null ) )\r
+ if ( !base.b活性化してない && ( this.txStatusPanels != null ) )\r
{\r
- this.txStatusPanels.t2D描画( CDTXMania.app.Device, 0x26f, 0x14f, new Rectangle( this.nStatus * 15, 0xb7, 15, 0x49 ) );\r
+ this.txStatusPanels.t2D描画(\r
+ CDTXMania.app.Device,\r
+ 0x26f * Scale.X,\r
+ 0x14f * Scale.Y,\r
+ new Rectangle(\r
+ (int) ( this.nStatus * 15 * Scale.X ),\r
+ (int) ( 0xb7 * Scale.Y ),\r
+ (int) ( 15 * Scale.X ),\r
+ (int) ( 0x49 * Scale.Y )\r
+ )\r
+ );\r
int drums = CDTXMania.ConfigIni.n譜面スクロール速度.Drums;\r
- if( drums < 0 )\r
+ if ( drums < 0 )\r
{\r
drums = 0;\r
}\r
- if( drums > 15 )\r
+ if ( drums > 15 )\r
{\r
drums = 15;\r
}\r
- this.txStatusPanels.t2D描画( CDTXMania.app.Device, 0x26f, 0x3b, new Rectangle( drums * 15, 0, 15, 0xac ) );\r
+ this.txStatusPanels.t2D描画( CDTXMania.app.Device,\r
+ 0x26f * Scale.X,\r
+ 0x3b * Scale.Y,\r
+ new Rectangle(\r
+ (int) ( drums * 15 * Scale.X ),\r
+ 0,\r
+ (int) ( 15 * Scale.X ),\r
+ (int) ( 0xac * Scale.Y )\r
+ )\r
+ );\r
}\r
return 0;\r
}\r
identity *= Matrix.RotationZ( num3 + ( (float) Math.PI / 2 ) );\r
float num5 = ( (float) ( 0.8 * Math.Sin( num2 * Math.PI / 2 ) ) ) * this.st火花[ i ].fサイズ;\r
identity *= Matrix.Translation(\r
- (this.nレーンの中央X座標[this.st火花[i].nLane] + (((float)Math.Cos((double)num3)) * num5)) - SampleFramework.GameWindowSize.Width / 2,\r
- -( ( ( CDTXMania.ConfigIni.bReverse.Drums ? 55f - nJudgeLinePosY_delta_Drums : 425f + nJudgeLinePosY_delta_Drums ) + ( ( (float)Math.Sin( (double)num3 ) ) * num5 ) ) - SampleFramework.GameWindowSize.Height / 2 ),\r
+ ( this.nレーンの中央X座標[ this.st火花[ i ].nLane ] * Scale.X + ( ( (float) Math.Cos( (double) num3 ) ) * num5 ) ) - SampleFramework.GameWindowSize.Width / 2,\r
+ -( ( ( CDTXMania.ConfigIni.bReverse.Drums ? 55f * Scale.Y - nJudgeLinePosY_delta_Drums : 425f * Scale.Y + nJudgeLinePosY_delta_Drums ) + ( ( (float) Math.Sin( (double) num3 ) ) * num5 ) ) - SampleFramework.GameWindowSize.Height / 2 ),\r
0f\r
);\r
if( this.tx火花 != null )\r
float x = (float) ( this.st青い星[ i ].f半径 * Math.Cos( ( Math.PI / 2 * this.st青い星[ i ].ct進行.n現在の値 ) / 100.0 ) );\r
mat *= Matrix.Scaling( x, x, 1f );\r
mat *= Matrix.Translation(\r
- this.st青い星[i].fX - SampleFramework.GameWindowSize.Width / 2,\r
- -(this.st青い星[i].fY - SampleFramework.GameWindowSize.Height / 2),\r
+ this.st青い星[ i ].fX * Scale.X - SampleFramework.GameWindowSize.Width / 2,\r
+ -( this.st青い星[ i ].fY * Scale.Y - SampleFramework.GameWindowSize.Height / 2 ),\r
0f\r
);\r
if( this.tx青い星 != null )\r
matrix3 *= Matrix.RotationX( this.st大波[ i ].f角度X );\r
matrix3 *= Matrix.RotationY( this.st大波[ i ].f角度Y );\r
matrix3 *= Matrix.Translation(\r
- this.nレーンの中央X座標[this.st大波[i].nLane] - SampleFramework.GameWindowSize.Width / 2,\r
- -((CDTXMania.ConfigIni.bReverse.Drums ? 55f - nJudgeLinePosY_delta_Drums : 425f + nJudgeLinePosY_delta_Drums ) - SampleFramework.GameWindowSize.Height / 2),\r
+ this.nレーンの中央X座標[ this.st大波[ i ].nLane ] * Scale.X - SampleFramework.GameWindowSize.Width / 2,\r
+ -( ( CDTXMania.ConfigIni.bReverse.Drums ? 55f * Scale.Y - nJudgeLinePosY_delta_Drums : 425f * Scale.Y + nJudgeLinePosY_delta_Drums ) - SampleFramework.GameWindowSize.Height / 2 ),\r
0f );\r
if( this.tx大波 != null )\r
{\r
matrix4 *= Matrix.RotationX( this.st細波[ i ].f角度X );\r
matrix4 *= Matrix.RotationY( this.st細波[ i ].f角度Y );\r
matrix4 *= Matrix.Translation(\r
- this.nレーンの中央X座標[this.st細波[i].nLane] - SampleFramework.GameWindowSize.Width / 2,\r
- -((CDTXMania.ConfigIni.bReverse.Drums ? 55f - nJudgeLinePosY_delta_Drums : 425f + nJudgeLinePosY_delta_Drums ) - SampleFramework.GameWindowSize.Height / 2),\r
+ this.nレーンの中央X座標[ this.st細波[ i ].nLane ] * Scale.X - SampleFramework.GameWindowSize.Width / 2,\r
+ -( ( CDTXMania.ConfigIni.bReverse.Drums ? 55f * Scale.Y - nJudgeLinePosY_delta_Drums : 425f * Scale.Y + nJudgeLinePosY_delta_Drums ) - SampleFramework.GameWindowSize.Height / 2 ),\r
0f\r
);\r
if (this.tx細波 != null)\r
using System.Collections.Generic;\r
using System.Text;\r
using System.Drawing;\r
+using System.Diagnostics;\r
\r
namespace DTXMania\r
{\r
{\r
index = ( ( index / 3 ) * 3 ) + ( 2 - ( index % 3 ) );\r
}\r
- int x = this.pt中央[ index ].X;\r
+ int x = (int) ( this.pt中央[ index ].X * Scale.X );\r
//int y = this.pt中央[ index ].Y;\r
int y = 演奏判定ライン座標.n判定ラインY座標( e楽器パート, false, CDTXMania.ConfigIni.bReverse[ (int) e楽器パート ] );\r
- //if ( CDTXMania.ConfigIni.bReverse[ (int)e楽器パート ] )\r
- //{\r
- // y = 374;\r
\r
- //}\r
base.Start( nLane, x, y, 演奏判定ライン座標 );\r
-\r
}\r
\r
\r
ST基本位置 st基本位置 = new ST基本位置();\r
st基本位置.x = 0x16;\r
st基本位置.y = 0;\r
- st基本位置.rc = new Rectangle( 0, 0, 0x40, 0x40 );\r
+ st基本位置.rc = new Rectangle( (int) ( 0 * Scale.X ), (int) ( 0 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
st基本位置Array[ 0 ] = st基本位置;\r
ST基本位置 st基本位置2 = new ST基本位置();\r
st基本位置2.x = 0x3d;\r
st基本位置2.y = 11;\r
- st基本位置2.rc = new Rectangle( 0x40, 0, 0x40, 0x40 );\r
+ st基本位置2.rc = new Rectangle( (int) ( 0x40 * Scale.X ), (int) ( 0 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
st基本位置Array[ 1 ] = st基本位置2;\r
ST基本位置 st基本位置3 = new ST基本位置();\r
st基本位置3.x = 0x60;\r
st基本位置3.y = 8;\r
- st基本位置3.rc = new Rectangle( 0x80, 0, 0x40, 0x40 );\r
+ st基本位置3.rc = new Rectangle( (int) ( 0x80 * Scale.X ), (int) ( 0 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
st基本位置Array[ 2 ] = st基本位置3;\r
ST基本位置 st基本位置4 = new ST基本位置();\r
st基本位置4.x = 0x8a;\r
st基本位置4.y = 7;\r
- st基本位置4.rc = new Rectangle( 0, 0x40, 0x40, 0x40 );\r
+ st基本位置4.rc = new Rectangle( (int) ( 0 * Scale.X ), (int) ( 0x40 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
st基本位置Array[ 3 ] = st基本位置4;\r
ST基本位置 st基本位置5 = new ST基本位置();\r
st基本位置5.x = 0xb3;\r
st基本位置5.y = 0;\r
- st基本位置5.rc = new Rectangle( 0x40, 0x40, 0x40, 0x40 );\r
+ st基本位置5.rc = new Rectangle( (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
st基本位置Array[ 4 ] = st基本位置5;\r
ST基本位置 st基本位置6 = new ST基本位置();\r
st基本位置6.x = 0xd4;\r
st基本位置6.y = 5;\r
- st基本位置6.rc = new Rectangle( 0x80, 0x40, 0x40, 0x40 );\r
+ st基本位置6.rc = new Rectangle( (int) ( 0x80 * Scale.X ), (int) ( 0x40 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
st基本位置Array[ 5 ] = st基本位置6;\r
ST基本位置 st基本位置7 = new ST基本位置();\r
st基本位置7.x = 250;\r
st基本位置7.y = 15;\r
- st基本位置7.rc = new Rectangle( 0, 0x80, 0x40, 0x40 );\r
+ st基本位置7.rc = new Rectangle( (int) ( 0 * Scale.X ), (int) ( 0x80 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
st基本位置Array[ 6 ] = st基本位置7;\r
ST基本位置 st基本位置8 = new ST基本位置();\r
st基本位置8.x = 0x11a;\r
st基本位置8.y = 0;\r
- st基本位置8.rc = new Rectangle( 0x40, 0x80, 0x40, 0x40 );\r
+ st基本位置8.rc = new Rectangle( (int) ( 0x40 * Scale.X ), (int) ( 0x80 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
st基本位置Array[ 7 ] = st基本位置8;\r
ST基本位置 st基本位置9 = new ST基本位置();\r
st基本位置9.x = 0x130;\r
st基本位置9.y = 8;\r
- st基本位置9.rc = new Rectangle( 0x80, 0x80, 0x40, 0x40 );\r
+ st基本位置9.rc = new Rectangle( (int) ( 0x80 * Scale.X ), (int) ( 0x80 * Scale.Y ), (int) ( 0x40 * Scale.X ), (int) ( 0x40 * Scale.Y ) );\r
st基本位置Array[ 8 ] = st基本位置9;\r
this.st基本位置 = st基本位置Array;\r
base.b活性化してない = true;\r
}\r
- \r
- \r
+\r
+\r
// メソッド\r
\r
public void Hit( int nLane )\r
{\r
this.nフラッシュ制御タイマ = -1;\r
this.nY座標制御タイマ = -1;\r
- for( int i = 0; i < 9; i++ )\r
+ for ( int i = 0; i < 9; i++ )\r
{\r
STパッド状態 stパッド状態2 = new STパッド状態();\r
STパッド状態 stパッド状態 = stパッド状態2;\r
}\r
public override void OnManagedリソースの作成()\r
{\r
- if( !base.b活性化してない )\r
+ if ( !base.b活性化してない )\r
{\r
this.txパッド = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayDrums pads.png" ) );\r
this.tx光るパッド = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\ScreenPlayDrums pads flush.png" ) );\r
}\r
public override void OnManagedリソースの解放()\r
{\r
- if( !base.b活性化してない )\r
+ if ( !base.b活性化してない )\r
{\r
CDTXMania.tテクスチャの解放( ref this.txパッド );\r
CDTXMania.tテクスチャの解放( ref this.tx光るパッド );\r
}\r
public override int On進行描画()\r
{\r
- if( !base.b活性化してない )\r
+ if ( !base.b活性化してない )\r
{\r
- if( base.b初めての進行描画 )\r
+ if ( base.b初めての進行描画 )\r
{\r
this.nフラッシュ制御タイマ = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
this.nY座標制御タイマ = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
base.b初めての進行描画 = false;\r
}\r
long num = FDK.CSound管理.rc演奏用タイマ.n現在時刻;\r
- if( num < this.nフラッシュ制御タイマ )\r
+ if ( num < this.nフラッシュ制御タイマ )\r
{\r
this.nフラッシュ制御タイマ = num;\r
}\r
- while( ( num - this.nフラッシュ制御タイマ ) >= 15 )\r
+ while ( ( num - this.nフラッシュ制御タイマ ) >= 15 )\r
{\r
- for( int j = 0; j < 9; j++ )\r
+ for ( int j = 0; j < 9; j++ )\r
{\r
- if( this.stパッド状態[ j ].n明るさ > 0 )\r
+ if ( this.stパッド状態[ j ].n明るさ > 0 )\r
{\r
this.stパッド状態[ j ].n明るさ--;\r
}\r
this.nフラッシュ制御タイマ += 15;\r
}\r
long num3 = CSound管理.rc演奏用タイマ.n現在時刻;\r
- if( num3 < this.nY座標制御タイマ )\r
+ if ( num3 < this.nY座標制御タイマ )\r
{\r
this.nY座標制御タイマ = num3;\r
}\r
- while( ( num3 - this.nY座標制御タイマ ) >= 5 )\r
+ while ( ( num3 - this.nY座標制御タイマ ) >= 5 )\r
{\r
- for( int k = 0; k < 9; k++ )\r
+ for ( int k = 0; k < 9; k++ )\r
{\r
this.stパッド状態[ k ].nY座標オフセットdot += this.stパッド状態[ k ].nY座標加速度dot;\r
- if( this.stパッド状態[ k ].nY座標オフセットdot > 15 )\r
+ if ( this.stパッド状態[ k ].nY座標オフセットdot > 15 )\r
{\r
this.stパッド状態[ k ].nY座標オフセットdot = 15;\r
this.stパッド状態[ k ].nY座標加速度dot = -1;\r
}\r
- else if( this.stパッド状態[ k ].nY座標オフセットdot < 0 )\r
+ else if ( this.stパッド状態[ k ].nY座標オフセットdot < 0 )\r
{\r
this.stパッド状態[ k ].nY座標オフセットdot = 0;\r
this.stパッド状態[ k ].nY座標加速度dot = 0;\r
}\r
this.nY座標制御タイマ += 5;\r
}\r
- for( int i = 0; i < 9; i++ )\r
+ for ( int i = 0; i < 9; i++ )\r
{\r
int index = this.n描画順[ i ];\r
int x = this.st基本位置[ index ].x;\r
int y = ( this.st基本位置[ index ].y + ( CDTXMania.ConfigIni.bReverse.Drums ? -10 : 0x19e ) ) + this.stパッド状態[ index ].nY座標オフセットdot;\r
- if( this.txパッド != null )\r
+ if ( this.txパッド != null )\r
{\r
- this.txパッド.t2D描画( CDTXMania.app.Device, x, y, this.st基本位置[ index ].rc );\r
+ this.txパッド.t2D描画(\r
+ CDTXMania.app.Device,\r
+ x * Scale.X,\r
+ y * Scale.Y,\r
+ this.st基本位置[ index ].rc\r
+ );\r
}\r
- if( this.tx光るパッド != null )\r
+ if ( this.tx光るパッド != null )\r
{\r
this.tx光るパッド.n透明度 = ( this.stパッド状態[ index ].n明るさ * 40 ) + 15;\r
- this.tx光るパッド.t2D描画( CDTXMania.app.Device, x, y, this.st基本位置[ index ].rc );\r
+ this.tx光るパッド.t2D描画(\r
+ CDTXMania.app.Device,\r
+ x * Scale.X,\r
+ y * Scale.Y,\r
+ this.st基本位置[ index ].rc );\r
}\r
}\r
}\r
this.strファイル名 = new string[] { @"Graphics\ScreenPlayDrums lane flush cymbal.png", @"Graphics\ScreenPlayDrums lane flush hihat.png", @"Graphics\ScreenPlayDrums lane flush snare.png", @"Graphics\ScreenPlayDrums lane flush bass.png", @"Graphics\ScreenPlayDrums lane flush hitom.png", @"Graphics\ScreenPlayDrums lane flush lowtom.png", @"Graphics\ScreenPlayDrums lane flush floortom.png", @"Graphics\ScreenPlayDrums lane flush cymbal.png", @"Graphics\ScreenPlayDrums lane flush cymbal reverse.png", @"Graphics\ScreenPlayDrums lane flush hihat reverse.png", @"Graphics\ScreenPlayDrums lane flush snare reverse.png", @"Graphics\ScreenPlayDrums lane flush bass reverse.png", @"Graphics\ScreenPlayDrums lane flush hitom reverse.png", @"Graphics\ScreenPlayDrums lane flush lowtom reverse.png", @"Graphics\ScreenPlayDrums lane flush floortom reverse.png", @"Graphics\ScreenPlayDrums lane flush cymbal reverse.png" };\r
base.b活性化してない = true;\r
}\r
- \r
- \r
+\r
+\r
// メソッド\r
\r
public void Start( Eレーン lane, float f強弱度合い )\r
\r
public override void On活性化()\r
{\r
- for( int i = 0; i < 8; i++ )\r
+ for ( int i = 0; i < 8; i++ )\r
{\r
this.ct進行[ i ] = new CCounter();\r
}\r
}\r
public override void On非活性化()\r
{\r
- for( int i = 0; i < 8; i++ )\r
+ for ( int i = 0; i < 8; i++ )\r
{\r
this.ct進行[ i ] = null;\r
}\r
}\r
public override void OnManagedリソースの作成()\r
{\r
- if( !base.b活性化してない )\r
+ if ( !base.b活性化してない )\r
{\r
- for( int i = 0; i < 0x10; i++ )\r
+ for ( int i = 0; i < 0x10; i++ )\r
{\r
this.txFlush[ i ] = CDTXMania.tテクスチャの生成( CSkin.Path( this.strファイル名[ i ] ) );\r
}\r
}\r
public override void OnManagedリソースの解放()\r
{\r
- if( !base.b活性化してない )\r
+ if ( !base.b活性化してない )\r
{\r
- for( int i = 0; i < 0x10; i++ )\r
+ for ( int i = 0; i < 0x10; i++ )\r
{\r
CDTXMania.tテクスチャの解放( ref this.txFlush[ i ] );\r
}\r
}\r
public override int On進行描画()\r
{\r
- if( !base.b活性化してない )\r
+ if ( !base.b活性化してない )\r
{\r
- for( int i = 0; i < 8; i++ )\r
+ for ( int i = 0; i < 8; i++ )\r
{\r
- if( !this.ct進行[ i ].b停止中 )\r
+ if ( !this.ct進行[ i ].b停止中 )\r
{\r
this.ct進行[ i ].t進行();\r
- if( this.ct進行[ i ].b終了値に達した )\r
+ if ( this.ct進行[ i ].b終了値に達した )\r
{\r
this.ct進行[ i ].t停止();\r
}\r
}\r
}\r
- for( int j = 0; j < 8; j++ )\r
+ for ( int j = 0; j < 8; j++ )\r
{\r
- if( !this.ct進行[ j ].b停止中 )\r
+ if ( !this.ct進行[ j ].b停止中 )\r
{\r
int x = this.stレーンサイズ[ j ].x;\r
int w = this.stレーンサイズ[ j ].w;\r
- for( int k = 0; k < 3; k++ )\r
+ for ( int k = 0; k < 3; k++ )\r
{\r
- if( CDTXMania.ConfigIni.bReverse.Drums )\r
+ if ( CDTXMania.ConfigIni.bReverse.Drums )\r
{\r
int y = ( k * 0x80 ) - ( ( this.ct進行[ j ].n現在の値 * 0x180 ) / 100 );\r
- for( int m = 0; m < w; m += 0x2a )\r
+ for ( int m = 0; m < w; m += 0x2a )\r
{\r
- if( this.txFlush[ j + 8 ] != null )\r
+ if ( this.txFlush[ j + 8 ] != null )\r
{\r
- this.txFlush[ j + 8 ].t2D描画( CDTXMania.app.Device, x + m, y, new Rectangle( ( k * 0x2a ) + 2, 0, ( ( w - m ) < 0x2a ) ? ( w - m ) : 0x2a, 0x80 ) );\r
+ this.txFlush[ j + 8 ].t2D描画(\r
+ CDTXMania.app.Device,\r
+ ( x + m ) * Scale.X,\r
+ y * Scale.Y,\r
+ new Rectangle(\r
+ (int) ( ( ( k * 0x2a ) + 2 ) * Scale.X ),\r
+ 0,\r
+ ( ( w - m ) < 0x2a ) ? (int) ( ( w - m ) * Scale.X ) : (int) ( 0x2a * Scale.X ),\r
+ (int) ( 0x80 * Scale.Y )\r
+ )\r
+ );\r
}\r
}\r
}\r
else\r
{\r
int num8 = ( 0x60 + ( k * 0x80 ) ) + ( ( this.ct進行[ j ].n現在の値 * 0x180 ) / 100 );\r
- if( num8 < 480 )\r
+ if ( num8 < 480 )\r
{\r
- for( int n = 0; n < w; n += 0x2a )\r
+ for ( int n = 0; n < w; n += 0x2a )\r
{\r
- if( this.txFlush[ j ] != null )\r
+ if ( this.txFlush[ j ] != null )\r
{\r
- this.txFlush[ j ].t2D描画( CDTXMania.app.Device, x + n, num8, new Rectangle( k * 0x2a, 0, ( ( w - n ) < 0x2a ) ? ( w - n ) : 0x2a, 0x80 ) );\r
+ this.txFlush[ j ].t2D描画(\r
+ CDTXMania.app.Device,\r
+ (int) ( ( x + n ) * Scale.X ),\r
+ (int) ( num8 * Scale.Y ),\r
+ new Rectangle(\r
+ (int) ( k * 0x2a * Scale.X ),\r
+ 0,\r
+ ( ( w - n ) < 0x2a ) ? (int) ( ( w - n ) * Scale.X ) : (int) ( 0x2a * Scale.X ),\r
+ (int) ( 0x80 * Scale.Y )\r
+ )\r
+ );\r
}\r
}\r
}\r
return 0;\r
}\r
\r
- \r
+\r
// その他\r
\r
#region [ private ]\r
\r
public override int On進行描画()\r
{\r
- if( !base.b活性化してない )\r
+ if ( !base.b活性化してない )\r
{\r
- for( int i = 0; i < 6; i++ )\r
+ for ( int i = 0; i < 6; i++ )\r
{\r
- if( !base.ct進行[ i ].b停止中 )\r
+ if ( !base.ct進行[ i ].b停止中 )\r
{\r
E楽器パート e楽器パート = ( i < 3 ) ? E楽器パート.GUITAR : E楽器パート.BASS;\r
CTexture texture = CDTXMania.ConfigIni.bReverse[ (int) e楽器パート ] ? base.txFlush[ ( i % 3 ) + 3 ] : base.txFlush[ i % 3 ];\r
int num2 = CDTXMania.ConfigIni.bLeft[ (int) e楽器パート ] ? 1 : 0;\r
- for( int j = 0; j < 3; j++ )\r
+ for ( int j = 0; j < 3; j++ )\r
{\r
int x = ( ( ( i < 3 ) ? 0x1fb : 0x18e ) + this.nRGBのX座標[ num2, i ] ) + ( ( 0x10 * base.ct進行[ i ].n現在の値 ) / 100 );\r
int y = ( ( i < 3 ) ? 0x39 : 0x39 ) + ( j * 0x76 );\r
- if( texture != null )\r
+ if ( texture != null )\r
{\r
- texture.t2D描画( CDTXMania.app.Device, x, y, new Rectangle( j * 0x20, 0, ( 0x18 * ( 100 - base.ct進行[ i ].n現在の値 ) ) / 100, 0x76 ) );\r
+ texture.t2D描画(\r
+ CDTXMania.app.Device,\r
+ x * Scale.X,\r
+ y * Scale.Y,\r
+ new Rectangle(\r
+ (int) ( ( j * 0x20 ) * Scale.X ),\r
+ 0,\r
+ (int) ( ( 0x18 * ( 100 - base.ct進行[ i ].n現在の値 ) ) / 100 * Scale.X ),\r
+ (int) ( 0x76 * Scale.Y )\r
+ )\r
+ );\r
}\r
}\r
base.ct進行[ i ].t進行();\r
- if( base.ct進行[ i ].b終了値に達した )\r
+ if ( base.ct進行[ i ].b終了値に達した )\r
{\r
base.ct進行[ i ].t停止();\r
}\r
\r
#region [ private ]\r
//-----------------\r
- private readonly int[,] nRGBのX座標 = new int[ , ] { { 2, 0x1c, 0x36, 2, 0x1c, 0x36 }, { 0x36, 0x1c, 2, 0x36, 0x1c, 2 } };\r
+ private readonly int[ , ] nRGBのX座標 = new int[ , ] { { 2, 0x1c, 0x36, 2, 0x1c, 0x36 }, { 0x36, 0x1c, 2, 0x36, 0x1c, 2 } };\r
//-----------------\r
#endregion\r
}\r
{\r
if( !base.b活性化してない )\r
{\r
- for( int i = 0; i < 12; i++ )\r
+ #region [ 表示拡大率の設定 ]\r
+ for ( int i = 0; i < 12; i++ )\r
{\r
if( !base.st状態[ i ].ct進行.b停止中 )\r
{\r
}\r
}\r
}\r
+ #endregion\r
for( int j = 0; j < 12; j++ )\r
{\r
if( !base.st状態[ j ].ct進行.b停止中 )\r
int index = base.st判定文字列[ (int) base.st状態[ j ].judge ].n画像番号;\r
int baseX = 0;\r
int baseY = 0;\r
- if( j < 8 ) // Drums\r
+ #region [ Drums 判定文字列 baseX/Y生成 ]\r
+ if ( j < 8 ) // Drums\r
{\r
if ( CDTXMania.ConfigIni.判定文字表示位置.Drums == E判定文字表示位置.表示OFF )\r
{\r
baseY = CDTXMania.ConfigIni.bReverse.Drums ?\r
( ( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Drums ) == E判定文字表示位置.レーン上 ) ? ( 240 + ( this.n文字の縦表示位置[ j ] * 0x20 ) ) : 50 ) :\r
( ( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Drums ) == E判定文字表示位置.レーン上 ) ? ( 180 + ( this.n文字の縦表示位置[ j ] * 0x20 ) ) : 450 );\r
+ baseY = (int) ( baseY * Scale.Y );\r
}\r
+ #endregion\r
+ #region [ Bass 判定文字列描画 baseX/Y生成 ]\r
else if( j == 11 ) // Bass\r
{\r
if( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Bass ) == E判定文字表示位置.表示OFF )\r
{\r
case E判定文字表示位置.コンボ下:\r
baseX = this.stレーンサイズ[ j ].x;\r
- baseY = ( CDTXMania.ConfigIni.bReverse.Bass ? 100 : 300 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\r
+ baseY = (\r
+ CDTXMania.ConfigIni.bReverse.Bass ?\r
+ (int) ( 100 * Scale.Y ) :\r
+ (int) ( 300 * Scale.Y )\r
+ )\r
+ + (int) ( this.n文字の縦表示位置[ j ] * 0x20 * Scale.Y );\r
break;\r
case E判定文字表示位置.レーン上:\r
baseX = this.stレーンサイズ[ j ].x;\r
//baseY = ( CDTXMania.ConfigIni.bReverse.Bass ? 240 : 180 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\r
yB = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, CDTXMania.ConfigIni.bReverse.Bass );\r
- baseY = ( CDTXMania.ConfigIni.bReverse.Bass ? yB - 134 : yB + 85 ) +( this.n文字の縦表示位置[ j ] * 0x20 );\r
+ baseY = (\r
+ CDTXMania.ConfigIni.bReverse.Bass ?\r
+ yB - (int) ( 134 * Scale.Y ) :\r
+ yB + (int) ( 85 * Scale.Y )\r
+ )\r
+ + (int) ( this.n文字の縦表示位置[ j ] * 0x20 * Scale.Y );\r
break;\r
case E判定文字表示位置.判定ライン上:\r
baseX = this.stレーンサイズ[ j ].x;\r
yB = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, CDTXMania.ConfigIni.bReverse.Bass );\r
- baseY = CDTXMania.ConfigIni.bReverse.Bass ? yB + 30 : yB - 24;\r
+ baseY = CDTXMania.ConfigIni.bReverse.Bass ?\r
+ yB + (int) ( 30 * Scale.Y ) :\r
+ yB - (int) ( 24 * Scale.Y );\r
break;\r
}\r
}\r
+ #endregion\r
+ #region [ Guitar 判定文字列描画 baseX/Y生成 ]\r
else if( j == 10 ) // Guitar\r
{\r
if( ( (E判定文字表示位置) CDTXMania.ConfigIni.判定文字表示位置.Guitar ) == E判定文字表示位置.表示OFF )\r
{\r
case E判定文字表示位置.コンボ下:\r
baseX = ( CDTXMania.DTX.bチップがある.Bass ) ? this.stレーンサイズ[ j ].x : 0x198;\r
- baseY = ( CDTXMania.ConfigIni.bReverse.Guitar ? 100 : 300 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\r
+ baseY = (\r
+ CDTXMania.ConfigIni.bReverse.Guitar ?\r
+ (int) ( 100 * Scale.Y ) :\r
+ (int) ( 300 * Scale.Y )\r
+ )\r
+ + (int) ( this.n文字の縦表示位置[ j ] * 0x20 * Scale.Y );\r
break;\r
case E判定文字表示位置.レーン上:\r
baseX = ( CDTXMania.DTX.bチップがある.Bass ) ? this.stレーンサイズ[ j ].x : 0x198;\r
//baseY = ( CDTXMania.ConfigIni.bReverse.Guitar ? 240 : 180 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\r
yG = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, CDTXMania.ConfigIni.bReverse.Guitar );\r
- baseY = ( CDTXMania.ConfigIni.bReverse.Guitar ? yG - 134 : yG + 85 ) + ( this.n文字の縦表示位置[ j ] * 0x20 );\r
+ baseY = (\r
+ CDTXMania.ConfigIni.bReverse.Guitar ?\r
+ yG - (int) ( 134 * Scale.Y ):\r
+ yG + (int) ( 85 * Scale.Y )\r
+ )\r
+ + (int) ( this.n文字の縦表示位置[ j ] * 0x20 * Scale.Y );\r
break;\r
case E判定文字表示位置.判定ライン上:\r
baseX = ( CDTXMania.DTX.bチップがある.Bass ) ? this.stレーンサイズ[ j ].x : 0x198;\r
yG = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, CDTXMania.ConfigIni.bReverse.Guitar );\r
- baseY = CDTXMania.ConfigIni.bReverse.Guitar ? yG + 30 : yG - 24;\r
- break;\r
+ baseY = CDTXMania.ConfigIni.bReverse.Guitar ?\r
+ yG + (int) ( 30 * Scale.Y ) :\r
+ yG - (int) ( 24 * Scale.Y );\r
+ break;\r
}\r
}\r
- int xc = ( ( baseX + base.st状態[ j ].n相対X座標 ) + ( this.stレーンサイズ[ j ].w / 2 ) ); // Xcenter座標\r
- int x = xc - ( (int) ( ( 64f * base.st状態[ j ].fX方向拡大率 ) * ( ( j < 10 ) ? 1.0 : 0.7 ) ) );\r
- int y = ( baseY + base.st状態[ j ].n相対Y座標 ) - ( (int) ( ( ( 43f * base.st状態[ j ].fY方向拡大率 ) * ( ( j < 10 ) ? 1.0 : 0.7 ) ) / 2.0 ) );\r
+ #endregion\r
+ int xc = (int) ( ( ( ( baseX + base.st状態[ j ].n相対X座標 ) + ( this.stレーンサイズ[ j ].w / 2 ) ) ) * Scale.X ); // Xcenter座標\r
+ int x = xc - ( (int) ( ( ( 256f / 2 ) * base.st状態[ j ].fX方向拡大率 ) * ( ( j < 10 ) ? 1.0 : 0.7 ) ) );\r
+ int y = (int) ( baseY + ( base.st状態[ j ].n相対Y座標 ) * Scale.Y ) - ( (int) ( ( ( ( 256f / 3 ) * base.st状態[ j ].fY方向拡大率 ) * ( ( j < 10 ) ? 1.0 : 0.7 ) ) / 2.0 ) );\r
+\r
+ //int xc = ( ( baseX + base.st状態[ j ].n相対X座標 ) + ( this.stレーンサイズ[ j ].w / 2 ) ); // Xcenter座標\r
+ //int x = xc - ( (int) ( ( 64f * base.st状態[ j ].fX方向拡大率 ) * ( ( j < 10 ) ? 1.0 : 0.7 ) ) );\r
+ //int y = ( baseY + base.st状態[ j ].n相対Y座標 ) - ( (int) ( ( ( 43f * base.st状態[ j ].fY方向拡大率 ) * ( ( j < 10 ) ? 1.0 : 0.7 ) ) / 2.0 ) );\r
if( base.tx判定文字列[ index ] != null )\r
{\r
base.tx判定文字列[ index ].n透明度 = base.st状態[ j ].n透明度;\r
base.tx判定文字列[ index ].vc拡大縮小倍率 = new Vector3( (float) ( base.st状態[ j ].fX方向拡大率 * ( ( j < 10 ) ? 1.0 : 0.7 ) ), (float) ( base.st状態[ j ].fY方向拡大率 * ( ( j < 10 ) ? 1.0 : 0.7 ) ), 1f );\r
- base.tx判定文字列[ index ].t2D描画( CDTXMania.app.Device, x, y, base.st判定文字列[ (int) base.st状態[ j ].judge ].rc );\r
+ base.tx判定文字列[ index ].t2D描画(\r
+ CDTXMania.app.Device,\r
+ x,\r
+ y,\r
+ base.st判定文字列[ (int) base.st状態[ j ].judge ].rc\r
+ );\r
\r
#region [ #25370 2011.6.3 yyagi ShowLag support ]\r
if ( base.nShowLagType == (int) EShowLagType.ON ||\r
{\r
minus = true;\r
}\r
- x = xc - strDispLag.Length * 15 / 2;\r
+ //x = xc - strDispLag.Length * 15 / 2;\r
+ x = xc - (int) ( ( strDispLag.Length * 15 / 2 ) * Scale.X );\r
for ( int i = 0; i < strDispLag.Length; i++ )\r
{\r
int p = ( strDispLag[ i ] == '-' ) ? 11 : (int) ( strDispLag[ i ] - '0' ); //int.Parse(strDispLag[i]);\r
p += minus ? 0 : 12; // change color if it is minus value\r
- base.txlag数値.t2D描画( CDTXMania.app.Device, x + offsetX, y + 34, base.stLag数値[ p ].rc );\r
+ //base.txlag数値.t2D描画( CDTXMania.app.Device, x + offsetX, y + 34, base.stLag数値[ p ].rc );\r
+ base.txlag数値.t2D描画(\r
+ CDTXMania.app.Device,\r
+ x + offsetX * Scale.X,\r
+ y + 34 * Scale.Y,\r
+ base.stLag数値[ p ].rc\r
+ );\r
+ offsetX += 12; // 15 -> 12\r
offsetX += 15;\r
}\r
}\r
{\r
int yG = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, bReverse[ (int) E楽器パート.GUITAR ], true );\r
int yB = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, bReverse[ (int) E楽器パート.BASS ], true );\r
- base.t進行描画・Wailing枠( 587, 478,\r
+ base.t進行描画・Wailing枠(\r
+ (int) ( 587 * Scale.X ),\r
+ (int) ( 478 * Scale.X ),\r
yG,\r
yB\r
// CDTXMania.ConfigIni.bReverse.Guitar ? ( 400 - this.txWailing枠.sz画像サイズ.Height ) : 69, // 350:69\r
{\r
if( CDTXMania.DTX.bチップがある.Guitar )\r
{\r
- for( int i = 0; i < 355; i += 0x80 )\r
+ for ( int i = 0; i < 355; i += 0x80 )\r
{\r
- Rectangle rectangle = new Rectangle( 0, 0, 0x6d, 0x80 );\r
- if( ( i + 0x80 ) > 355 )\r
+ Rectangle rectangle = new Rectangle( 0, 0, (int) ( 0x6d * Scale.X ), (int) ( 0x80 * Scale.Y ) );\r
+ if ( ( i + 0x80 ) > 355 )\r
{\r
- rectangle.Height -= ( i + 0x80 ) - 355;\r
+ rectangle.Height -= (int) ( ( i + 0x80 - 355 ) * Scale.Y );\r
}\r
- if( this.txレーンフレームGB != null )\r
+ if ( this.txレーンフレームGB != null )\r
{\r
- this.txレーンフレームGB.t2D描画( CDTXMania.app.Device, 0x1fb, 0x39 + i, rectangle );\r
+ this.txレーンフレームGB.t2D描画(\r
+ CDTXMania.app.Device,\r
+ 0x1fb * Scale.X,\r
+ ( 0x39 + i ) * Scale.Y,\r
+ rectangle\r
+ );\r
}\r
}\r
}\r
if( CDTXMania.DTX.bチップがある.Bass )\r
{\r
- for( int j = 0; j < 355; j += 0x80 )\r
+ for ( int j = 0; j < 355; j += 0x80 )\r
{\r
- Rectangle rectangle2 = new Rectangle( 0, 0, 0x6d, 0x80 );\r
- if( ( j + 0x80 ) > 355 )\r
+ Rectangle rectangle2 = new Rectangle( 0, 0, (int) ( 0x6d * Scale.X ), (int) ( 0x80 * Scale.Y ) );\r
+ if ( ( j + 0x80 ) > 355 )\r
{\r
- rectangle2.Height -= ( j + 0x80 ) - 355;\r
+ rectangle2.Height -= (int) ( ( j + 0x80 - 355 ) * Scale.Y );\r
}\r
- if( this.txレーンフレームGB != null )\r
+ if ( this.txレーンフレームGB != null )\r
{\r
- this.txレーンフレームGB.t2D描画( CDTXMania.app.Device, 0x18e, 0x39 + j, rectangle2 );\r
+ this.txレーンフレームGB.t2D描画( CDTXMania.app.Device,\r
+ 0x18e * Scale.X,\r
+ ( 0x39 + j ) * Scale.Y,\r
+ rectangle2\r
+ );\r
}\r
}\r
}\r
{\r
if ( CDTXMania.DTX.bチップがある.Guitar )\r
{\r
- int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, bReverse[ (int) E楽器パート.GUITAR ] ) - 3;\r
+ int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, bReverse[ (int) E楽器パート.GUITAR ] ) - (int)(3 * Scale.Y);\r
// #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
if ( this.txヒットバーGB != null )\r
{\r
for ( int i = 0; i < 3; i++ )\r
{\r
- this.txヒットバーGB.t2D描画( CDTXMania.app.Device, 509 + ( 26 * i ), y );\r
- this.txヒットバーGB.t2D描画( CDTXMania.app.Device, ( 509 + ( 26 * i ) ) + 16, y, new Rectangle( 0, 0, 10, 16 ) );\r
+ this.txヒットバーGB.t2D描画( CDTXMania.app.Device,\r
+ ( 509 + ( 26 * i ) ) * Scale.X,\r
+ y\r
+ );\r
+ this.txヒットバーGB.t2D描画( CDTXMania.app.Device,\r
+ ( ( 509 + ( 26 * i ) ) + 16 ) * Scale.X,\r
+ y,\r
+ new Rectangle( 0, 0, (int) ( 10 * Scale.X ), (int) ( 16 * Scale.Y ) ) );\r
}\r
}\r
}\r
if ( CDTXMania.DTX.bチップがある.Bass )\r
{\r
- int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, bReverse[ (int) E楽器パート.BASS ] ) - 3;\r
+ int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, bReverse[ (int) E楽器パート.BASS ] ) - (int)(3 * Scale.Y);\r
// #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
if ( this.txヒットバーGB != null )\r
{\r
for ( int j = 0; j < 3; j++ )\r
{\r
- this.txヒットバーGB.t2D描画( CDTXMania.app.Device, 400 + ( 26 * j ), y );\r
- this.txヒットバーGB.t2D描画( CDTXMania.app.Device, ( 400 + ( 26 * j ) ) + 16, y, new Rectangle( 0, 0, 10, 16 ) );\r
+ this.txヒットバーGB.t2D描画( CDTXMania.app.Device,\r
+ ( 400 + ( 26 * j ) ) * Scale.X,\r
+ y );\r
+ this.txヒットバーGB.t2D描画( CDTXMania.app.Device,\r
+ ( ( 400 + ( 26 * j ) ) + 16 ) * Scale.X,\r
+ y,\r
+ new Rectangle( 0, 0, (int) ( 10 * Scale.X ), (int) ( 16 * Scale.Y ) ) );\r
}\r
}\r
}\r
}\r
}\r
\r
- private void t進行描画・グラフ() \r
+ private void t進行描画・グラフ()\r
{\r
if ( !CDTXMania.ConfigIni.bストイックモード && !CDTXMania.ConfigIni.bドラムが全部オートプレイである && CDTXMania.ConfigIni.bGraph.Drums )\r
{\r
}\r
protected override void t進行描画・パネル文字列()\r
{\r
- base.t進行描画・パネル文字列( 336, 427 );\r
+ base.t進行描画・パネル文字列( 336, 427+1 );\r
}\r
\r
protected override void t進行描画・演奏情報()\r
\r
protected override void t背景テクスチャの生成()\r
{\r
- Rectangle bgrect = new Rectangle( 338, 57, 278, 355 );\r
+ Rectangle bgrect = new Rectangle( (int) ( 338 * Scale.X ), (int) ( 57 * Scale.Y ), (int) ( 278 * Scale.X ), (int) ( 355 * Scale.Y ) );\r
string DefaultBgFilename = @"Graphics\ScreenPlayDrums background.jpg";\r
string BgFilename = "";\r
if ( ( ( CDTXMania.DTX.BACKGROUND != null ) && ( CDTXMania.DTX.BACKGROUND.Length > 0 ) ) && !CDTXMania.ConfigIni.bストイックモード )\r
}\r
int x = this.nチャンネルtoX座標[ pChip.nチャンネル番号 - 0x11 ];\r
int y = configIni.bReverse.Drums ? ( 0x38 + pChip.nバーからの距離dot.Drums ) : ( 0x1a6 - pChip.nバーからの距離dot.Drums );\r
+ x = (int) ( x * Scale.X );\r
+ y = (int) ( y * Scale.Y );\r
if ( this.txチップ != null )\r
{\r
this.txチップ.vc拡大縮小倍率 = new Vector3( (float) pChip.dbチップサイズ倍率, (float) pChip.dbチップサイズ倍率, 1f );\r
switch ( pChip.nチャンネル番号 )\r
{\r
case 0x11:\r
- x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ x += (int) ( 0x10 * Scale.X ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 * Scale.X ) / 2.0 ) );\r
if ( this.txチップ != null )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4, new Rectangle( 0x2c, num9 * 7, 0x20, 8 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0x2c * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x20 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
}\r
break;\r
\r
case 0x12:\r
- x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ x += (int) ( 0x10 * Scale.X ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 * Scale.X ) / 2.0 ) );\r
if ( this.txチップ != null )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4, new Rectangle( 0x4c, num9 * 7, 0x20, 8 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0x4c * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x20 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
}\r
break;\r
\r
case 0x13:\r
- x = ( x + 0x16 ) - ( (int) ( ( 44.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ x += (int) ( 0x16 * Scale.X ) - ( (int) ( ( 44.0 * pChip.dbチップサイズ倍率 * Scale.X ) / 2.0 ) );\r
if ( this.txチップ != null )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 5, new Rectangle( 0, num9 * 9, 0x2c, 10 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 5 * Scale.Y, new Rectangle( (int) ( 0 * Scale.X ), (int) ( num9 * 9 * Scale.Y ), (int) ( 0x2c * Scale.X ), (int) ( 10 * Scale.Y ) ) );\r
}\r
break;\r
\r
case 0x14:\r
- x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ x += (int) ( 0x10 * Scale.X ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 * Scale.X ) / 2.0 ) );\r
if ( this.txチップ != null )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4, new Rectangle( 0x6c, num9 * 7, 0x20, 8 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0x6c * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x20 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
}\r
break;\r
\r
case 0x15:\r
- x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ x += (int) ( 0x10 * Scale.X ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 * Scale.X ) / 2.0 ) );\r
if ( this.txチップ != null )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4, new Rectangle( 140, num9 * 7, 0x20, 8 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 140 * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x20 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
}\r
break;\r
\r
case 0x16:\r
- x = ( x + 0x13 ) - ( (int) ( ( 38.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ x += (int) ( 0x13 * Scale.X ) - ( (int) ( ( 38.0 * pChip.dbチップサイズ倍率 * Scale.X ) / 2.0 ) );\r
if ( this.txチップ != null )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 0x15, new Rectangle( 0xcc, 0x158, 0x26, 0x24 ) );\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4, new Rectangle( 0xcc, num9 * 7, 0x26, 8 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 0x15 * Scale.Y, new Rectangle( (int) ( 0xcc * Scale.X ), (int) ( 0x158 * Scale.Y ), (int) ( 0x26 * Scale.X ), (int) ( 0x24 * Scale.Y ) ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0xcc * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x26 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
}\r
break;\r
\r
case 0x17:\r
- x = ( x + 0x10 ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ x += (int) ( 0x10 * Scale.X ) - ( (int) ( ( 32.0 * pChip.dbチップサイズ倍率 * Scale.X ) / 2.0 ) );\r
if ( this.txチップ != null )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4, new Rectangle( 0xac, num9 * 7, 0x20, 8 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0xac * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x20 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
}\r
break;\r
\r
case 0x18:\r
- x = ( x + 13 ) - ( (int) ( ( 26.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ x += (int) ( 13 * Scale.X ) - ( (int) ( ( 26.0 * pChip.dbチップサイズ倍率 * Scale.X ) / 2.0 ) );\r
if ( this.txチップ != null )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4, new Rectangle( 0xf2, num9 * 7, 0x1a, 8 ) );\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 9, new Rectangle( 0xf2, 0x158, 0x1a, 0x12 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0xf2 * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x1a * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 9 * Scale.Y, new Rectangle( (int) ( 0xf2 * Scale.X ), (int) ( 0x158 * Scale.Y ), (int) ( 0x1a * Scale.X ), (int) ( 0x12 * Scale.Y ) ) );\r
}\r
break;\r
\r
case 0x19:\r
- x = ( x + 13 ) - ( (int) ( ( 26.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ x += (int) ( 13 * Scale.X ) - ( (int) ( ( 26.0 * pChip.dbチップサイズ倍率 * Scale.X ) / 2.0 ) );\r
if ( this.txチップ != null )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4, new Rectangle( 0xf2, num9 * 7, 0x1a, 8 ) );\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 9, new Rectangle( 0xf2, 0x158, 0x1a, 0x12 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0xf2 * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x1a * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 9 * Scale.Y, new Rectangle( (int) ( 0xf2 * Scale.X ), (int) ( 0x158 * Scale.Y ), (int) ( 0x1a * Scale.X ), (int) ( 0x12 * Scale.Y ) ) );\r
}\r
break;\r
\r
case 0x1a:\r
- x = ( x + 0x13 ) - ( (int) ( ( 38.0 * pChip.dbチップサイズ倍率 ) / 2.0 ) );\r
+ x += (int) ( 0x13 * Scale.X ) - ( (int) ( ( 38.0 * pChip.dbチップサイズ倍率 * Scale.X ) / 2.0 ) );\r
if ( this.txチップ != null )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 0x15, new Rectangle( 0xcc, 0x158, 0x26, 0x24 ) );\r
- this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4, new Rectangle( 0xcc, num9 * 7, 0x26, 8 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 0x15 * Scale.Y, new Rectangle( (int) ( 0xcc * Scale.X ), (int) ( 0x158 * Scale.Y ), (int) ( 0x26 * Scale.X ), (int) ( 0x24 * Scale.Y ) ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device, x, y - 4 * Scale.Y, new Rectangle( (int) ( 0xcc * Scale.X ), (int) ( num9 * 7 * Scale.Y ), (int) ( 0x26 * Scale.X ), (int) ( 8 * Scale.Y ) ) );\r
}\r
break;\r
}\r
protected override void t進行描画・チップ・ギターベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst )\r
{\r
base.t進行描画・チップ・ギターベース( configIni, ref dTX, ref pChip, inst,\r
- // 95, 374,\r
演奏判定ライン座標.n判定ラインY座標( inst, false, false ), // 95 Normal\r
- 演奏判定ライン座標.n判定ラインY座標( inst, false, true ), // 374 Reverse\r
- 57, 412, // チップのY軸表示範囲\r
- 509, 400,\r
- 268, 144, 76, 6, // オープンチップの x, y, w, h\r
- 24, 509, 561, 400, 452, 26, 24 );\r
+ 演奏判定ライン座標.n判定ラインY座標( inst, false, true ), // 374 Reverse\r
+ (int) ( 57 * Scale.Y ), (int) ( 412 * Scale.Y ), // チップのY軸表示範囲\r
+ 509, 400, // openチップのX座標(Gt, Bs)\r
+ 268, 144, 76, 6, 24, // オープンチップregionの x, y, w, h, 通常チップのw\r
+ 509, 561, 400, 452, // GtのX, Gt左利きのX, BsのX, Bs左利きのX,\r
+ 26, 24 // 描画のX座標間隔, テクスチャのX座標間隔\r
+ );\r
}\r
#if false\r
protected override void t進行描画・チップ・ギターベース( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, E楽器パート inst )\r
{\r
if ( configIni.bGuitar有効 )\r
{\r
- //if ( configIni.bSudden.Guitar )\r
- //{\r
- // pChip.b可視 = pChip.nバーからの距離dot.Guitar < 200;\r
- //}\r
- //if ( configIni.bHidden.Guitar && ( pChip.nバーからの距離dot.Guitar < 100 ) )\r
- //{\r
- // pChip.b可視 = false;\r
- //}\r
-\r
// 後日、以下の部分を何とかCStage演奏画面共通.csに移したい。\r
if ( !pChip.bHit && pChip.b可視 )\r
{\r
演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, true ) // 374\r
}; // ドラム画面かギター画面かで変わる値\r
//int[] y_base = { 0x5f, 0x176 }; // 判定バーのY座標: ドラム画面かギター画面かで変わる値\r
- int offset = 0x39; // ドラム画面かギター画面かで変わる値\r
-\r
- const int WailingWidth = 20; // ウェイリングチップ画像の幅: 4種全て同じ値\r
- const int WailingHeight = 50; // ウェイリングチップ画像の高さ: 4種全て同じ値\r
- const int baseTextureOffsetX = 268; // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
- const int baseTextureOffsetY = 174; // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
- const int drawX = 588; // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
-\r
- const int numA = 25; // 4種全て同じ値\r
- int y = configIni.bReverse.Guitar ? ( y_base[1] - pChip.nバーからの距離dot.Guitar ) : ( y_base[0] + pChip.nバーからの距離dot.Guitar );\r
+ int offset = (int) ( 0x39 * Scale.Y ); // ドラム画面かギター画面かで変わる値\r
+\r
+ const int WailingWidth = (int) ( 20 * Scale.X ); // ウェイリングチップ画像の幅: 4種全て同じ値\r
+ const int WailingHeight = (int) ( 50 * Scale.Y ); // ウェイリングチップ画像の高さ: 4種全て同じ値\r
+ const int baseTextureOffsetX = (int) ( 268 * Scale.X ); // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
+ const int baseTextureOffsetY = (int) ( 174 * Scale.Y ); // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
+ const int drawX = (int) ( 588 * Scale.X ); // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
+\r
+ const int numA = (int) ( 25 * Scale.Y ); // 4種全て同じ値\r
+ int y = configIni.bReverse.Guitar ?\r
+ ( y_base[1] - (int) ( pChip.nバーからの距離dot.Guitar * Scale.Y ) ) :\r
+ ( y_base[0] + (int) ( pChip.nバーからの距離dot.Guitar * Scale.Y ) );\r
int numB = y - offset; // 4種全て同じ定義\r
int numC = 0; // 4種全て同じ初期値\r
- const int numD = 355; // ドラム画面かギター画面かで変わる値\r
- if ( ( numB < ( numD + numA ) ) && ( numB > -numA ) ) // 以下のロジックは4種全て同じ\r
+ const int showRangeY1 = (int) ( 355 * Scale.Y ); // ドラム画面かギター画面かで変わる値\r
+ if ( ( numB < ( showRangeY1 + numA ) ) && ( numB > -numA ) ) // 以下のロジックは4種全て同じ\r
{\r
int c = this.ctWailingチップ模様アニメ.n現在の値;\r
- Rectangle rect = new Rectangle( baseTextureOffsetX + ( c * WailingWidth ), baseTextureOffsetY, WailingWidth, WailingHeight);\r
+ Rectangle rect = new Rectangle(\r
+ baseTextureOffsetX + ( c * WailingWidth ),\r
+ baseTextureOffsetY,\r
+ WailingWidth,\r
+ WailingHeight\r
+ );\r
if ( numB < numA )\r
{\r
rect.Y += numA - numB;\r
rect.Height -= numA - numB;\r
numC = numA - numB;\r
}\r
- if ( numB > ( numD - numA ) )\r
+ if ( numB > ( showRangeY1 - numA ) )\r
{\r
- rect.Height -= numB - ( numD - numA );\r
+ rect.Height -= numB - ( showRangeY1 - numA );\r
}\r
- if ( ( rect.Bottom > rect.Top ) && ( this.txチップ != null ) )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, drawX, ( y - numA ) + numC, rect );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device,\r
+ drawX,\r
+ ( ( y - numA ) + numC ),\r
+ rect\r
+ );\r
}\r
}\r
}\r
- // if ( !pChip.bHit && ( pChip.nバーからの距離dot.Guitar < 0 ) )\r
- // {\r
- // if ( pChip.nバーからの距離dot.Guitar < -234 ) // #25253 2011.5.29 yyagi: Don't set pChip.bHit=true for wailing at once. It need to 1sec-delay (234pix per 1sec). \r
- // {\r
- // pChip.bHit = true;\r
- // }\r
- // if ( configIni.bAutoPlay.Guitar )\r
- // {\r
- // pChip.bHit = true; // #25253 2011.5.29 yyagi: Set pChip.bHit=true if autoplay.\r
- // this.actWailingBonus.Start( E楽器パート.GUITAR, this.r現在の歓声Chip.Guitar );\r
- // }\r
- // }\r
- // return;\r
- //}\r
- //pChip.bHit = true;\r
}\r
base.t進行描画・チップ・ギター・ウェイリング( configIni, ref dTX, ref pChip );\r
}\r
{\r
if ( configIni.bGuitar有効 )\r
{\r
- //if ( configIni.bSudden.Bass )\r
- //{\r
- // pChip.b可視 = pChip.nバーからの距離dot.Bass < 200;\r
- //}\r
- //if ( configIni.bHidden.Bass && ( pChip.nバーからの距離dot.Bass < 100 ) )\r
- //{\r
- // pChip.b可視 = false;\r
- //}\r
-\r
- //\r
// 後日、以下の部分を何とかCStage演奏画面共通.csに移したい。\r
- //\r
if ( !pChip.bHit && pChip.b可視 )\r
{\r
if ( this.txチップ != null )\r
//int[] y_base = { 0x5f, 0x176 }; // 判定バーのY座標: ドラム画面かギター画面かで変わる値\r
int offset = 0x39; // ドラム画面かギター画面かで変わる値\r
\r
- const int WailingWidth = 20; // ウェイリングチップ画像の幅: 4種全て同じ値\r
- const int WailingHeight = 50; // ウェイリングチップ画像の高さ: 4種全て同じ値\r
- const int baseTextureOffsetX = 268; // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
- const int baseTextureOffsetY = 174; // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
- const int drawX = 479; // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
+ const int WailingWidth = (int) ( 20 * Scale.X ); // ウェイリングチップ画像の幅: 4種全て同じ値\r
+ const int WailingHeight = (int) ( 50 * Scale.Y ); // ウェイリングチップ画像の高さ: 4種全て同じ値\r
+ const int baseTextureOffsetX = (int) ( 268 * Scale.X ); // テクスチャ画像中のウェイリングチップ画像の位置X: ドラム画面かギター画面かで変わる値\r
+ const int baseTextureOffsetY = (int) ( 174 * Scale.Y ); // テクスチャ画像中のウェイリングチップ画像の位置Y: ドラム画面かギター画面かで変わる値\r
+ const int drawX = (int) ( 479 * Scale.X ); // ウェイリングチップ描画位置X座標: 4種全て異なる値\r
\r
- const int numA = 25; // 4種全て同じ値\r
- int y = configIni.bReverse.Bass ? ( y_base[ 1 ] - pChip.nバーからの距離dot.Bass ) : ( y_base[ 0 ] + pChip.nバーからの距離dot.Bass );\r
+ const int numA = (int) ( 25 * Scale.Y ); // 4種全て同じ値\r
+ int y = configIni.bReverse.Bass ?\r
+ ( y_base[ 1 ] - (int) ( pChip.nバーからの距離dot.Bass * Scale.Y ) ) :\r
+ ( y_base[ 0 ] + (int) ( pChip.nバーからの距離dot.Bass * Scale.Y ) );\r
int numB = y - offset; // 4種全て同じ定義\r
int numC = 0; // 4種全て同じ初期値\r
- const int numD = 355; // ドラム画面かギター画面かで変わる値\r
- if ( ( numB < ( numD + numA ) ) && ( numB > -numA ) ) // 以下のロジックは4種全て同じ\r
+ const int showRangeY1 = (int) ( 355 * Scale.Y ); // ドラム画面かギター画面かで変わる値\r
+ if ( ( numB < ( showRangeY1 + numA ) ) && ( numB > -numA ) ) // 以下のロジックは4種全て同じ\r
{\r
int c = this.ctWailingチップ模様アニメ.n現在の値;\r
- Rectangle rect = new Rectangle( baseTextureOffsetX + ( c * WailingWidth ), baseTextureOffsetY, WailingWidth, WailingHeight );\r
+ Rectangle rect = new Rectangle(\r
+ baseTextureOffsetX + ( c * WailingWidth ),\r
+ baseTextureOffsetY,\r
+ WailingWidth,\r
+ WailingHeight\r
+ );\r
if ( numB < numA )\r
{\r
rect.Y += numA - numB;\r
rect.Height -= numA - numB;\r
numC = numA - numB;\r
}\r
- if ( numB > ( numD - numA ) )\r
+ if ( numB > ( showRangeY1 - numA ) )\r
{\r
- rect.Height -= numB - ( numD - numA );\r
+ rect.Height -= numB - ( showRangeY1 - numA );\r
}\r
if ( ( rect.Bottom > rect.Top ) && ( this.txチップ != null ) )\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, drawX, ( y - numA ) + numC, rect );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device,\r
+ drawX,\r
+ ( ( y - numA ) + numC ),\r
+ rect );\r
}\r
}\r
}\r
- // if ( !pChip.bHit && ( pChip.nバーからの距離dot.Bass < 0 ) )\r
- // {\r
- // if ( pChip.nバーからの距離dot.Bass < -234 ) // #25253 2011.5.29 yyagi: Don't set pChip.bHit=true for wailing at once. It need to 1sec-delay (234pix per 1sec).\r
- // {\r
- // pChip.bHit = true;\r
- // }\r
- // if ( configIni.bAutoPlay.Bass )\r
- // {\r
- // this.actWailingBonus.Start( E楽器パート.BASS, this.r現在の歓声Chip.Bass );\r
- // pChip.bHit = true; // #25253 2011.5.29 yyagi: Set pChip.bHit=true if autoplay.\r
- // }\r
- // }\r
- // return;\r
- //}\r
- //pChip.bHit = true;\r
}\r
base.t進行描画・チップ・ベース・ウェイリング( configIni, ref dTX, ref pChip);\r
}\r
dTX.tWave再生位置自動補正();\r
}\r
}\r
+ #region [ Drumsの小節線と、小節番号 ]\r
if ( configIni.bDrums有効 )\r
{\r
if ( configIni.b演奏情報を表示する && ( configIni.eDark == Eダークモード.OFF ) )\r
{\r
int n小節番号 = n小節番号plus1 - 1;\r
- CDTXMania.act文字コンソール.tPrint( 0x14d, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 0x11 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 0x11 ), C文字コンソール.Eフォント種別.白, n小節番号.ToString() );\r
+ CDTXMania.act文字コンソール.tPrint(\r
+ (int) ( 0x14d * Scale.X ),\r
+ configIni.bReverse.Drums ?\r
+ (int) ( ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 0x11 ) * Scale.X ) :\r
+ (int) ( ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 0x11 ) * Scale.Y ),\r
+ C文字コンソール.Eフォント種別.白,\r
+ n小節番号.ToString()\r
+ );\r
}\r
if ( ( ( configIni.eDark != Eダークモード.FULL ) && pChip.b可視 ) && ( this.txチップ != null ) )\r
{\r
this.txチップ.n透明度 = 255;\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x23, configIni.bReverse.Drums ? ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) : ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ), new Rectangle( 0, 0x1bc, 0x128, 2 ) );\r
+ this.txチップ.t2D描画( CDTXMania.app.Device,\r
+ 0x23 * Scale.X,\r
+ configIni.bReverse.Drums ?\r
+ (int) ( ( ( 0x38 + pChip.nバーからの距離dot.Drums ) - 1 ) * Scale.Y ) :\r
+ (int) ( ( ( 0x1a6 - pChip.nバーからの距離dot.Drums ) - 1 ) * Scale.Y ),\r
+ new Rectangle( 0, (int) ( 0x1bc * Scale.Y ), (int) ( 0x128 * Scale.X ), (int) ( 2 * Scale.Y ) ) );\r
}\r
}\r
+ #endregion\r
if ( ( pChip.b可視 && configIni.bGuitar有効 ) && ( configIni.eDark != Eダークモード.FULL ) && ( this.txチップ != null ) )\r
{\r
this.txチップ.n透明度 = 255;\r
+ #region [ Guitarの小節線 ]\r
//int y = configIni.bReverse.Guitar ? ( ( 0x176 - pChip.nバーからの距離dot.Guitar ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Guitar ) - 1 );\r
int y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, configIni.bReverse.Guitar );\r
if ( configIni.bReverse.Guitar )\r
{\r
- y = y - pChip.nバーからの距離dot.Guitar - 1;\r
+ y = y - (int) ( pChip.nバーからの距離dot.Guitar * Scale.Y ) - 1;\r
}\r
else\r
{\r
- y = y + pChip.nバーからの距離dot.Guitar - 1;\r
+ y = y + (int) ( pChip.nバーからの距離dot.Guitar * Scale.Y ) - 1;\r
}\r
int n小節線消失距離dot;\r
// Reverse時の小節線消失位置を、RGBボタンの真ん中程度に。\r
// 非Reverse時の消失処理は、従来通りt進行描画・チップ()にお任せ。\r
- n小節線消失距離dot = configIni.bReverse.Guitar ? -100 : ( configIni.e判定位置.Guitar == E判定位置.標準 ) ? -50 : -25;\r
+ n小節線消失距離dot = configIni.bReverse.Guitar ?\r
+ (int) ( -100 * Scale.Y ):\r
+ ( configIni.e判定位置.Guitar == E判定位置.標準 ) ? (int) ( -50 * Scale.Y ) : (int) ( -25 * Scale.Y );\r
\r
- if ( ( dTX.bチップがある.Guitar && ( y > 0x39 ) ) && ( ( y < 0x19c ) ) &&\r
+ if ( ( dTX.bチップがある.Guitar ) &&\r
+ ( 0x39 * Scale.Y < y ) && ( ( y < 0x19c * Scale.Y ) ) &&\r
( pChip.nバーからの距離dot.Guitar >= n小節線消失距離dot )\r
)\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x1fb, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
+ this.txチップ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ 0x1fb * Scale.X,\r
+ y,\r
+ new Rectangle(\r
+ 0,\r
+ (int) ( 450 * Scale.Y ),\r
+ (int) ( 0x4e * Scale.X ),\r
+ (int) ( 1 * Scale.Y )\r
+ )\r
+ );\r
}\r
+ #endregion\r
+ #region [ Bassの小節線 ]\r
//y = configIni.bReverse.Bass ? ( ( 0x176 - pChip.nバーからの距離dot.Bass ) - 1 ) : ( ( 0x5f + pChip.nバーからの距離dot.Bass ) - 1 );\r
y = 演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, configIni.bReverse.Bass );\r
if ( configIni.bReverse.Bass )\r
{\r
- y = y - pChip.nバーからの距離dot.Bass - 1;\r
+ y = y - (int) ( pChip.nバーからの距離dot.Bass * Scale.Y ) - 1;\r
}\r
else\r
{\r
- y = y + pChip.nバーからの距離dot.Bass - 1;\r
+ y = y + (int) ( pChip.nバーからの距離dot.Bass * Scale.Y ) - 1;\r
}\r
- n小節線消失距離dot = configIni.bReverse.Bass ? -100 : ( configIni.e判定位置.Bass == E判定位置.標準 ) ? -50 : -25;\r
- if ( ( dTX.bチップがある.Bass && ( y > 0x39 ) ) && ( ( y < 0x19c ) ) &&\r
+ n小節線消失距離dot = configIni.bReverse.Bass ?\r
+ (int) ( -100 * Scale.Y ) :\r
+ ( configIni.e判定位置.Bass == E判定位置.標準 ) ? (int) ( -50 * Scale.Y ) : (int) ( -25 * Scale.Y );\r
+\r
+ if ( ( dTX.bチップがある.Bass ) &&\r
+ ( 0x39 * Scale.Y < y ) && ( y < 0x19c * Scale.Y ) &&\r
( pChip.nバーからの距離dot.Bass >= n小節線消失距離dot )\r
)\r
{\r
- this.txチップ.t2D描画( CDTXMania.app.Device, 0x18e, y, new Rectangle( 0, 450, 0x4e, 1 ) );\r
+ this.txチップ.t2D描画(\r
+ CDTXMania.app.Device,\r
+ 0x18e * Scale.X,\r
+ y,\r
+ new Rectangle(\r
+ 0,\r
+ (int) ( 450 * Scale.Y ),\r
+ (int) ( 0x4e * Scale.X ),\r
+ (int) ( 1 * Scale.Y )\r
+ )\r
+ );\r
}\r
+ #endregion\r
}\r
}\r
#endregion\r
\r
namespace DTXMania\r
{\r
+ #region [ Ech定義 ]\r
+ public enum Ech定義\r
+ {\r
+ BGM = 0x01,\r
+ BarLength = 0x02,\r
+ BPM = 0x03,\r
+ BGALayer1 = 0x04,\r
+ //ExObj_nouse = 0x05,\r
+ //MissAnimation_nouse = 0x06,\r
+ BGALayer2 = 0x07,\r
+ BPMEx = 0x08,\r
+ //BMS_reserved_09 = 0x09,\r
+ //BMS_reserved_0A = 0x0A,\r
+ //BMS_reserved_0B = 0x0B,\r
+ //BMS_reserved_0C = 0x0C,\r
+ //BMS_reserved_0D = 0x0D,\r
+ //BMS_reserved_0E = 0x0E,\r
+ //BMS_reserved_0F = 0x0F,\r
+ //BMS_reserved_10 = 0x10,\r
+ HiHatClose = 0x11,\r
+ Snare = 0x12,\r
+ BassDrum = 0x13,\r
+ HighTom = 0x14,\r
+ LowTom = 0x15,\r
+ Cymbal = 0x16,\r
+ FloorTom = 0x17,\r
+ HiHatOpen = 0x18,\r
+ RideCymbal = 0x19,\r
+ LeftCymbal = 0x1A,\r
+ //nouse_1b = 0x1B,\r
+ //nouse_1c = 0x1C,\r
+ //nouse_1d = 0x1D,\r
+ //nouse_1e = 0x1E,\r
+ //nouse_1f = 0x1F,\r
+ Guitar_Open = 0x20,\r
+ Guitar_xxB = 0x21,\r
+ Guitar_xGx = 0x22,\r
+ Guitar_xGB = 0x23,\r
+ Guitar_Rxx = 0x24,\r
+ Guitar_RxB = 0x25,\r
+ Guitar_RGx = 0x26,\r
+ Guitar_RGB = 0x27,\r
+ Guitar_Wailing = 0x28,\r
+ //flowspeed_gt_nouse = 0x29,\r
+ //nouse_2a = 0x2A,\r
+ //nouse_2b = 0x2B,\r
+ //nouse_2c = 0x2C,\r
+ //nouse_2d = 0x2D,\r
+ //nouse_2e = 0x2E,\r
+ Guitar_WailingSound = 0x2F,\r
+ //flowspeed_dr_nouse = 0x30,\r
+ HiHatClose_Hidden = 0x31,\r
+ Snare_Hidden = 0x32,\r
+ BassDrum_Hidden = 0x33,\r
+ HighTom_Hidden = 0x34,\r
+ LowTom_Hidden = 0x35,\r
+ Cymbal_Hidden = 0x36,\r
+ FloorTom_Hidden = 0x37,\r
+ HiHatOpen_Hidden = 0x38,\r
+ RideCymbal_Hidden = 0x39,\r
+ LeftCymbal_Hidden = 0x3A,\r
+ //nouse_3b = 0x3B,\r
+ //nouse_3c = 0x3C,\r
+ //nouse_3d = 0x3D,\r
+ //nouse_3e = 0x3E,\r
+ //nouse_3f = 0x3F,\r
+ //BMS_reserved_40 = 0x40,\r
+ //HiddenObject_2P_41 = 0x41,\r
+ //HiddenObject_2P_42 = 0x42,\r
+ //HiddenObject_2P_43 = 0x43,\r
+ //HiddenObject_2P_44 = 0x44,\r
+ //HiddenObject_2P_45 = 0x45,\r
+ //HiddenObject_2P_46 = 0x46,\r
+ //BMS_reserved_47 = 0x47,\r
+ //BMS_reserved_48 = 0x48,\r
+ //BMS_reserved_49 = 0x49,\r
+ //nouse_4a = 0x4A,\r
+ //nouse_4b = 0x4B,\r
+ //nouse_4c = 0x4C,\r
+ //nouse_4d = 0x4D,\r
+ //nouse_4e = 0x4E,\r
+ //nouse_4f = 0x4F,\r
+ BarLine = 0x50,\r
+ BeatLine = 0x51,\r
+ MIDIChorus = 0x52,\r
+ FillIn = 0x53,\r
+ Movie = 0x54,\r
+ BGALayer3 = 0x55,\r
+ BGALayer4 = 0x56,\r
+ BGALayer5 = 0x57,\r
+ BGALayer6 = 0x58,\r
+ BGALayer7 = 0x59,\r
+ //nouse_5a = 0x5A,\r
+ //nouse_5b = 0x5B,\r
+ //nouse_5c = 0x5C,\r
+ //nouse_5d = 0x5D,\r
+ //nouse_5e = 0x5E,\r
+ //nouse_5f = 0x5F,\r
+ BGALayer8 = 0x60,\r
+ SE01 = 0x61,\r
+ SE02 = 0x62,\r
+ SE03 = 0x63,\r
+ SE04 = 0x64,\r
+ SE05 = 0x65,\r
+ SE06 = 0x66,\r
+ SE07 = 0x67,\r
+ SE08 = 0x68,\r
+ SE09 = 0x69,\r
+ //nouse_6a = 0x6A,\r
+ //nouse_6b = 0x6B,\r
+ //nouse_6c = 0x6C,\r
+ //nouse_6d = 0x6D,\r
+ //nouse_6e = 0x6E,\r
+ //nouse_6f = 0x6F,\r
+ SE10 = 0x70,\r
+ SE11 = 0x71,\r
+ SE12 = 0x72,\r
+ SE13 = 0x73,\r
+ SE14 = 0x74,\r
+ SE15 = 0x75,\r
+ SE16 = 0x76,\r
+ SE17 = 0x77,\r
+ SE18 = 0x78,\r
+ SE19 = 0x79,\r
+ //nouse_7a = 0x7A,\r
+ //nouse_7b = 0x7B,\r
+ //nouse_7c = 0x7C,\r
+ //nouse_7d = 0x7D,\r
+ //nouse_7e = 0x7E,\r
+ //nouse_7f = 0x7F,\r
+ SE20 = 0x80,\r
+ SE21 = 0x81,\r
+ SE22 = 0x82,\r
+ SE23 = 0x83,\r
+ SE24 = 0x84,\r
+ SE25 = 0x85,\r
+ SE26 = 0x86,\r
+ SE27 = 0x87,\r
+ SE28 = 0x88,\r
+ SE29 = 0x89,\r
+ //nouse_8a = 0x8A,\r
+ //nouse_8b = 0x8B,\r
+ //nouse_8c = 0x8C,\r
+ //nouse_8d = 0x8D,\r
+ //nouse_8e = 0x8E,\r
+ //nouse_8f = 0x8F,\r
+ SE30 = 0x90,\r
+ SE31 = 0x91,\r
+ SE32 = 0x92,\r
+ //nouse_90 = 0x90,\r
+ //nouse_91 = 0x91,\r
+ //nouse_92 = 0x92,\r
+ //nouse_93 = 0x93,\r
+ //nouse_94 = 0x94,\r
+ //nouse_95 = 0x95,\r
+ //nouse_96 = 0x96,\r
+ //nouse_97 = 0x97,\r
+ //nouse_98 = 0x98,\r
+ //nouse_99 = 0x99,\r
+ //nouse_9a = 0x9A,\r
+ //nouse_9b = 0x9B,\r
+ //nouse_9c = 0x9C,\r
+ //nouse_9d = 0x9D,\r
+ //nouse_9e = 0x9E,\r
+ //nouse_9f = 0x9F,\r
+ Bass_Open = 0xA0,\r
+ Bass_xxB = 0xA1,\r
+ Bass_xGx = 0xA2,\r
+ Bass_xGB = 0xA3,\r
+ Bass_Rxx = 0xA4,\r
+ Bass_RxB = 0xA5,\r
+ Bass_RGx = 0xA6,\r
+ Bass_RGB = 0xA7,\r
+ Bass_Wailing = 0xA8,\r
+ //nouse_a9 = 0xA9,\r
+ //nouse_aa = 0xAA,\r
+ //nouse_ab = 0xAB,\r
+ //nouse_ac = 0xAC,\r
+ //nouse_ad = 0xAD,\r
+ //nouse_ae = 0xAE,\r
+ Bass_WailingSound = 0xAF,\r
+ //nouse_b0 = 0xB0,\r
+ HiHatClose_NoChip = 0xB1,\r
+ Snare_NoChip = 0xB2,\r
+ BassDrum_NoChip = 0xB3,\r
+ HighTom_NoChip = 0xB4,\r
+ LowTom_NoChip = 0xB5,\r
+ Cymbal_NoChip = 0xB6,\r
+ FloorTom_NoChip = 0xB7,\r
+ HiHatOpen_NoChip = 0xB8,\r
+ RideCymbal_NoChip = 0xB9,\r
+ Guitar_NoChip = 0xBA,\r
+ Bass_NoChip = 0xBB,\r
+ LeftCymbal_NoChip = 0xBC,\r
+ //nouse_bd = 0xBD,\r
+ //nouse_be = 0xBE,\r
+ //nouse_bf = 0xBF,\r
+ //nouse_c0 = 0xC0,\r
+ BeatLineShift = 0xC1,\r
+ BeatLineDisplay = 0xC2,\r
+ //nouse_c3 = 0xC3,\r
+ BGALayer1_Swap = 0xC4,\r
+ //nouse_c5 = 0xC5,\r
+ //nouse_c6 = 0xC6,\r
+ BGALayer2_Swap = 0xC7,\r
+ //nouse_c8 = 0xC8,\r
+ //nouse_c9 = 0xC9,\r
+ //nouse_ca = 0xCA,\r
+ //nouse_cb = 0xCB,\r
+ //nouse_cc = 0xCC,\r
+ //nouse_cd = 0xCD,\r
+ //nouse_ce = 0xCE,\r
+ //nouse_cf = 0xCF,\r
+ //nouse_d0 = 0xD0,\r
+ //nouse_d1 = 0xD1,\r
+ //nouse_d2 = 0xD2,\r
+ //nouse_d3 = 0xD3,\r
+ //nouse_d4 = 0xD4,\r
+ BGALayer3_Swap = 0xD5,\r
+ BGALayer4_Swap = 0xD6,\r
+ BGALayer5_Swap = 0xD7,\r
+ BGALayer6_Swap = 0xD8,\r
+ BGALayer7_Swap = 0xD9,\r
+ MixerAdd = 0xDA,\r
+ MixerRemove = 0xDB,\r
+ //nouse_dc = 0xDC,\r
+ //nouse_dd = 0xDD,\r
+ //nouse_de = 0xDE,\r
+ //nouse_df = 0xDF,\r
+ BGALayer8_Swap = 0xE0,\r
+ //nouse_e1 = 0xE1,\r
+ //nouse_e2 = 0xE2,\r
+ //nouse_e3 = 0xE3,\r
+ //nouse_e4 = 0xE4,\r
+ //nouse_e5 = 0xE5,\r
+ //nouse_e6 = 0xE6,\r
+ //nouse_e7 = 0xE7,\r
+ //nouse_e8 = 0xE8,\r
+ //nouse_e9 = 0xE9,\r
+ //nouse_ea = 0xEA,\r
+ //nouse_eb = 0xEB,\r
+ //nouse_ec = 0xEC,\r
+ //nouse_ed = 0xED,\r
+ //nouse_ee = 0xEE,\r
+ //nouse_ef = 0xEF,\r
+ //nouse_f0 = 0xF0,\r
+ //nouse_f1 = 0xF1,\r
+ //nouse_f2 = 0xF2,\r
+ //nouse_f3 = 0xF3,\r
+ //nouse_f4 = 0xF4,\r
+ //nouse_f5 = 0xF5,\r
+ //nouse_f6 = 0xF6,\r
+ //nouse_f7 = 0xF7,\r
+ //nouse_f8 = 0xF8,\r
+ //nouse_f9 = 0xF9,\r
+ //nouse_fa = 0xFA,\r
+ //nouse_fb = 0xFB,\r
+ //nouse_fc = 0xFC,\r
+ //nouse_fd = 0xFD,\r
+ //nouse_fe = 0xFE,\r
+ //nouse_ff = 0xFF,\r
+ }\r
+ #endregion\r
+\r
public enum ECYGroup\r
{\r
打ち分ける,\r
SUPERRANDOM,\r
HYPERRANDOM\r
}\r
+ public enum ESoundChipType\r
+ {\r
+ Drums,\r
+ Guitar,\r
+ Bass,\r
+ SE,\r
+ BGM,\r
+ UNKNOWN = 99\r
+ }\r
+\r
public enum E楽器パート // ここを修正するときは、セットで次の EKeyConfigPart も修正すること。\r
{\r
DRUMS = 0,\r