} //\r
this.bメニューにフォーカス中 = true; // ここまでOPTIONと共通\r
this.eItemPanelモード = EItemPanelモード.パッド一覧;\r
+\r
+ fDisplayLagTimeBaseMs.Drums = (float) CDTXMania.ConfigIni.nJudgeLinePosOffset.Drums / ( CDTXMania.ConfigIni.n譜面スクロール速度.Drums + 1 );\r
+ fDisplayLagTimeBaseMs.Guitar = (float) CDTXMania.ConfigIni.nJudgeLinePosOffset.Guitar / ( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar + 1 );\r
+ fDisplayLagTimeBaseMs.Bass = (float) CDTXMania.ConfigIni.nJudgeLinePosOffset.Bass / ( CDTXMania.ConfigIni.n譜面スクロール速度.Bass + 1 );\r
}\r
finally\r
{\r
{\r
this.ctキー反復用[ i ] = null;\r
}\r
+\r
+ CDTXMania.ConfigIni.nJudgeLinePosOffset.Drums = (int) ( fDisplayLagTimeBaseMs.Drums * ( CDTXMania.ConfigIni.n譜面スクロール速度.Drums + 1 ) );\r
+ CDTXMania.ConfigIni.nJudgeLinePosOffset.Guitar = (int) ( fDisplayLagTimeBaseMs.Guitar * ( CDTXMania.ConfigIni.n譜面スクロール速度.Guitar + 1 ) );\r
+ CDTXMania.ConfigIni.nJudgeLinePosOffset.Bass = (int) ( fDisplayLagTimeBaseMs.Bass * ( CDTXMania.ConfigIni.n譜面スクロール速度.Bass + 1 ) );\r
+\r
base.On非活性化();\r
}\r
catch ( UnauthorizedAccessException e )\r
private CTexture tx背景;\r
private CPrivateFastFont prvFont;\r
private CTexture[ , ] txMenuItemLeft;\r
+ private STDGBVALUE<float> fDisplayLagTimeBaseMs;\r
\r
private void tカーソルを下へ移動する()\r
{\r
if ( !base.b活性化してない )\r
{\r
y += (int)(0x153 * Scale.Y);\r
+ CDTXMania.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白,\r
+ string.Format( "JudgeLine D/G/B Adj: {0} px", CDTXMania.ConfigIni.nJudgeLinePosOffset.Drums, CDTXMania.ConfigIni.nJudgeLinePosOffset.Guitar, CDTXMania.ConfigIni.nJudgeLinePosOffset.Bass ) );\r
+ y -= 0x10 * 2;\r
//CDTXMania.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "BGM/D/G/B Adj: {0:####0}/{1:####0}/{2:####0}/{3:####0} ms", CDTXMania.DTX.nBGMAdjust, CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums, CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar, CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass ) );\r
CDTXMania.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別.白, string.Format( "BGM/D/G/B Adj: {0}/{1}/{2}/{3} ms", CDTXMania.DTX.nBGMAdjust, CDTXMania.ConfigIni.nInputAdjustTimeMs.Drums, CDTXMania.ConfigIni.nInputAdjustTimeMs.Guitar, CDTXMania.ConfigIni.nInputAdjustTimeMs.Bass ) );\r
y -= 0x10 * 2;\r
}\r
this.r現在の空うちギターChip = null;\r
this.r現在の空うちベースChip = null;\r
- cInvisibleChip = new CInvisibleChip( CDTXMania.ConfigIni.nDisplayTimesMs, CDTXMania.ConfigIni.nFadeoutTimeMs );\r
+ cInvisibleChip = new CInvisibleChip( CDTXMania.ConfigIni.nChipDisplayTimeMs, CDTXMania.ConfigIni.nChipFadeoutTimeMs );\r
this.演奏判定ライン座標 = new C演奏判定ライン座標共通();\r
this.n最大コンボ数_TargetGhost = new STDGBVALUE<int>(); // #35411 2015.08.21 chnmr0 add\r
for ( int k = 0; k < 3; k++ )\r
{\r
ChangeInputAdjustTimeInPlaying( keyboard, +1 );\r
}\r
+ else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.F5 ) )\r
+ {\r
+ int n描画遅延ms = CDTXMania.ConfigIni.nJudgeLinePosOffset.Drums;\r
+ n描画遅延ms = Math.Max( n描画遅延ms - 1, -99);\r
+ CDTXMania.ConfigIni.nJudgeLinePosOffset.Drums =\r
+ CDTXMania.ConfigIni.nJudgeLinePosOffset.Guitar =\r
+ CDTXMania.ConfigIni.nJudgeLinePosOffset.Bass = n描画遅延ms;\r
+ this.演奏判定ライン座標.nJudgeLinePosY_delta.Drums =\r
+ this.演奏判定ライン座標.nJudgeLinePosY_delta.Guitar =\r
+ this.演奏判定ライン座標.nJudgeLinePosY_delta.Bass = n描画遅延ms;\r
+ }\r
+ else if ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.F6 ) )\r
+ {\r
+ int n描画遅延ms = CDTXMania.ConfigIni.nJudgeLinePosOffset.Drums;\r
+ n描画遅延ms = Math.Min( n描画遅延ms + 1, 99 );\r
+ CDTXMania.ConfigIni.nJudgeLinePosOffset.Drums =\r
+ CDTXMania.ConfigIni.nJudgeLinePosOffset.Guitar =\r
+ CDTXMania.ConfigIni.nJudgeLinePosOffset.Bass = n描画遅延ms;\r
+ this.演奏判定ライン座標.nJudgeLinePosY_delta.Drums =\r
+ this.演奏判定ライン座標.nJudgeLinePosY_delta.Guitar =\r
+ this.演奏判定ライン座標.nJudgeLinePosY_delta.Bass = n描画遅延ms;\r
+ }\r
else if ( ( base.eフェーズID == CStage.Eフェーズ.共通_通常状態 ) && ( keyboard.bキーが押された( (int) SlimDX.DirectInput.Key.Escape ) || CDTXMania.Pad.b押されたGB( Eパッド.FT ) ) )\r
{ // escape (exit)\r
this.actFO.tフェードアウト開始();\r
\r
int instIndex = (int) pChip.e楽器パート;\r
if ( ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) && !pChip.bHit ) &&\r
- ( ( pChip.nバーからの距離dot[ instIndex ] < -40 * Scale.Y ) && ( this.e指定時刻からChipのJUDGEを返す( CSound管理.rc演奏用タイマ.n現在時刻, pChip, nInputAdjustTime ) == E判定.Miss ) ) )\r
+ ( ( pChip.nバーからの距離dot[ instIndex ] < -40 * Scale.Y ) &&\r
+ ( this.e指定時刻からChipのJUDGEを返す( CSound管理.rc演奏用タイマ.n現在時刻, pChip, nInputAdjustTime ) == E判定.Miss ) ) )\r
+ {\r
+ this.tチップのヒット処理( CSound管理.rc演奏用タイマ.n現在時刻, pChip ); //チップ消失(Hitせずスルーした場合)\r
+ }\r
+ if ( ( ( pChip.e楽器パート != E楽器パート.UNKNOWN ) && !pChip.bHit ) &&\r
+ ( ( pChip.nバーからの距離dot[ instIndex ] + this.演奏判定ライン座標.nJudgeLinePosY_delta[instIndex] < 0 ) ) )\r
{\r
- this.tチップのヒット処理( CSound管理.rc演奏用タイマ.n現在時刻, pChip );\r
+ //Debug.WriteLine( "透明度=" + pChip.n透明度 );\r
+ pChip.n透明度 -= 12; // チップが判定バーを越えたら、徐々に透明にする。VSyncWaitの有無で加減が変わるが・・\r
+ if ( pChip.n透明度 < 0 )\r
+ {\r
+ pChip.n透明度 = 0;\r
+ }\r
}\r
\r
// #35411 chnmr0 add (ターゲットゴースト)\r
{\r
if ( CDTXMania.ConfigIni.eDark != Eダークモード.FULL )\r
{\r
- int y = CDTXMania.ConfigIni.bReverse.Drums ?\r
- 119 - 演奏判定ライン座標.nJudgeLinePosY_delta.Drums :\r
- 942 + 演奏判定ライン座標.nJudgeLinePosY_delta.Drums;\r
+ int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.DRUMS, false, bReverse[ (int) E楽器パート.DRUMS ], false, true ); // -(int) ( 3 * Scale.Y );\r
+ // #31602 2016.2.11 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
// #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
if ( this.txヒットバー != null )\r
{\r
#region [ スクロール速度変更 ]\r
if ( CDTXMania.Pad.b押されている( inst, Eパッド.Decide ) && CDTXMania.Pad.b押された( inst, Eパッド.B ) )\r
{\r
- CDTXMania.ConfigIni.n譜面スクロール速度[indexInst] = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度[indexInst] + 1, 0x7cf );\r
+ float f = (float) this.演奏判定ライン座標.nJudgeLinePosY_delta[indexInst] / ( CDTXMania.ConfigIni.n譜面スクロール速度[indexInst] + 1 );\r
+ CDTXMania.ConfigIni.n譜面スクロール速度[ indexInst ] = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度[ indexInst ] + 1, 1999 );\r
+ f *= CDTXMania.ConfigIni.n譜面スクロール速度[ indexInst ];\r
+ this.演奏判定ライン座標.nJudgeLinePosY_delta[ indexInst ] = (int) ( f + 0.5 );\r
+ CDTXMania.ConfigIni.nJudgeLinePosOffset[ indexInst ] = (int) ( f + 0.5 );\r
}\r
if ( CDTXMania.Pad.b押されている( inst, Eパッド.Decide ) && CDTXMania.Pad.b押された( inst, Eパッド.R ) )\r
{\r
CDTXMania.ConfigIni.n譜面スクロール速度[indexInst] = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度[indexInst] - 1, 0 );\r
+\r
+ float f = (float) this.演奏判定ライン座標.nJudgeLinePosY_delta[ indexInst ] / ( CDTXMania.ConfigIni.n譜面スクロール速度[ indexInst ] + 1 );\r
+ CDTXMania.ConfigIni.n譜面スクロール速度[ indexInst ] = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度[ indexInst ] - 1, 0 );\r
+ f *= CDTXMania.ConfigIni.n譜面スクロール速度[ indexInst ];\r
+ this.演奏判定ライン座標.nJudgeLinePosY_delta[ indexInst ] = (int) ( f + 0.5 );\r
+ CDTXMania.ConfigIni.nJudgeLinePosOffset[ indexInst ] = (int) ( f + 0.5 );\r
}\r
#endregion\r
\r
n判定ラインY座標元データ = new STDGBVALUE<int>[ 2, 2, 2 ];\r
#region [ 判定ライン座標の初期化]\r
// Normal, Drums画面, 判定ライン\r
- n判定ラインY座標元データ[ 0, 0, 0 ].Drums = 0; //未使用\r
+ n判定ラインY座標元データ[ 0, 0, 0 ].Drums = 942;\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 ].Drums = 119;\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
\r
\r
/// <summary>\r
- /// 判定ラインのY座標を返す。とりあえずGuitar/Bassのみ対応。\r
+ /// 判定ラインのY座標を返す。\r
/// </summary>\r
/// <param name="eInst">E楽器パート</param>\r
/// <param name="bGRmode">GRmodeか否か</param>\r
}\r
\r
/// <summary>\r
- /// 判定ラインのY座標を返す。とりあえずGuitar/Bassのみ対応。\r
+ /// 判定ラインのY座標を返す。\r
/// </summary>\r
/// <param name="eInst">E楽器パート</param>\r
/// <param name="bGRmode">GRmodeか否か</param>\r
/// <returns></returns>\r
public int n判定ラインY座標( E楽器パート eInst, bool bGRmode, bool bReverse, bool bWailingFrame, bool b補正あり )\r
{\r
- if ( eInst == E楽器パート.DRUMS )\r
- {\r
- throw new NotImplementedException();\r
- }\r
- else if ( eInst == E楽器パート.UNKNOWN )\r
+ if ( eInst == E楽器パート.UNKNOWN )\r
{\r
throw new ArgumentOutOfRangeException();\r
}\r
int ret = this.n判定ラインY座標元データ[ nReverse, nGRmode, nWailing ][ nInst ]; // 補正無しの値\r
if ( bReverse )\r
{\r
- if ( n判定位置[ nInst ] == E判定位置.Lower ) ret += (int)(13 * Scale.Y);\r
- if ( b補正あり ) ret += nJudgeLinePosY_delta[ nInst ];\r
+ if ( eInst != E楽器パート.DRUMS && n判定位置[ nInst ] == E判定位置.Lower )\r
+ ret += (int) ( 13 * Scale.Y );\r
+ if ( b補正あり )\r
+ { \r
+ if (eInst == E楽器パート.DRUMS)\r
+ {\r
+ ret += nJudgeLinePosY_delta[ nInst ];\r
+\r
+ }\r
+ else\r
+ {\r
+ ret -= nJudgeLinePosY_delta[ nInst ];\r
+ }\r
+ }\r
+\r
}\r
else\r
{\r
- if ( n判定位置[ nInst ] == E判定位置.Lower ) ret += (int) ( 52 * Scale.Y );\r
- if ( b補正あり ) ret -= nJudgeLinePosY_delta[ nInst ];\r
+ if ( eInst != E楽器パート.DRUMS && n判定位置[ nInst ] == E判定位置.Lower )\r
+ ret += (int) ( 52 * Scale.Y );\r
+ if ( b補正あり )\r
+ {\r
+ if ( eInst == E楽器パート.DRUMS )\r
+ {\r
+ ret += nJudgeLinePosY_delta[ nInst ];\r
+\r
+ }\r
+ else\r
+ {\r
+ ret -= nJudgeLinePosY_delta[ nInst ];\r
+ }\r
+ }\r
}\r
return ret;\r
}\r
\r
protected override void t進行描画_Wailing枠()\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
+ int yG = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, bReverse[ (int) E楽器パート.GUITAR ], true, true );\r
+ int yB = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, true, bReverse[ (int) E楽器パート.BASS ], true, true );\r
base.t進行描画_Wailing枠(\r
(int) ( 139 * Scale.X ),\r
(int) ( 593 * Scale.X ),\r
{\r
if ( CDTXMania.DTX.bチップがある.Guitar )\r
{\r
- int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, bReverse[ (int) E楽器パート.GUITAR ] )\r
+ int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, true, bReverse[ (int) E楽器パート.GUITAR ], false, true )\r
- (int) ( 3 * Scale.Y );\r
// #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
if ( this.txヒットバー != null )\r
}\r
if ( CDTXMania.DTX.bチップがある.Bass )\r
{\r
- int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, true, bReverse[ (int) E楽器パート.BASS ] )\r
+ int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, true, bReverse[ (int) E楽器パート.BASS ], false, true )\r
- (int) ( 3 * Scale.Y );\r
// #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
if ( this.txヒットバー != null )\r
this.st青い星[ j ].fX =\r
(int) ( this.nレーンの中央X座標[ (int) lane ] * ( CDTXMania.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ? 1.0 : 0.75 ) ) +\r
( ( CDTXMania.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ) ? (float) ( 54 * 3 ) : (float) ( 619 + 12 + 40 ) );\r
- this.st青い星[ j ].fY = CDTXMania.ConfigIni.bReverse.Drums ? ( (float) 55 - nJudgeLinePosY_delta_Drums ) : ( (float) 425 + nJudgeLinePosY_delta_Drums );\r
+ this.st青い星[ j ].fY = CDTXMania.ConfigIni.bReverse.Drums ?\r
+ (float) (119 + 4) - nJudgeLinePosY_delta_Drums : (float) (942 + 14) + nJudgeLinePosY_delta_Drums;\r
this.st青い星[ j ].f加速度X = (float) ( num7 * Math.Cos( ( Math.PI * 2 * n回転初期値 ) / 360.0 ) );\r
this.st青い星[ j ].f加速度Y = (float) ( num7 * ( Math.Sin( ( Math.PI * 2 * n回転初期値 ) / 360.0 ) - 0.2 ) );\r
this.st青い星[ j ].f加速度の加速度X = 0.995f;\r
+\r
( (CDTXMania.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left)? (float)(54 * 3) : (float)(619 + 12 + 40) ) +\r
( ( (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
+ -( ( ( CDTXMania.ConfigIni.bReverse.Drums ?\r
+ ( 119 + 4 ) - nJudgeLinePosY_delta_Drums : ( 942 + 14 ) + nJudgeLinePosY_delta_Drums )\r
+ + ( ( (float) Math.Sin( (double) num3 ) ) * num5 ) ) - SampleFramework.GameWindowSize.Height / 2 ),\r
0f\r
);\r
if( this.tx火花 != null )\r
(int)(this.nレーンの中央X座標[ this.st大波[ i ].nLane ] * ( CDTXMania.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left? 1.0 : 0.75)) +\r
( ( CDTXMania.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ) ? (float) ( 54 * 3 ) : (float) ( 619 + 12 + 40 ) )\r
- 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
+ -( ( CDTXMania.ConfigIni.bReverse.Drums ?\r
+ (119 + 4) - nJudgeLinePosY_delta_Drums : (942 + 14) + nJudgeLinePosY_delta_Drums )\r
+ - SampleFramework.GameWindowSize.Height / 2 ),\r
0f );\r
if( this.tx大波 != null )\r
{\r
(int)( this.nレーンの中央X座標[ this.st細波[ i ].nLane ] * (CDTXMania.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left? 1.0 : 0.75 ) ) +\r
( ( CDTXMania.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ) ? (float) ( 54 * 3 ) : (float) ( 619 + 12 + 40 ) )\r
-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
+ -( ( CDTXMania.ConfigIni.bReverse.Drums ?\r
+ (119 + 4) - nJudgeLinePosY_delta_Drums : (942 + 14) + nJudgeLinePosY_delta_Drums )\r
+ - SampleFramework.GameWindowSize.Height / 2 ),\r
0f\r
);\r
if (this.tx細波 != null)\r
this.t進行描画_ステータスパネル();\r
this.t進行描画_ギターベースフレーム();\r
this.t進行描画_レーンフラッシュGB();\r
- this.t進行描画_ギターベース判定ライン();\r
this.t進行描画_ゲージ();\r
this.t進行描画_グラフ(); // #24074 2011.01.23 add ikanick\r
this.t進行描画_レーンフラッシュD();\r
this.t進行描画_DANGER();\r
- this.t進行描画_判定ライン();\r
if ( this.e判定表示優先度 == E判定表示優先度.Chipより下 )\r
{\r
this.t進行描画_RGBボタン();\r
}\r
this.t進行描画_WailingBonus();\r
this.t進行描画_譜面スクロール速度();\r
+ this.t進行描画_ドラムパッド();\r
+ this.t進行描画_ギターベース判定ライン();\r
+ this.t進行描画_判定ライン();\r
this.t進行描画_チップアニメ();\r
bIsFinishedPlaying = this.t進行描画_チップ(E楽器パート.DRUMS);\r
this.t進行描画_演奏情報();\r
- this.t進行描画_ドラムパッド();\r
if ( this.e判定表示優先度 == E判定表示優先度.Chipより上 )\r
{\r
this.t進行描画_RGBボタン();\r
\r
protected override void ドラムスクロール速度アップ()\r
{\r
+ float f = (float) this.演奏判定ライン座標.nJudgeLinePosY_delta.Drums / (CDTXMania.ConfigIni.n譜面スクロール速度.Drums + 1);\r
+Debug.WriteLine( "scr=" + CDTXMania.ConfigIni.n譜面スクロール速度.Drums + ", f1=" + f );\r
CDTXMania.ConfigIni.n譜面スクロール速度.Drums = Math.Min( CDTXMania.ConfigIni.n譜面スクロール速度.Drums + 1, 1999 );\r
+ f *= ( CDTXMania.ConfigIni.n譜面スクロール速度.Drums + 1 );\r
+Debug.WriteLine( "scr=" + CDTXMania.ConfigIni.n譜面スクロール速度.Drums + ", f2=" + f );\r
+ this.演奏判定ライン座標.nJudgeLinePosY_delta.Drums = (int) ( f + 0.5 );\r
+ CDTXMania.ConfigIni.nJudgeLinePosOffset.Drums = (int) ( f + 0.5 );\r
}\r
protected override void ドラムスクロール速度ダウン()\r
{\r
+ float f = (float) this.演奏判定ライン座標.nJudgeLinePosY_delta.Drums / (CDTXMania.ConfigIni.n譜面スクロール速度.Drums + 1);\r
CDTXMania.ConfigIni.n譜面スクロール速度.Drums = Math.Max( CDTXMania.ConfigIni.n譜面スクロール速度.Drums - 1, 0 );\r
+ f *= ( CDTXMania.ConfigIni.n譜面スクロール速度.Drums + 1 );\r
+ this.演奏判定ライン座標.nJudgeLinePosY_delta.Drums = (int) ( f + 0.5 );\r
+ CDTXMania.ConfigIni.nJudgeLinePosOffset.Drums = (int) ( f + 0.5 );\r
}\r
\r
\r
\r
protected override void t進行描画_Wailing枠()\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
+ int yG = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, bReverse[ (int) E楽器パート.GUITAR ], true, true );\r
+ int yB = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, bReverse[ (int) E楽器パート.BASS ], true, true );\r
base.t進行描画_Wailing枠(\r
( CDTXMania.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ) ? 1761 : 1690,\r
( CDTXMania.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ) ? 1434 : 440,\r
if ( CDTXMania.DTX.bチップがある.Guitar )\r
{\r
int x = ( CDTXMania.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ) ? 1527 : 1456;\r
- int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, bReverse[ (int) E楽器パート.GUITAR ] ) - (int) ( 3 * Scale.Y );\r
+ int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.GUITAR, false, bReverse[ (int) E楽器パート.GUITAR ], false, true ) - (int) ( 3 * Scale.Y );\r
// #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
Rectangle rc = new Rectangle( 0, 0, 30, 36 );\r
if ( this.txヒットバーGB != null )\r
if ( CDTXMania.DTX.bチップがある.Bass )\r
{\r
int x = ( CDTXMania.ConfigIni.eドラムレーン表示位置 == Eドラムレーン表示位置.Left ) ? 1200 : 206;\r
- int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, bReverse[ (int) E楽器パート.BASS ] ) - (int) ( 3 * Scale.Y );\r
+ int y = this.演奏判定ライン座標.n判定ラインY座標( E楽器パート.BASS, false, bReverse[ (int) E楽器パート.BASS ], false, true ) - (int) ( 3 * Scale.Y );\r
// #31602 2013.6.23 yyagi 描画遅延対策として、判定ラインの表示位置をオフセット調整できるようにする\r
Rectangle rc = new Rectangle( 0, 0, 30, 36 );\r
if ( this.txヒットバーGB != null )\r
// public int n切り捨て下限Velocity; // #23857 2010.12.12 yyagi VelocityMin\r
public STDGBVALUE<int> nInputAdjustTimeMs; // #23580 2011.1.3 yyagi タイミングアジャスト機能\r
public STDGBVALUE<int> nJudgeLinePosOffset; // #31602 2013.6.23 yyagi 判定ライン表示位置のオフセット\r
+ public STDGBVALUE<float> fJudgeLinePosOffsetBase;\r
public int nShowLagType; // #25370 2011.6.5 yyagi ズレ時間表示機能\r
public bool bIsAutoResultCapture; // #25399 2011.6.9 yyagi リザルト画像自動保存機能のON/OFF制御\r
public int nPoliphonicSounds; // #28228 2012.5.1 yyagi レーン毎の最大同時発音数\r
public bool bDynamicBassMixerManagement; // #24820\r
public bool bTimeStretch; // #23664 2013.2.24 yyagi ピッチ変更無しで再生速度を変更するかどうか\r
public STDGBVALUE<EInvisible> eInvisible; // #32072 2013.9.20 yyagi チップを非表示にする\r
- public int nDisplayTimesMs, nFadeoutTimeMs;\r
+ public int nChipDisplayTimeMs, nChipFadeoutTimeMs; // Invisible対応\r
\r
public STDGBVALUE<int> nViewerScrollSpeed;\r
public bool bViewerVSyncWait;\r
this.n譜面スクロール速度[ i ] = 1;\r
this.nInputAdjustTimeMs[ i ] = 0;\r
this.nJudgeLinePosOffset[ i ] = 0;\r
+ this.fJudgeLinePosOffsetBase[ i ] = 0.0f;\r
this.eInvisible[ i ] = EInvisible.OFF;\r
this.nViewerScrollSpeed[ i ] = 1;\r
this.e判定位置[ i ] = E判定位置.標準;\r
//this.e判定表示優先度[ i ] = E判定表示優先度.Chipより下;\r
}\r
+\r
this.n演奏速度 = 20;\r
#region [ AutoPlay ]\r
this.bAutoPlay = new STAUTOPLAY();\r
this.bUseOSTimer = false;; // #33689 2014.6.6 yyagi 初期値はfalse (FDKのタイマー。FROM氏考案の独自タイマー)\r
this.bDynamicBassMixerManagement = true; //\r
this.bTimeStretch = false; // #23664 2013.2.24 yyagi 初期値はfalse (再生速度変更を、ピッチ変更にて行う)\r
- this.nDisplayTimesMs = 3000; // #32072 2013.10.24 yyagi Semi-Invisibleでの、チップ再表示期間\r
- this.nFadeoutTimeMs = 2000; // #32072 2013.10.24 yyagi Semi-Invisibleでの、チップフェードアウト時間\r
+ this.nChipDisplayTimeMs = 3000; // #32072 2013.10.24 yyagi Semi-Invisibleでの、チップ再表示期間\r
+ this.nChipFadeoutTimeMs = 2000; // #32072 2013.10.24 yyagi Semi-Invisibleでの、チップフェードアウト時間\r
\r
this.bViewerVSyncWait = true;\r
this.bViewerShowDebugStatus = true;\r
sw.WriteLine("InputAdjustTimeBass={0}", this.nInputAdjustTimeMs.Bass); //\r
sw.WriteLine();\r
\r
- sw.WriteLine( "; 判定ラインの表示位置調整(ドラム, ギター, ベース)(-99~99)[px]" ); // #31602 2013.6.23 yyagi 判定ラインの表示位置オフセット\r
+ sw.WriteLine( "; 判定ラインの表示位置調整(x0.5相当;ドラム, ギター, ベース)[px]" ); // #31602 2013.6.23 yyagi 判定ラインの表示位置オフセット\r
sw.WriteLine( "; Offset value to adjust displaying judgement line for the drums, guitar and bass." ); //\r
- sw.WriteLine( "JudgeLinePosOffsetDrums={0}", this.nJudgeLinePosOffset.Drums ); //\r
- sw.WriteLine( "JudgeLinePosOffsetGuitar={0}", this.nJudgeLinePosOffset.Guitar ); //\r
- sw.WriteLine( "JudgeLinePosOffsetBass={0}", this.nJudgeLinePosOffset.Bass ); //\r
+ sw.WriteLine( "JudgeLinePosOffsetDrums={0}", (float) (this.nJudgeLinePosOffset.Drums / ( this.n譜面スクロール速度.Drums + 1 ) ) ); //\r
+ sw.WriteLine( "JudgeLinePosOffsetGuitar={0}", (float) (this.nJudgeLinePosOffset.Guitar / ( this.n譜面スクロール速度.Guitar + 1 ) ) ); //\r
+ sw.WriteLine( "JudgeLinePosOffsetBass={0}", (float) (this.nJudgeLinePosOffset.Bass / ( this.n譜面スクロール速度.Bass + 1 ) ) ); //\r
\r
sw.WriteLine( "; 判定ラインの表示位置(ギター, ベース)" ); // #33891 2014.6.26 yyagi\r
sw.WriteLine( "; 0=Normal, 1=Lower" );\r
sw.WriteLine( "; Position of the Judgement line and RGB button; Vseries compatible(1) or not(0)." ); //\r
sw.WriteLine( "JudgeLinePosModeGuitar={0}", (int) this.e判定位置.Guitar ); //\r
sw.WriteLine( "JudgeLinePosModeBass={0} ", (int) this.e判定位置.Bass ); //\r
- \r
+\r
sw.WriteLine();\r
#endregion\r
#region [ VelocityMin ]\r
}\r
else if ( str3.Equals( "JudgeLinePosOffsetDrums" ) ) // #31602 2013.6.23 yyagi\r
{\r
- this.nJudgeLinePosOffset.Drums = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, -99, 99, this.nJudgeLinePosOffset.Drums );\r
+ this.fJudgeLinePosOffsetBase.Drums = C変換.n値を文字列から取得して範囲内にちゃんと丸めて返す( str4, -99, 99, this.nJudgeLinePosOffset.Drums );\r
}\r
else if ( str3.Equals( "JudgeLinePosOffsetGuitar" ) ) // #31602 2013.6.23 yyagi\r
{\r
- this.nJudgeLinePosOffset.Guitar = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, -99, 99, this.nJudgeLinePosOffset.Guitar );\r
+ this.fJudgeLinePosOffsetBase.Guitar = C変換.n値を文字列から取得して範囲内にちゃんと丸めて返す( str4, -99, 99, this.nJudgeLinePosOffset.Guitar );\r
}\r
else if ( str3.Equals( "JudgeLinePosOffsetBass" ) ) // #31602 2013.6.23 yyagi\r
{\r
- this.nJudgeLinePosOffset.Bass = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, -99, 99, this.nJudgeLinePosOffset.Bass );\r
+ this.fJudgeLinePosOffsetBase.Bass = C変換.n値を文字列から取得して範囲内にちゃんと丸めて返す( str4, -99, 99, this.nJudgeLinePosOffset.Bass );\r
}\r
else if ( str3.Equals( "JudgeLinePosModeGuitar" ) ) // #33891 2014.6.26 yyagi\r
{\r
}\r
}\r
}\r
+\r
+ for (int i = 0; i < 3; i++ )\r
+ {\r
+ nJudgeLinePosOffset[ i ] = (int) ( fJudgeLinePosOffsetBase[ i ] * ( this.n譜面スクロール速度[ i ] + 1 ) );\r
+ }\r
}\r
\r
/// <summary>\r
{\r
// プロパティ\r
#region [ properties ]\r
- public static readonly string VERSION = "104(151212)";\r
+ public static readonly string VERSION = "105(160214)";\r
public static readonly string SLIMDXDLL = "c_net20x86_Jun2010";\r
public static readonly string D3DXDLL = "d3dx9_43.dll"; // June 2010\r
//public static readonly string D3DXDLL = "d3dx9_42.dll"; // February 2010\r
return n取得失敗時のデフォルト値;\r
}\r
// --------------------ここまで-------------------------/\r
+ public static float n値を文字列から取得して範囲内にちゃんと丸めて返す( string str数値文字列, float n最小値, float n最大値, float n取得失敗時のデフォルト値 )\r
+ {\r
+ // 1 と違って範囲外の場合ちゃんと丸めて返します。\r
+ float num;\r
+ if ( float.TryParse( str数値文字列, out num ) )\r
+ {\r
+ if ( ( num >= n最小値 ) && ( num <= n最大値 ) )\r
+ return num;\r
+ if ( num < n最小値 )\r
+ return n最小値;\r
+ if ( num > n最大値 )\r
+ return n最大値;\r
+ }\r
+\r
+ return n取得失敗時のデフォルト値;\r
+ }\r
public static int n値を文字列から取得して返す( string str数値文字列, int n取得失敗時のデフォルト値 )\r
{\r
int num;\r