1
0
mirror of synced 2025-01-31 12:03:51 +01:00

BPMが変わるとキャラの挙動が不安定になる問題の修正 (#388)

* BPMが変わるとキャラの挙動が不安定になる問題の修正

* 少し修正
This commit is contained in:
Takkkom 2023-02-18 01:28:53 +09:00 committed by GitHub
parent a015997b02
commit ec3ff3d332
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 462 additions and 578 deletions

View File

@ -7867,8 +7867,8 @@ namespace TJAPlayer3
public int[] Game_Dancer_X = new int[] { 640, 430, 856, 215, 1070 };
public int[] Game_Dancer_Y = new int[] { 500, 500, 500, 500, 500 };
public string Game_Dancer_Motion = "0";
public int Game_Dancer_Ptn = 0;
public int Game_Dancer_Beat = 8;
//public int Game_Dancer_Ptn = 0;
//public int Game_Dancer_Beat = 8;
public int[] Game_Dancer_Gauge = new int[] { 0, 0, 0, 40, 80 };
#endregion

View File

@ -11,7 +11,7 @@ namespace TJAPlayer3
{
// プロパティ
public double dbBPM;
public double[] dbBPM = new double[5];
public readonly int[] NowMeasure = new int[5];
public double dbSCROLL;
public int[] _chipCounts = new int[2];
@ -31,8 +31,8 @@ namespace TJAPlayer3
for (int i = 0; i < 5; i++)
{
NowMeasure[i] = 0;
this.dbBPM[i] = TJAPlayer3.DTX.BASEBPM;
}
this.dbBPM = TJAPlayer3.DTX.BASEBPM;
this.dbSCROLL = 1.0;
_chipCounts[0] = TJAPlayer3.DTX.listChip.Where(num => NotesManager.IsMissableNote(num)).Count();
@ -57,7 +57,7 @@ namespace TJAPlayer3
y -= 0x10;
TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別., string.Format( "Part: {0:####0}/{1:####0}", NowMeasure[0], NowMeasure[1] ) );
y -= 0x10;
TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別., string.Format( "BPM: {0:####0.0000}", this.dbBPM ) );
TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別., string.Format( "BPM: {0:####0.0000}", this.dbBPM[0] ) );
y -= 0x10;
TJAPlayer3.act文字コンソール.tPrint( x, y, C文字コンソール.Eフォント種別., string.Format( "Frame: {0:####0} fps", TJAPlayer3.FPS.n現在のFPS ) );
y -= 0x10;

View File

@ -928,6 +928,16 @@ namespace TJAPlayer3
_AIBattleState = 0;
}
private void UpdateCharaCounter(int nPlayer)
{
for (int i = 0; i < 5; i++)
{
ctChipAnime[i] = new CCounter(0, 3, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[i] * 1 / 4 / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0), CSound管理.rc演奏用タイマ);
}
TJAPlayer3.stage演奏ドラム画面.PuchiChara.ChangeBPM(60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[nPlayer] / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
}
public void AddMixer( CSound cs, bool _b演奏終了後も再生が続くチップである )
{
stmixer stm = new stmixer()
@ -1423,13 +1433,8 @@ namespace TJAPlayer3
}
this.b連打中[ player ] = true;
if(actChara.CharaAction_Balloon_Breaking[player] != null)
{
actChara.(player);
actChara.bマイどんアクション中[player] = true;
actChara.CharaAction_Balloon_Breaking[player] = new CCounter(0, TJAPlayer3.Skin.Characters_Balloon_Breaking_Ptn[actChara.iCurrentCharacter[player]] - 1,
//TJAPlayer3.Skin.Game_Chara_Balloon_Timer
TJAPlayer3.Skin.Characters_Balloon_Timer[actChara.iCurrentCharacter[player]], TJAPlayer3.Timer);
actChara.ChangeAnime(player, CAct演奏Drumsキャラクター.Anime.Balloon_Breaking, true);
}
@ -1498,12 +1503,8 @@ namespace TJAPlayer3
//this.b連打中 = false;
//this.actChara.b風船連打中 = false;
pChip.b可視 = false;
this.actChara.bマイどんアクション中[player] = false; // 風船終了後、再生されていたアクションがされないようにするために追加。(AioiLight)
if (actChara.CharaAction_Balloon_Broke[player] != null)
{
actChara.(player);
actChara.bマイどんアクション中[player] = true;
actChara.CharaAction_Balloon_Broke[player] = new CCounter(0, TJAPlayer3.Skin.Characters_Balloon_Broke_Ptn[actChara.iCurrentCharacter[player]] - 1, TJAPlayer3.Skin.Characters_Balloon_Timer[actChara.iCurrentCharacter[player]], TJAPlayer3.Timer);
actChara.ChangeAnime(player, CAct演奏Drumsキャラクター.Anime.Balloon_Broke, true);
if(actChara.CharaAction_Balloon_Delay[player] != null )actChara.CharaAction_Balloon_Delay[player] = new CCounter(0, TJAPlayer3.Skin.Characters_Balloon_Delay[actChara.iCurrentCharacter[player]] - 1, 1, TJAPlayer3.Timer);
}
this.eRollState = E連打State.none;
@ -1605,8 +1606,8 @@ namespace TJAPlayer3
else
this.nHand[nPlayer] = 0;
if (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM < 0 && (TJAPlayer3.ConfigIni.eScrollMode == EScrollMode.HBSCROLL))
pChip.fBMSCROLLTime -= TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * -0.05;
if (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[nPlayer] < 0 && (TJAPlayer3.ConfigIni.eScrollMode == EScrollMode.HBSCROLL))
pChip.fBMSCROLLTime -= TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[nPlayer] * -0.05;
TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.PlayerLane[nPlayer].Start(PlayerLane.FlashType.Red);
//CDTXMania.stage演奏ドラム画面.actChipFireTaiko.Start( pChip.nチャンネル番号 == 0x15 ? 1 : 3, nPlayer );
@ -1739,7 +1740,7 @@ namespace TJAPlayer3
if (eJudgeResult != E判定.Poor && eJudgeResult != E判定.Miss)
{
double dbUnit = (((60.0 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM))));
double dbUnit = (((60.0 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[nPlayer]))));
int Character = this.actChara.iCurrentCharacter[nPlayer];
@ -1747,11 +1748,7 @@ namespace TJAPlayer3
{
if(TJAPlayer3.Skin.Characters_Become_Maxed_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
{
this.actChara.(nPlayer);
this.actChara.ctキャラクターアクション_魂MAX[nPlayer] = new CCounter(0, TJAPlayer3.Skin.Characters_Become_Maxed_Ptn[Character] - 1, (dbUnit / TJAPlayer3.Skin.Characters_Become_Maxed_Ptn[Character]) * 2, CSound管理.rc演奏用タイマ);
this.actChara.ctキャラクターアクション_魂MAX[nPlayer].t進行db();
this.actChara.ctキャラクターアクション_魂MAX[nPlayer].n現在の値 = 0;
this.actChara.bマイどんアクション中[nPlayer] = true;
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Become_Maxed, true);
}
this.bIsAlreadyMaxed[nPlayer] = true;
}
@ -1759,11 +1756,7 @@ namespace TJAPlayer3
{
if(TJAPlayer3.Skin.Characters_Become_Cleared_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
{
this.actChara.(nPlayer);
this.actChara.ctキャラクターアクション_ルマ[nPlayer] = new CCounter(0, TJAPlayer3.Skin.Characters_Become_Cleared_Ptn[Character] - 1, (dbUnit / TJAPlayer3.Skin.Characters_Become_Cleared_Ptn[Character]) * 2, CSound管理.rc演奏用タイマ);
this.actChara.ctキャラクターアクション_ルマ[nPlayer].t進行db();
this.actChara.ctキャラクターアクション_ルマ[nPlayer].n現在の値 = 0;
this.actChara.bマイどんアクション中[nPlayer] = true;
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Become_Cleared, true);
}
this.bIsAlreadyCleared[nPlayer] = true;
TJAPlayer3.stage演奏ドラム画面.actBackground.ClearIn(nPlayer);
@ -1789,7 +1782,7 @@ namespace TJAPlayer3
{
int Character = this.actChara.iCurrentCharacter[nPlayer];
double dbUnit = (((60.0 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM))));
double dbUnit = (((60.0 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[nPlayer]))));
dbUnit = (((60.0 / pChip.dbBPM)));
if (TJAPlayer3.Skin.Characters_Return_Ptn[Character] != 0 && !bIsGOGOTIME[nPlayer] && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
@ -1797,11 +1790,7 @@ namespace TJAPlayer3
{
// 魂ゲージMAXではない
// ジャンプ_ーマル
this.actChara.(nPlayer);
this.actChara.ctキャラクターアクション_Return[nPlayer] = new CCounter(0, TJAPlayer3.Skin.Characters_Return_Ptn[Character] - 1, (dbUnit / TJAPlayer3.Skin.Characters_Return_Ptn[Character]) * 2, CSound管理.rc演奏用タイマ);
this.actChara.ctキャラクターアクション_Return[nPlayer].t進行db();
this.actChara.ctキャラクターアクション_Return[nPlayer].n現在の値 = 0;
this.actChara.bマイどんアクション中[nPlayer] = true;
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Return, true);
//this.actChara.マイどん_アクション_10コンボ();
}
}
@ -2108,7 +2097,7 @@ namespace TJAPlayer3
// Combo voice here
this.actComboVoice.t再生( this.actCombo.n現在のコンボ数[ nPlayer ], nPlayer );
double dbUnit = (((60.0 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM))));
double dbUnit = (((60.0 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[nPlayer]))));
dbUnit = (((60.0 / pChip.dbBPM)));
//CDTXMania.act文字コンソール.tPrint(620, 80, C文字コンソール.Eフォント種別.白, "BPM: " + dbUnit.ToString());
@ -2129,31 +2118,22 @@ namespace TJAPlayer3
// Edit character values here
if (!pChip.bGOGOTIME) //2018.03.11 kairera0467 チップに埋め込んだフラグから読み取る
{
if (TJAPlayer3.Skin.Characters_10Combo_Ptn[Character] != 0 && !this.actChara.ctキャラクターアクション_ルマ[nPlayer].b進行中 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
if (TJAPlayer3.Skin.Characters_10Combo_Ptn[Character] != 0 && this.actChara.eNowAnime[nPlayer] != CAct演奏Drumsキャラクター.Anime.Combo10 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
{
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[nPlayer] < 100)
{
// 魂ゲージMAXではない
// ジャンプ_ーマル
this.actChara.(nPlayer);
this.actChara.ctキャラクターアクション_10コンボ[nPlayer] = new CCounter(0, TJAPlayer3.Skin.Characters_10Combo_Ptn[Character] - 1, (dbUnit / TJAPlayer3.Skin.Characters_10Combo_Ptn[Character]) * 2, CSound管理.rc演奏用タイマ);
this.actChara.ctキャラクターアクション_10コンボ[nPlayer].t進行db();
this.actChara.ctキャラクターアクション_10コンボ[nPlayer].n現在の値 = 0;
this.actChara.bマイどんアクション中[nPlayer] = true;
//this.actChara.マイどん_アクション_10コンボ();
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Combo10, true);
}
}
if (TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character] != 0 && !this.actChara.ctキャラクターアクション_魂MAX[nPlayer].b進行中 && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
if (TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character] != 0 && this.actChara.eNowAnime[nPlayer] != CAct演奏Drumsキャラクター.Anime.Combo10_Max && actChara.CharaAction_Balloon_Delay[nPlayer].b終了値に達した)
{
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[nPlayer] >= 100)
{
// 魂ゲージMAX
// ジャンプ_MAX
this.actChara.(nPlayer);
this.actChara.ctキャラクターアクション_10コンボMAX[nPlayer] = new CCounter(0, TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character] - 1, (dbUnit / TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character]) * 2, CSound管理.rc演奏用タイマ);
this.actChara.ctキャラクターアクション_10コンボMAX[nPlayer].t進行db();
this.actChara.ctキャラクターアクション_10コンボMAX[nPlayer].n現在の値 = 0;
this.actChara.bマイどんアクション中[nPlayer] = true;
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Combo10_Max, true);
}
}
}
@ -3339,7 +3319,7 @@ namespace TJAPlayer3
if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
{
pChip.bHit = true;
this.actPlayInfo.dbBPM = dTX.BASEBPM; //2016.07.10 kairera0467 太鼓の仕様にあわせて修正。(そもそもの仕様が不明&コードミス疑惑)
this.actPlayInfo.dbBPM[nPlayer] = dTX.BASEBPM; //2016.07.10 kairera0467 太鼓の仕様にあわせて修正。(そもそもの仕様が不明&コードミス疑惑)
}
break;
#endregion
@ -3411,18 +3391,11 @@ namespace TJAPlayer3
{
chip現在処理中の連打チップ[ nPlayer ].bHit = true;
if (chip現在処理中の連打チップ[nPlayer].nBalloon > chip現在処理中の連打チップ[nPlayer].nRollCount
&& chip現在処理中の連打チップ[nPlayer].nRollCount > 0
&& actChara.CharaAction_Balloon_Miss[nPlayer] != null)
&& chip現在処理中の連打チップ[nPlayer].nRollCount > 0)
{
if (TJAPlayer3.Skin.Characters_Balloon_Miss_Ptn[actChara.iCurrentCharacter[nPlayer]] > 0)
{
actChara.(nPlayer);
actChara.bマイどんアクション中[nPlayer] = true;
actChara.CharaAction_Balloon_Miss[nPlayer] = new CCounter(0,
TJAPlayer3.Skin.Characters_Balloon_Miss_Ptn[actChara.iCurrentCharacter[nPlayer]] - 1,
TJAPlayer3.Skin.Characters_Balloon_Timer[actChara.iCurrentCharacter[nPlayer]],
TJAPlayer3.Timer);
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Balloon_Miss, true);
if (actChara.CharaAction_Balloon_Delay[nPlayer] != null) actChara.CharaAction_Balloon_Delay[nPlayer] = new CCounter(0,
TJAPlayer3.Skin.Characters_Balloon_Delay[actChara.iCurrentCharacter[nPlayer]] - 1,
@ -3524,87 +3497,7 @@ namespace TJAPlayer3
this.actChara.b演奏中[nPlayer] = true;
if( this.actPlayInfo.NowMeasure[nPlayer] == 0 )
{
for (int i = 0; i < 5; i++)
{
ctChipAnime[i] = new CCounter(0, 3, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * 1 / 4 / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0), CSound管理.rc演奏用タイマ);
}
int p = TJAPlayer3.GetActualPlayer(nPlayer);
int chara = Math.Max(0, Math.Min(TJAPlayer3.SaveFileInstances[p].data.Character, TJAPlayer3.Skin.Characters_Ptn - 1));
if (TJAPlayer3.Skin.Characters_Normal_Ptn[chara] != 0)
{
double dbPtn_Normal = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Characters_Beat_Normal[chara] / this.actChara.arモーション番号[nPlayer].Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0);
this.actChara.ctChara_Normal[nPlayer] = new CCounter(0, this.actChara.arモーション番号[nPlayer].Length - 1, dbPtn_Normal, CSound管理.rc演奏用タイマ);
}
else
{
this.actChara.ctChara_Normal[nPlayer] = new CCounter();
}
if (TJAPlayer3.Skin.Characters_Normal_Missed_Ptn[chara] != 0)
{
double dbPtn_Miss = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Characters_Beat_Miss[chara] / this.actChara.arMissモーション番号[nPlayer].Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0);
this.actChara.ctChara_Miss[nPlayer] = new CCounter(0, this.actChara.arMissモーション番号[nPlayer].Length - 1, dbPtn_Miss, CSound管理.rc演奏用タイマ);
}
else
{
this.actChara.ctChara_Miss[nPlayer] = new CCounter();
}
if (TJAPlayer3.Skin.Characters_Normal_MissedDown_Ptn[chara] != 0)
{
double dbPtn_MissDown = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Characters_Beat_MissDown[chara] / this.actChara.arMissDownモーション番号[nPlayer].Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0);
this.actChara.ctChara_MissDown[nPlayer] = new CCounter(0, this.actChara.arMissDownモーション番号[nPlayer].Length - 1, dbPtn_MissDown, CSound管理.rc演奏用タイマ);
}
else
{
this.actChara.ctChara_MissDown[nPlayer] = new CCounter();
}
if (TJAPlayer3.Skin.Characters_Normal_Cleared_Ptn[chara] != 0)
{
double dbPtn_Clear = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Characters_Beat_Clear[chara] / this.actChara.arクリアモーション番号[nPlayer].Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0);
this.actChara.ctChara_Clear[nPlayer] = new CCounter(0, this.actChara.arクリアモーション番号[nPlayer].Length - 1, dbPtn_Clear, CSound管理.rc演奏用タイマ);
}
else
{
this.actChara.ctChara_Clear[nPlayer] = new CCounter();
}
if (TJAPlayer3.Skin.Characters_GoGoTime_Ptn[chara] != 0)
{
double dbPtn_GoGo = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Characters_Beat_GoGo[chara] / this.actChara.arゴーゴーモーション番号[nPlayer].Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0);
this.actChara.ctChara_GoGo[nPlayer] = new CCounter(0, this.actChara.arゴーゴーモーション番号[nPlayer].Length - 1, dbPtn_GoGo, CSound管理.rc演奏用タイマ);
}
else
{
this.actChara.ctChara_GoGo[nPlayer] = new CCounter();
}
if (TJAPlayer3.Skin.Game_Dancer_Ptn != 0)
{
double dbUnit_dancer = (((60 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM))) / this.actDancer.ar踊り子モーション番号.Length) / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0);
this.actDancer.ct踊り子モーション = new CCounter(0, this.actDancer.ar踊り子モーション番号.Length - 1, dbUnit_dancer * TJAPlayer3.Skin.Game_Dancer_Beat, CSound管理.rc演奏用タイマ);
}
else
{
this.actDancer.ct踊り子モーション = new CCounter();
}
if (TJAPlayer3.Skin.Game_Mob_Ptn != 0 && TJAPlayer3.Skin.Game_Mob_Beat > 0 ) //2018.6.15 Game_Mob_Beatが0のままCCounter生成をされて無限ループが発生しないよう対策
{
this.actMob.ctMob = new CCounter(1, 180, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * TJAPlayer3.Skin.Game_Mob_Beat / 180 / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0), CSound管理.rc演奏用タイマ);
this.actMob.ctMobPtn = new CCounter(0, TJAPlayer3.Skin.Game_Mob_Ptn - 1, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * TJAPlayer3.Skin.Game_Mob_Ptn_Beat / TJAPlayer3.Skin.Game_Mob_Ptn / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0), CSound管理.rc演奏用タイマ);
}
else
{
this.actMob.ctMob = new CCounter();
this.actMob.ctMobPtn = new CCounter();
}
TJAPlayer3.stage演奏ドラム画面.PuchiChara.ChangeBPM(60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
UpdateCharaCounter(nPlayer);
}
if (!bPAUSE)//2020.07.08 Mr-Ojii KabanFriends氏のコードを参考に
{
@ -3747,83 +3640,16 @@ namespace TJAPlayer3
{
if ( dTX.listBPM.TryGetValue( pChip.n整数値_内部番号, out CDTX.CBPM cBPM ) )
{
this.actPlayInfo.dbBPM = cBPM.dbBPM値;// + dTX.BASEBPM;
this.actPlayInfo.dbBPM[nPlayer] = cBPM.dbBPM値;// + dTX.BASEBPM;
}
for (int i = 0; i < 5; i++)
{
ctChipAnime[i] = new CCounter(0, 3, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * 1 / 4, CSound管理.rc演奏用タイマ);
ctChipAnime[i] = new CCounter(0, 3, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[nPlayer] * 1 / 4, CSound管理.rc演奏用タイマ);
}
int p = TJAPlayer3.GetActualPlayer(nPlayer);
int chara = Math.Max(0, Math.Min(TJAPlayer3.SaveFileInstances[p].data.Character, TJAPlayer3.Skin.Characters_Ptn - 1));
if (TJAPlayer3.Skin.Characters_Normal_Ptn[chara] != 0)
{
double dbPtn_Normal = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Characters_Beat_Normal[chara] / this.actChara.arモーション番号[nPlayer].Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0);
this.actChara.ctChara_Normal[nPlayer] = new CCounter(0, this.actChara.arモーション番号[nPlayer].Length - 1, dbPtn_Normal, CSound管理.rc演奏用タイマ);
} else
{
this.actChara.ctChara_Normal[nPlayer] = new CCounter();
}
if (TJAPlayer3.Skin.Characters_Normal_Missed_Ptn[chara] != 0)
{
double dbPtn_Miss = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Characters_Beat_Miss[chara] / this.actChara.arMissモーション番号[nPlayer].Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0);
this.actChara.ctChara_Miss[nPlayer] = new CCounter(0, this.actChara.arMissモーション番号[nPlayer].Length - 1, dbPtn_Miss, CSound管理.rc演奏用タイマ);
}
else
{
this.actChara.ctChara_Miss[nPlayer] = new CCounter();
}
if (TJAPlayer3.Skin.Characters_Normal_MissedDown_Ptn[chara] != 0)
{
double dbPtn_MissDown = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Characters_Beat_MissDown[chara] / this.actChara.arMissDownモーション番号[nPlayer].Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0);
this.actChara.ctChara_MissDown[nPlayer] = new CCounter(0, this.actChara.arMissDownモーション番号[nPlayer].Length - 1, dbPtn_MissDown, CSound管理.rc演奏用タイマ);
}
else
{
this.actChara.ctChara_MissDown[nPlayer] = new CCounter();
}
if (TJAPlayer3.Skin.Characters_Normal_Cleared_Ptn[chara] != 0)
{
double dbPtn_Clear = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Characters_Beat_Clear[chara] / this.actChara.arクリアモーション番号[nPlayer].Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0);
this.actChara.ctChara_Clear[nPlayer] = new CCounter(0, this.actChara.arクリアモーション番号[nPlayer].Length - 1, dbPtn_Clear, CSound管理.rc演奏用タイマ);
}
else
{
this.actChara.ctChara_Clear[nPlayer] = new CCounter();
}
if (TJAPlayer3.Skin.Characters_GoGoTime_Ptn[chara] != 0)
{
double dbPtn_GoGo = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Characters_Beat_GoGo[chara] / this.actChara.arゴーゴーモーション番号[nPlayer].Length / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0);
this.actChara.ctChara_GoGo[nPlayer] = new CCounter(0, this.actChara.arゴーゴーモーション番号[nPlayer].Length - 1, dbPtn_GoGo, CSound管理.rc演奏用タイマ);
} else
{
this.actChara.ctChara_GoGo[nPlayer] = new CCounter();
}
if (TJAPlayer3.Skin.Game_Dancer_Ptn != 0)
{
double dbUnit_dancer = (((60 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM))) / this.actDancer.ar踊り子モーション番号.Length) / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0);
this.actDancer.ct踊り子モーション = new CCounter(0, this.actDancer.ar踊り子モーション番号.Length - 1, dbUnit_dancer * TJAPlayer3.Skin.Game_Dancer_Beat, CSound管理.rc演奏用タイマ);
}
else
{
this.actDancer.ct踊り子モーション = new CCounter();
}
if (TJAPlayer3.Skin.Game_Mob_Ptn != 0)
{
this.actMob.ctMob = new CCounter(1, 180, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * TJAPlayer3.Skin.Game_Mob_Beat / 180 / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0), CSound管理.rc演奏用タイマ);
this.actMob.ctMobPtn = new CCounter(0, TJAPlayer3.Skin.Game_Mob_Ptn - 1, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * TJAPlayer3.Skin.Game_Mob_Ptn_Beat / TJAPlayer3.Skin.Game_Mob_Ptn / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0), CSound管理.rc演奏用タイマ);
// this.actMob.ctMobPtn = new CCounter(0, TJAPlayer3.Skin.Game_Mob_Ptn - 1, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * TJAPlayer3.Skin.Game_Mob_Ptn_Beat / TJAPlayer3.Skin.Game_Mob_Ptn, CSound管理.rc演奏用タイマ);
} else
{
this.actMob.ctMob = new CCounter();
this.actMob.ctMobPtn = new CCounter();
}
TJAPlayer3.stage演奏ドラム画面.PuchiChara.ChangeBPM(60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM);
UpdateCharaCounter(nPlayer);
//this.actDancer.ct踊り子モーション = new CCounter(0, this.actDancer.ar踊り子モーション番号.Length - 1, (dbUnit * CDTXMania.Skin.Game_Dancer_Beat) / this.actDancer.ar踊り子モーション番号.Length, CSound管理.rc演奏用タイマ);
//this.actChara.ctモブモーション = new CCounter(0, this.actChara.arモブモーション番号.Length - 1, (dbUnit) / this.actChara.arモブモーション番号.Length, CSound管理.rc演奏用タイマ);
//#if C_82D982F182AF82CD82A282AF82A2
@ -3868,11 +3694,7 @@ namespace TJAPlayer3
{
// 魂ゲージMAXではない
// ゴーゴースタート_ーマル
this.actChara.(nPlayer);
this.actChara.ctキャラクターアクション_ゴーゴースタート[nPlayer] = new CCounter(0, TJAPlayer3.Skin.Characters_GoGoStart_Ptn[Character] - 1, (dbUnit / TJAPlayer3.Skin.Characters_GoGoStart_Ptn[Character]) * 2, CSound管理.rc演奏用タイマ);
this.actChara.ctキャラクターアクション_ゴーゴースタート[nPlayer].t進行db();
this.actChara.ctキャラクターアクション_ゴーゴースタート[nPlayer].n現在の値 = 0;
this.actChara.bマイどんアクション中[nPlayer] = true;
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.GoGoStart, true);
//this.actChara.マイどん_アクション_10コンボ();
}
}
@ -3882,11 +3704,7 @@ namespace TJAPlayer3
{
// 魂ゲージMAX
// ゴーゴースタート_MAX
this.actChara.(nPlayer);
this.actChara.ctキャラクターアクション_ゴーゴースタートMAX[nPlayer] = new CCounter(0, TJAPlayer3.Skin.Characters_GoGoStart_Maxed_Ptn[Character] - 1, (dbUnit / TJAPlayer3.Skin.Characters_GoGoStart_Maxed_Ptn[Character]) * 2, CSound管理.rc演奏用タイマ);
this.actChara.ctキャラクターアクション_ゴーゴースタートMAX[nPlayer].t進行db();
this.actChara.ctキャラクターアクション_ゴーゴースタートMAX[nPlayer].n現在の値 = 0;
this.actChara.bマイどんアクション中[nPlayer] = true;
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.GoGoStart_Max, true);
}
}
@ -4540,8 +4358,7 @@ namespace TJAPlayer3
{
this.chip現在処理中の連打チップ[ i ] = null;
this.actChara.b風船連打中[i] = false;
this.actChara.bマイどんアクション中[i] = false;
this.actChara.(i);
this.actChara.ChangeAnime(i, CAct演奏Drumsキャラクター.Anime.Normal, true);
}
this.bPAUSE = false;
}

View File

@ -20,13 +20,13 @@ namespace TJAPlayer3
public override void On活性化()
{
this.ct踊り子モーション = new CCounter();
//this.ct踊り子モーション = new CCounter();
base.On活性化();
}
public override void On非活性化()
{
this.ct踊り子モーション = null;
//this.ct踊り子モーション = null;
base.On非活性化();
}
@ -44,13 +44,13 @@ namespace TJAPlayer3
var path = dirs[random.Next(0, dirs.Length)];
LoadDancerConifg(path);
TJAPlayer3.Skin.Game_Dancer_Ptn = TJAPlayer3.t連番画像の枚数を数える($@"{path}\1\");
if (TJAPlayer3.Skin.Game_Dancer_Ptn != 0)
nDancerPtn = TJAPlayer3.t連番画像の枚数を数える($@"{path}\1\");
if (nDancerPtn != 0)
{
for (int i = 0; i < 5; i++)
{
Dancer[i] = new CTexture[TJAPlayer3.Skin.Game_Dancer_Ptn];
for (int p = 0; p < TJAPlayer3.Skin.Game_Dancer_Ptn; p++)
Dancer[i] = new CTexture[nDancerPtn];
for (int p = 0; p < nDancerPtn; p++)
{
Dancer[i][p] = TJAPlayer3.tテクスチャの生成($@"{path}\{(i + 1)}\{p}.png");
}
@ -61,7 +61,10 @@ namespace TJAPlayer3
this.ar踊り子モーション番号 = C変換.ar配列形式のstringをint配列に変換して返す(TJAPlayer3.Skin.Game_Dancer_Motion);
if(this.ar踊り子モーション番号 == null) ar踊り子モーション番号 = C変換.ar配列形式のstringをint配列に変換して返す("0,0");
this.ct踊り子モーション = new CCounter(0, this.ar踊り子モーション番号.Length - 1, 0.01, CSound管理.rc演奏用タイマ);
nNowDancerCounter = 0;
nNowDancerFrame = 0;
base.OnManagedリソースの作成();
}
@ -84,16 +87,24 @@ namespace TJAPlayer3
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan)
{
if (this.ct踊り子モーション != null || TJAPlayer3.Skin.Game_Dancer_Ptn != 0) this.ct踊り子モーション.t進行LoopDb();
if (TJAPlayer3.ConfigIni.ShowDancer && this.ct踊り子モーション != null && TJAPlayer3.Skin.Game_Dancer_Ptn != 0)
if (TJAPlayer3.ConfigIni.ShowDancer && (this.ar踊り子モーション番号.Length - 1) != 0)
{
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowDancerCounter += (((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / 60.0f) * (float)TJAPlayer3.FPS.DeltaTime) * (this.ar踊り子モーション番号.Length - 1) / nDancerBeat;
nNowDancerFrame = (int)nNowDancerCounter;
nNowDancerFrame = Math.Min(nNowDancerFrame, (this.ar踊り子モーション番号.Length - 1));
bool endAnime = nNowDancerFrame >= (this.ar踊り子モーション番号.Length - 1) - 1;
if (endAnime)
{
nNowDancerCounter = 0;
nNowDancerFrame = 0;
}
for (int i = 0; i < 5; i++)
{
if (this.Dancer[i] != null && this.Dancer[i][this.ar踊り子モーション番号[(int)this.ct踊り子モーション.n現在の値]] != null)
if (this.Dancer[i] != null && this.Dancer[i][this.ar踊り子モーション番号[nNowDancerFrame]] != null)
{
if ((int)TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[0] >= TJAPlayer3.Skin.Game_Dancer_Gauge[i])
this.Dancer[i][this.ar踊り子モーション番号[(int)this.ct踊り子モーション.n現在の値]].t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Dancer_X[i], TJAPlayer3.Skin.Game_Dancer_Y[i]);
this.Dancer[i][this.ar踊り子モーション番号[nNowDancerFrame]].t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Dancer_X[i], TJAPlayer3.Skin.Game_Dancer_Y[i]);
}
}
}
@ -104,8 +115,12 @@ namespace TJAPlayer3
#region[ private ]
//-----------------
public int[] ar踊り子モーション番号;
public CCounter ct踊り子モーション;
private float nNowDancerCounter;
private int nNowDancerFrame;
private int nDancerPtn;
private float nDancerBeat;
private int[] ar踊り子モーション番号;
//public CCounter ct踊り子モーション;
private CTexture[][] Dancer;
private void LoadDancerConifg(string dancerPath)
@ -116,6 +131,9 @@ namespace TJAPlayer3
string[] delimiter = { "\n" };
string[] strSingleLine = _str.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
TJAPlayer3.Skin.Game_Dancer_X = new int[] { 640, 430, 856, 215, 1070 };
TJAPlayer3.Skin.Game_Dancer_Y = new int[] { 500, 500, 500, 500, 500 };
foreach (string s in strSingleLine)
{
string str = s.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' });
@ -155,7 +173,7 @@ namespace TJAPlayer3
// Game_Dancer_PtnはTextrueLoader.csで反映されます。
else if (strCommand == "Game_Dancer_Beat")
{
TJAPlayer3.Skin.Game_Dancer_Beat = int.Parse(strParam);
nDancerBeat = int.Parse(strParam);
}
else if (strCommand == "Game_Dancer_Gauge")
{

View File

@ -19,17 +19,14 @@ namespace TJAPlayer3
public override void On活性化()
{
ctMob = new CCounter();
//ctMob = new CCounter(1, 180, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * TJAPlayer3.Skin.Game_Mob_Beat / 180 / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0), CSound管理.rc演奏用タイマ);
ctMobPtn = new CCounter();
RandomMob = TJAPlayer3.Random.Next(TJAPlayer3.Skin.Game_Mob_Ptn);
nMobBeat = TJAPlayer3.Skin.Game_Mob_Beat;
base.On活性化();
}
public override void On非活性化()
{
ctMob = null;
ctMobPtn = null;
base.On非活性化();
}
@ -47,9 +44,6 @@ namespace TJAPlayer3
{
if(!TJAPlayer3.stage演奏ドラム画面.bDoublePlay)
{
if (ctMob != null) ctMob.t進行LoopDb();
if (ctMobPtn != null || TJAPlayer3.Skin.Game_Mob_Ptn != 0) ctMobPtn.t進行LoopDb();
if (TJAPlayer3.Skin.Game_Mob_Ptn != 0 && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan)
{
@ -64,10 +58,17 @@ namespace TJAPlayer3
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[0] >= 100)
{
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowMobCounter += (((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / 60.0f) * (float)TJAPlayer3.FPS.DeltaTime) * 180 / nMobBeat;
bool endAnime = nNowMobCounter >= 180;
if (endAnime)
{
nNowMobCounter = 0;
}
if (TJAPlayer3.Tx.Mob[RandomMob] != null)
TJAPlayer3.Tx.Mob[RandomMob].t2D描画(TJAPlayer3.app.Device, 0, (TJAPlayer3.Skin.Resolution[1] - (TJAPlayer3.Tx.Mob[RandomMob].szテクスチャサイズ.Height - 70)) + -((float)Math.Sin((float)this.ctMob.n現在の値 * (Math.PI / 180)) * 70));
TJAPlayer3.Tx.Mob[RandomMob].t2D描画(TJAPlayer3.app.Device, 0, (TJAPlayer3.Skin.Resolution[1] - (TJAPlayer3.Tx.Mob[RandomMob].szテクスチャサイズ.Height - 70)) + -((float)Math.Sin(nNowMobCounter * (Math.PI / 180)) * 70));
}
@ -77,8 +78,8 @@ namespace TJAPlayer3
}
#region[ private ]
//-----------------
public CCounter ctMob;
public CCounter ctMobPtn;
private float nNowMobCounter;
private float nMobBeat;
private int RandomMob;
//-----------------
#endregion

View File

@ -29,6 +29,8 @@ namespace TJAPlayer3
{
for(int i = 0; i < 5; i++)
{
/*
ctChara_Normal[i] = new CCounter();
ctChara_Miss[i] = new CCounter();
ctChara_MissDown[i] = new CCounter();
@ -42,10 +44,11 @@ namespace TJAPlayer3
this.ctキャラクターアクション_ルマ[i] = new CCounter();
this.ctキャラクターアクション_魂MAX[i] = new CCounter();
this.ctキャラクターアクション_Return[i] = new CCounter();
*/
CharaAction_Balloon_Breaking[i] = new CCounter();
CharaAction_Balloon_Broke[i] = new CCounter();
CharaAction_Balloon_Miss[i] = new CCounter();
//CharaAction_Balloon_Breaking[i] = new CCounter();
//CharaAction_Balloon_Broke[i] = new CCounter();
//CharaAction_Balloon_Miss[i] = new CCounter();
CharaAction_Balloon_Delay[i] = new CCounter();
// Currently used character
@ -53,6 +56,8 @@ namespace TJAPlayer3
this.iCurrentCharacter[i] = Math.Max(0, Math.Min(TJAPlayer3.SaveFileInstances[p].data.Character, TJAPlayer3.Skin.Characters_Ptn - 1));
if (TJAPlayer3.Skin.Characters_Normal_Ptn[this.iCurrentCharacter[i]] != 0) ChangeAnime(i, Anime.Normal, true);
else ChangeAnime(i, Anime.None, true);
this.b風船連打中[i] = false;
this.b演奏中[i] = false;
@ -60,8 +65,6 @@ namespace TJAPlayer3
// CharaAction_Balloon_FadeOut[i] = new Animations.FadeOut(TJAPlayer3.Skin.Game_Chara_Balloon_FadeOut);
CharaAction_Balloon_FadeOut[i] = new Animations.FadeOut(TJAPlayer3.Skin.Characters_Balloon_FadeOut[this.iCurrentCharacter[i]]);
this.bマイどんアクション中[i] = false;
var tick = TJAPlayer3.Skin.Characters_Balloon_Timer[this.iCurrentCharacter[i]];
var balloonBrokePtn = TJAPlayer3.Skin.Characters_Balloon_Broke_Ptn[this.iCurrentCharacter[i]];
@ -83,6 +86,7 @@ namespace TJAPlayer3
{
for (int i = 0; i < 5; i++)
{
/*
ctChara_Normal[i] = null;
ctChara_Miss[i] = null;
ctChara_MissDown[i] = null;
@ -95,10 +99,11 @@ namespace TJAPlayer3
this.ctキャラクターアクション_ルマ[i] = null;
this.ctキャラクターアクション_魂MAX[i] = null;
this.ctキャラクターアクション_Return[i] = null;
*/
CharaAction_Balloon_Breaking[i] = null;
CharaAction_Balloon_Broke[i] = null;
CharaAction_Balloon_Miss[i] = null;
//CharaAction_Balloon_Breaking[i] = null;
//CharaAction_Balloon_Broke[i] = null;
//CharaAction_Balloon_Miss[i] = null;
CharaAction_Balloon_Delay[i] = null;
CharaAction_Balloon_FadeOut[i] = null;
@ -123,11 +128,6 @@ namespace TJAPlayer3
if (arゴーゴーモーション番号[i] == null) this.arゴーゴーモーション番号[i] = C変換.ar配列形式のstringをint配列に変換して返す("0,0");
if (arクリアモーション番号[i] == null) this.arクリアモーション番号[i] = C変換.ar配列形式のstringをint配列に変換して返す("0,0");
ctChara_Normal[i] = new CCounter(0, arモーション番号[i].Length - 1, 10, CSound管理.rc演奏用タイマ);
ctChara_Miss[i] = new CCounter(0, arMissモーション番号[i].Length - 1, 10, CSound管理.rc演奏用タイマ);
ctChara_MissDown[i] = new CCounter(0, arMissDownモーション番号[i].Length - 1, 10, CSound管理.rc演奏用タイマ);
ctChara_GoGo[i] = new CCounter(0, arゴーゴーモーション番号[i].Length - 1, 10, CSound管理.rc演奏用タイマ);
ctChara_Clear[i] = new CCounter(0, arクリアモーション番号[i].Length - 1, 10, CSound管理.rc演奏用タイマ);
if (CharaAction_Balloon_Delay[i] != null) CharaAction_Balloon_Delay[i].n現在の値 = (int)CharaAction_Balloon_Delay[i].n終了値;
}
base.OnManagedリソースの作成();
@ -147,20 +147,6 @@ namespace TJAPlayer3
if (TJAPlayer3.Skin.Characters_Ptn == 0)
break;
if (ctChara_Normal != null || TJAPlayer3.Skin.Characters_Normal_Ptn[Character] != 0) ctChara_Normal[i].t進行LoopDb();
if (ctChara_Miss != null || TJAPlayer3.Skin.Characters_Normal_Missed_Ptn[Character] != 0) ctChara_Miss[i].t進行LoopDb();
if (ctChara_MissDown != null || TJAPlayer3.Skin.Characters_Normal_MissedDown_Ptn[Character] != 0) ctChara_MissDown[i].t進行LoopDb();
if (ctChara_GoGo != null || TJAPlayer3.Skin.Characters_GoGoTime_Ptn[Character] != 0) ctChara_GoGo[i].t進行LoopDb();
if (ctChara_Clear != null || TJAPlayer3.Skin.Characters_Normal_Cleared_Ptn[Character] != 0) ctChara_Clear[i].t進行LoopDb();
if (this.ctキャラクターアクション_10コンボ != null || TJAPlayer3.Skin.Characters_10Combo_Ptn[Character] != 0) this.ctキャラクターアクション_10コンボ[i].t進行db();
if (this.ctキャラクターアクション_10コンボMAX != null || TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character] != 0) this.ctキャラクターアクション_10コンボMAX[i].t進行db();
if (this.ctキャラクターアクション_ゴーゴースタート != null || TJAPlayer3.Skin.Characters_GoGoStart_Ptn[Character] != 0) this.ctキャラクターアクション_ゴーゴースタート[i].t進行db();
if (this.ctキャラクターアクション_ゴーゴースタートMAX != null || TJAPlayer3.Skin.Characters_GoGoStart_Maxed_Ptn[Character] != 0) this.ctキャラクターアクション_ゴーゴースタートMAX[i].t進行db();
if (this.ctキャラクターアクション_ルマ != null || TJAPlayer3.Skin.Characters_Become_Cleared_Ptn[Character] != 0) this.ctキャラクターアクション_ルマ[i].t進行db();
if (this.ctキャラクターアクション_魂MAX != null || TJAPlayer3.Skin.Characters_Become_Maxed_Ptn[Character] != 0) this.ctキャラクターアクション_魂MAX[i].t進行db();
if (this.ctキャラクターアクション_Return != null || TJAPlayer3.Skin.Characters_10Combo_Ptn[Character] != 0) this.ctキャラクターアクション_Return[i].t進行db();
// Blinking animation during invincibility frames
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower)
{
@ -170,164 +156,182 @@ namespace TJAPlayer3
CTexture nowChara = null;
if (this.b風船連打中[i] != true && this.bマイどんアクション中[i] != true && CharaAction_Balloon_Delay[i].b終了値に達した)
{
if (!TJAPlayer3.stage演奏ドラム画面.bIsGOGOTIME[i])
{
if (!TJAPlayer3.stage演奏ドラム画面.bIsMiss[i] || TJAPlayer3.Skin.Characters_Normal_Missed_Ptn[Character] == 0)
{
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 100.0 && TJAPlayer3.Skin.Characters_Normal_Cleared_Ptn[Character] != 0)
{
if (TJAPlayer3.Skin.Characters_Normal_Maxed_Ptn[Character] != 0)
{
nowChara = TJAPlayer3.Tx.Characters_Normal_Maxed[Character][this.arクリアモーション番号[i][(int)this.ctChara_Clear[i].n現在の値]];
}
}
else if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 80.0 && TJAPlayer3.Skin.Characters_Normal_Cleared_Ptn[Character] != 0)
{
if (TJAPlayer3.Skin.Characters_Normal_Cleared_Ptn[Character] != 0)
{
nowChara = TJAPlayer3.Tx.Characters_Normal_Cleared[Character][this.arクリアモーション番号[i][(int)this.ctChara_Clear[i].n現在の値]];
}
}
else
{
if (TJAPlayer3.Skin.Characters_Normal_Ptn[Character] != 0)
{
nowChara = TJAPlayer3.Tx.Characters_Normal[Character][this.arモーション番号[i][(int)this.ctChara_Normal[i].n現在の値]];
}
}
}
else
{
if (TJAPlayer3.stage演奏ドラム画面.Chara_MissCount[i] < 6 || TJAPlayer3.Skin.Characters_Normal_MissedDown_Ptn[Character] == 0)
{
nowChara = TJAPlayer3.Tx.Characters_Normal_Missed[Character][this.arMissモーション番号[i][(int)this.ctChara_Miss[i].n現在の値]];
}
else
{
nowChara = TJAPlayer3.Tx.Characters_Normal_MissedDown[Character][this.arMissDownモーション番号[i][(int)this.ctChara_MissDown[i].n現在の値]];
}
}
}
else
{
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 100.0 && TJAPlayer3.Skin.Characters_GoGoTime_Maxed_Ptn[Character] != 0)
{
if (TJAPlayer3.Skin.Characters_GoGoTime_Maxed_Ptn[Character] != 0)
nowChara = TJAPlayer3.Tx.Characters_GoGoTime_Maxed[Character][this.arゴーゴーモーション番号[i][(int)this.ctChara_GoGo[i].n現在の値]];
}
else
{
if (TJAPlayer3.Skin.Characters_GoGoTime_Ptn[Character] != 0)
nowChara = TJAPlayer3.Tx.Characters_GoGoTime[Character][this.arゴーゴーモーション番号[i][(int)this.ctChara_GoGo[i].n現在の値]];
}
}
}
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowCharaCounter[i] += (((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[i] / 60.0f) * (float)TJAPlayer3.FPS.DeltaTime) * nCharaFrameCount[i] / nCharaBeat[i];
nNowCharaFrame[i] = (int)nNowCharaCounter[i];
nNowCharaFrame[i] = Math.Min(nNowCharaFrame[i], nCharaFrameCount[i]);
bool endAnime = nNowCharaFrame[i] >= nCharaFrameCount[i];
if (this.b風船連打中[i] != true && bマイどんアクション中[i] == true && CharaAction_Balloon_Delay[i].b終了値に達した)
if (this.b風船連打中[i] != true && eNowAnime[i] != Anime.None && CharaAction_Balloon_Delay[i].b終了値に達した)
{
if (this.ctキャラクターアクション_10コンボ[i].b進行中)
switch (eNowAnime[i])
{
case Anime.None:
{
ReturnDefaultAnime(i, false);
}
break;
case Anime.Normal:
{
ReturnDefaultAnime(i, false);
nowChara = TJAPlayer3.Tx.Characters_Normal[Character][this.arモーション番号[i][nNowCharaFrame[i]]];
if (endAnime)
{
nNowCharaCounter[i] = 0;
nNowCharaFrame[i] = 0;
}
}
break;
case Anime.Miss:
{
ReturnDefaultAnime(i, false);
nowChara = TJAPlayer3.Tx.Characters_Normal_Missed[Character][this.arMissモーション番号[i][nNowCharaFrame[i]]];
if (endAnime)
{
nNowCharaCounter[i] = 0;
nNowCharaFrame[i] = 0;
}
}
break;
case Anime.MissDown:
{
ReturnDefaultAnime(i, false);
nowChara = TJAPlayer3.Tx.Characters_Normal_MissedDown[Character][this.arMissDownモーション番号[i][nNowCharaFrame[i]]];
if (endAnime)
{
nNowCharaCounter[i] = 0;
nNowCharaFrame[i] = 0;
}
}
break;
case Anime.Cleared:
{
ReturnDefaultAnime(i, false);
nowChara = TJAPlayer3.Tx.Characters_Normal_Cleared[Character][this.arクリアモーション番号[i][nNowCharaFrame[i]]];
if (endAnime)
{
nNowCharaCounter[i] = 0;
nNowCharaFrame[i] = 0;
}
}
break;
case Anime.Maxed:
{
ReturnDefaultAnime(i, false);
nowChara = TJAPlayer3.Tx.Characters_Normal_Maxed[Character][this.arクリアモーション番号[i][nNowCharaFrame[i]]];
if (endAnime)
{
nNowCharaCounter[i] = 0;
nNowCharaFrame[i] = 0;
}
}
break;
case Anime.GoGoTime:
{
ReturnDefaultAnime(i, false);
nowChara = TJAPlayer3.Tx.Characters_GoGoTime[Character][this.arゴーゴーモーション番号[i][nNowCharaFrame[i]]];
if (endAnime)
{
nNowCharaCounter[i] = 0;
nNowCharaFrame[i] = 0;
}
}
break;
case Anime.GoGoTime_Maxed:
{
ReturnDefaultAnime(i, false);
nowChara = TJAPlayer3.Tx.Characters_GoGoTime_Maxed[Character][this.arゴーゴーモーション番号[i][nNowCharaFrame[i]]];
if (endAnime)
{
nNowCharaCounter[i] = 0;
nNowCharaFrame[i] = 0;
}
}
break;
case Anime.Combo10:
{
if (TJAPlayer3.Tx.Characters_10Combo[Character] != null && TJAPlayer3.Skin.Characters_10Combo_Ptn[Character] != 0)
{
nowChara = TJAPlayer3.Tx.Characters_10Combo[Character][(int)this.ctキャラクターアクション_10コンボ[i].n現在の値];
nowChara = TJAPlayer3.Tx.Characters_10Combo[Character][nNowCharaFrame[i]];
}
if (this.ctキャラクターアクション_10コンボ[i].b終了値に達した)
if (endAnime)
{
this.bマイどんアクション中[i] = false;
this.ctキャラクターアクション_10コンボ[i].t停止();
this.ctキャラクターアクション_10コンボ[i].n現在の値 = 0;
ReturnDefaultAnime(i, true);
}
}
if (this.ctキャラクターアクション_10コンボMAX[i].b進行中)
break;
case Anime.Combo10_Max:
{
if (TJAPlayer3.Tx.Characters_10Combo_Maxed[Character] != null && TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character] != 0)
{
nowChara = TJAPlayer3.Tx.Characters_10Combo_Maxed[Character][(int)this.ctキャラクターアクション_10コンボMAX[i].n現在の値];
nowChara = TJAPlayer3.Tx.Characters_10Combo_Maxed[Character][nNowCharaFrame[i]];
}
if (this.ctキャラクターアクション_10コンボMAX[i].b終了値に達した)
if (endAnime)
{
this.bマイどんアクション中[i] = false;
this.ctキャラクターアクション_10コンボMAX[i].t停止();
this.ctキャラクターアクション_10コンボMAX[i].n現在の値 = 0;
ReturnDefaultAnime(i, true);
}
}
if (this.ctキャラクターアクション_ゴーゴースタート[i].b進行中)
break;
case Anime.GoGoStart:
{
if (TJAPlayer3.Tx.Characters_GoGoStart[Character] != null && TJAPlayer3.Skin.Characters_GoGoStart_Ptn[Character] != 0)
{
nowChara = TJAPlayer3.Tx.Characters_GoGoStart[Character][(int)this.ctキャラクターアクション_ゴーゴースタート[i].n現在の値];
nowChara = TJAPlayer3.Tx.Characters_GoGoStart[Character][nNowCharaFrame[i]];
}
if (this.ctキャラクターアクション_ゴーゴースタート[i].b終了値に達した)
if (endAnime)
{
this.bマイどんアクション中[i] = false;
this.ctキャラクターアクション_ゴーゴースタート[i].t停止();
this.ctキャラクターアクション_ゴーゴースタート[i].n現在の値 = 0;
this.ctChara_GoGo[i].n現在の値 = TJAPlayer3.Skin.Characters_GoGoTime_Ptn[Character] / 2;
ReturnDefaultAnime(i, true);
}
}
if (this.ctキャラクターアクション_ゴーゴースタートMAX[i].b進行中)
break;
case Anime.GoGoStart_Max:
{
if (TJAPlayer3.Tx.Characters_GoGoStart_Maxed[Character] != null && TJAPlayer3.Skin.Characters_GoGoStart_Maxed_Ptn[Character] != 0)
{
nowChara = TJAPlayer3.Tx.Characters_GoGoStart_Maxed[Character][(int)this.ctキャラクターアクション_ゴーゴースタートMAX[i].n現在の値];
nowChara = TJAPlayer3.Tx.Characters_GoGoStart_Maxed[Character][nNowCharaFrame[i]];
}
if (this.ctキャラクターアクション_ゴーゴースタートMAX[i].b終了値に達した)
if (endAnime)
{
this.bマイどんアクション中[i] = false;
this.ctキャラクターアクション_ゴーゴースタートMAX[i].t停止();
this.ctキャラクターアクション_ゴーゴースタートMAX[i].n現在の値 = 0;
this.ctChara_GoGo[i].n現在の値 = TJAPlayer3.Skin.Characters_GoGoTime_Ptn[Character] / 2;
ReturnDefaultAnime(i, true);
}
}
if (this.ctキャラクターアクション_ルマ[i].b進行中)
break;
case Anime.Become_Cleared:
{
if (TJAPlayer3.Tx.Characters_Become_Cleared[Character] != null && TJAPlayer3.Skin.Characters_Become_Cleared_Ptn[Character] != 0)
{
nowChara = TJAPlayer3.Tx.Characters_Become_Cleared[Character][(int)this.ctキャラクターアクション_ルマ[i].n現在の値];
nowChara = TJAPlayer3.Tx.Characters_Become_Cleared[Character][nNowCharaFrame[i]];
}
if (this.ctキャラクターアクション_ルマ[i].b終了値に達した)
if (endAnime)
{
this.bマイどんアクション中[i] = false;
this.ctキャラクターアクション_ルマ[i].t停止();
this.ctキャラクターアクション_ルマ[i].n現在の値 = 0;
ReturnDefaultAnime(i, true);
}
}
if (this.ctキャラクターアクション_魂MAX[i].b進行中)
break;
case Anime.Become_Maxed:
{
if (TJAPlayer3.Tx.Characters_Become_Maxed[Character] != null && TJAPlayer3.Skin.Characters_Become_Maxed_Ptn[Character] != 0)
{
nowChara = TJAPlayer3.Tx.Characters_Become_Maxed[Character][(int)this.ctキャラクターアクション_魂MAX[i].n現在の値];
nowChara = TJAPlayer3.Tx.Characters_Become_Maxed[Character][nNowCharaFrame[i]];
}
if (this.ctキャラクターアクション_魂MAX[i].b終了値に達した)
if (endAnime)
{
this.bマイどんアクション中[i] = false;
this.ctキャラクターアクション_魂MAX[i].t停止();
this.ctキャラクターアクション_魂MAX[i].n現在の値 = 0;
ReturnDefaultAnime(i, true);
}
}
if (this.ctキャラクターアクション_Return[i].b進行中)
break;
case Anime.Return:
{
if (TJAPlayer3.Tx.Characters_Return[Character] != null && TJAPlayer3.Skin.Characters_Return_Ptn[Character] != 0)
{
nowChara = TJAPlayer3.Tx.Characters_Return[Character][(int)this.ctキャラクターアクション_Return[i].n現在の値];
nowChara = TJAPlayer3.Tx.Characters_Return[Character][nNowCharaFrame[i]];
}
if (this.ctキャラクターアクション_Return[i].b終了値に達した)
if (endAnime)
{
this.bマイどんアクション中[i] = false;
this.ctキャラクターアクション_Return[i].t停止();
this.ctキャラクターアクション_Return[i].n現在の値 = 0;
ReturnDefaultAnime(i, true);
}
}
break;
}
}
float chara_x;
@ -432,14 +436,14 @@ namespace TJAPlayer3
{
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (TJAPlayer3.Skin.Characters_Balloon_Breaking_Ptn[iCurrentCharacter[i]] != 0) CharaAction_Balloon_Breaking[i]?.t進行();
if (TJAPlayer3.Skin.Characters_Balloon_Broke_Ptn[iCurrentCharacter[i]] != 0) CharaAction_Balloon_Broke[i]?.t進行();
//if (TJAPlayer3.Skin.Characters_Balloon_Breaking_Ptn[iCurrentCharacter[i]] != 0) CharaAction_Balloon_Breaking[i]?.t進行();
//if (TJAPlayer3.Skin.Characters_Balloon_Broke_Ptn[iCurrentCharacter[i]] != 0) CharaAction_Balloon_Broke[i]?.t進行();
CharaAction_Balloon_Delay[i]?.t進行();
if (TJAPlayer3.Skin.Characters_Balloon_Miss_Ptn[iCurrentCharacter[i]] != 0) CharaAction_Balloon_Miss[i]?.t進行();
//if (TJAPlayer3.Skin.Characters_Balloon_Miss_Ptn[iCurrentCharacter[i]] != 0) CharaAction_Balloon_Miss[i]?.t進行();
CharaAction_Balloon_FadeOut[i].Tick();
if (bマイどんアクション中[i])
{
bool endAnime = nNowCharaFrame[i] >= nCharaFrameCount[i];
var nowOpacity = CharaAction_Balloon_FadeOut[i].Counter.b進行中 ? (int)CharaAction_Balloon_FadeOut[i].GetAnimation() : 255;
float resolutionScaleX = TJAPlayer3.Skin.Resolution[0] / (float)TJAPlayer3.Skin.Characters_Resolution[this.iCurrentCharacter[i]][0];
@ -473,19 +477,19 @@ namespace TJAPlayer3
float charaScale = resolutionScaleY;
if (CharaAction_Balloon_Broke[i]?.b進行中 == true && TJAPlayer3.Skin.Characters_Balloon_Broke_Ptn[this.iCurrentCharacter[i]] != 0)
if (eNowAnime[i] == Anime.Balloon_Broke && TJAPlayer3.Skin.Characters_Balloon_Broke_Ptn[this.iCurrentCharacter[i]] != 0)
{
if (CharaAction_Balloon_FadeOut[i].Counter.b停止中 && CharaAction_Balloon_Broke[i].n現在の値 > CharaAction_Balloon_FadeOut_StartMs[i][0])
if (CharaAction_Balloon_FadeOut[i].Counter.b停止中 && nNowCharaFrame[i] > CharaAction_Balloon_FadeOut_StartMs[i][0])
{
CharaAction_Balloon_FadeOut[i].Start();
}
if (TJAPlayer3.Tx.Characters_Balloon_Broke[this.iCurrentCharacter[i]][CharaAction_Balloon_Broke[i].n現在の値] != null)
if (TJAPlayer3.Tx.Characters_Balloon_Broke[this.iCurrentCharacter[i]][nNowCharaFrame[i]] != null)
{
TJAPlayer3.Tx.Characters_Balloon_Broke[this.iCurrentCharacter[i]][CharaAction_Balloon_Broke[i].n現在の値].Opacity = nowOpacity;
TJAPlayer3.Tx.Characters_Balloon_Broke[this.iCurrentCharacter[i]][CharaAction_Balloon_Broke[i].n現在の値].vc拡大縮小倍率.X = charaScale;
TJAPlayer3.Tx.Characters_Balloon_Broke[this.iCurrentCharacter[i]][CharaAction_Balloon_Broke[i].n現在の値].vc拡大縮小倍率.Y = charaScale;
TJAPlayer3.Tx.Characters_Balloon_Broke[this.iCurrentCharacter[i]][CharaAction_Balloon_Broke[i].n現在の値].t2D描画(TJAPlayer3.app.Device,
TJAPlayer3.Tx.Characters_Balloon_Broke[this.iCurrentCharacter[i]][nNowCharaFrame[i]].Opacity = nowOpacity;
TJAPlayer3.Tx.Characters_Balloon_Broke[this.iCurrentCharacter[i]][nNowCharaFrame[i]].vc拡大縮小倍率.X = charaScale;
TJAPlayer3.Tx.Characters_Balloon_Broke[this.iCurrentCharacter[i]][nNowCharaFrame[i]].vc拡大縮小倍率.Y = charaScale;
TJAPlayer3.Tx.Characters_Balloon_Broke[this.iCurrentCharacter[i]][nNowCharaFrame[i]].t2D描画(TJAPlayer3.app.Device,
(TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0])
+ chara_x,
chara_y);
@ -494,26 +498,24 @@ namespace TJAPlayer3
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画((TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0], TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, nowOpacity, true, player : i);
if (CharaAction_Balloon_Broke[i].b終了値に達した)
if (endAnime)
{
CharaAction_Balloon_Broke[i].t停止();
CharaAction_Balloon_Broke[i].n現在の値 = 0;
bマイどんアクション中[i] = false;
ReturnDefaultAnime(i, true);
}
}
else if (CharaAction_Balloon_Miss[i]?.b進行中 == true && TJAPlayer3.Skin.Characters_Balloon_Miss_Ptn[this.iCurrentCharacter[i]] != 0)
else if (eNowAnime[i] == Anime.Balloon_Miss && TJAPlayer3.Skin.Characters_Balloon_Miss_Ptn[this.iCurrentCharacter[i]] != 0)
{
if (CharaAction_Balloon_FadeOut[i].Counter.b停止中 && CharaAction_Balloon_Miss[i].n現在の値 > CharaAction_Balloon_FadeOut_StartMs[i][1])
if (CharaAction_Balloon_FadeOut[i].Counter.b停止中 && nNowCharaFrame[i] > CharaAction_Balloon_FadeOut_StartMs[i][1])
{
CharaAction_Balloon_FadeOut[i].Start();
}
if (TJAPlayer3.Tx.Characters_Balloon_Miss[this.iCurrentCharacter[i]][CharaAction_Balloon_Miss[i].n現在の値] != null)
if (TJAPlayer3.Tx.Characters_Balloon_Miss[this.iCurrentCharacter[i]][nNowCharaFrame[i]] != null)
{
TJAPlayer3.Tx.Characters_Balloon_Miss[this.iCurrentCharacter[i]][CharaAction_Balloon_Miss[i].n現在の値].Opacity = nowOpacity;
TJAPlayer3.Tx.Characters_Balloon_Miss[this.iCurrentCharacter[i]][CharaAction_Balloon_Miss[i].n現在の値].vc拡大縮小倍率.X = charaScale;
TJAPlayer3.Tx.Characters_Balloon_Miss[this.iCurrentCharacter[i]][CharaAction_Balloon_Miss[i].n現在の値].vc拡大縮小倍率.Y = charaScale;
TJAPlayer3.Tx.Characters_Balloon_Miss[this.iCurrentCharacter[i]][CharaAction_Balloon_Miss[i].n現在の値].t2D描画(TJAPlayer3.app.Device,
TJAPlayer3.Tx.Characters_Balloon_Miss[this.iCurrentCharacter[i]][nNowCharaFrame[i]].Opacity = nowOpacity;
TJAPlayer3.Tx.Characters_Balloon_Miss[this.iCurrentCharacter[i]][nNowCharaFrame[i]].vc拡大縮小倍率.X = charaScale;
TJAPlayer3.Tx.Characters_Balloon_Miss[this.iCurrentCharacter[i]][nNowCharaFrame[i]].vc拡大縮小倍率.Y = charaScale;
TJAPlayer3.Tx.Characters_Balloon_Miss[this.iCurrentCharacter[i]][nNowCharaFrame[i]].t2D描画(TJAPlayer3.app.Device,
(TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0])
+ chara_x,
chara_y);
@ -522,20 +524,18 @@ namespace TJAPlayer3
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画((TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0], TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, nowOpacity, true, player : i);
if (CharaAction_Balloon_Miss[i].b終了値に達した)
if (endAnime)
{
CharaAction_Balloon_Miss[i].t停止();
CharaAction_Balloon_Miss[i].n現在の値 = 0;
bマイどんアクション中[i] = false;
ReturnDefaultAnime(i, true);
}
}
else if (CharaAction_Balloon_Breaking[i]?.b進行中 == true && TJAPlayer3.Skin.Characters_Balloon_Breaking_Ptn[this.iCurrentCharacter[i]] != 0)
else if (eNowAnime[i] == Anime.Balloon_Breaking && TJAPlayer3.Skin.Characters_Balloon_Breaking_Ptn[this.iCurrentCharacter[i]] != 0)
{
if (TJAPlayer3.Tx.Characters_Balloon_Breaking[this.iCurrentCharacter[i]][CharaAction_Balloon_Breaking[i].n現在の値] != null)
if (TJAPlayer3.Tx.Characters_Balloon_Breaking[this.iCurrentCharacter[i]][nNowCharaFrame[i]] != null)
{
TJAPlayer3.Tx.Characters_Balloon_Breaking[this.iCurrentCharacter[i]][CharaAction_Balloon_Breaking[i].n現在の値].vc拡大縮小倍率.X = charaScale;
TJAPlayer3.Tx.Characters_Balloon_Breaking[this.iCurrentCharacter[i]][CharaAction_Balloon_Breaking[i].n現在の値].vc拡大縮小倍率.Y = charaScale;
TJAPlayer3.Tx.Characters_Balloon_Breaking[this.iCurrentCharacter[i]][CharaAction_Balloon_Breaking[i].n現在の値].t2D描画(TJAPlayer3.app.Device,
TJAPlayer3.Tx.Characters_Balloon_Breaking[this.iCurrentCharacter[i]][nNowCharaFrame[i]].vc拡大縮小倍率.X = charaScale;
TJAPlayer3.Tx.Characters_Balloon_Breaking[this.iCurrentCharacter[i]][nNowCharaFrame[i]].vc拡大縮小倍率.Y = charaScale;
TJAPlayer3.Tx.Characters_Balloon_Breaking[this.iCurrentCharacter[i]][nNowCharaFrame[i]].t2D描画(TJAPlayer3.app.Device,
(TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) +
chara_x,
chara_y);
@ -548,30 +548,53 @@ namespace TJAPlayer3
}
}
public void (int player)
private void ReturnDefaultAnime(int player, bool resetCounter)
{
ctキャラクターアクション_10コンボ[player].t停止();
ctキャラクターアクション_10コンボMAX[player].t停止();
ctキャラクターアクション_ゴーゴースタート[player].t停止();
ctキャラクターアクション_ゴーゴースタートMAX[player].t停止();
ctキャラクターアクション_ルマ[player].t停止();
ctキャラクターアクション_魂MAX[player].t停止();
ctキャラクターアクション_Return[player].t停止();
ctキャラクターアクション_10コンボ[player].n現在の値 = 0;
ctキャラクターアクション_10コンボMAX[player].n現在の値 = 0;
ctキャラクターアクション_ゴーゴースタート[player].n現在の値 = 0;
ctキャラクターアクション_ゴーゴースタートMAX[player].n現在の値 = 0;
ctキャラクターアクション_ルマ[player].n現在の値 = 0;
ctキャラクターアクション_魂MAX[player].n現在の値 = 0;
ctキャラクターアクション_Return[player].n現在の値 = 0;
CharaAction_Balloon_Breaking[player]?.t停止();
CharaAction_Balloon_Broke[player]?.t停止();
CharaAction_Balloon_Miss[player]?.t停止();
//CharaAction_Balloon_Delay?.t停止();
CharaAction_Balloon_Breaking[player].n現在の値 = 0;
CharaAction_Balloon_Broke[player].n現在の値 = 0;
CharaAction_Balloon_Miss[player].n現在の値 = 0;
//CharaAction_Balloon_Delay.n現在の値 = 0;
if (TJAPlayer3.stage演奏ドラム画面.bIsGOGOTIME[player] && TJAPlayer3.Skin.Characters_GoGoTime_Ptn[this.iCurrentCharacter[player]] != 0)
{
if (TJAPlayer3.stage演奏ドラム画面.bIsAlreadyMaxed[player] && TJAPlayer3.Skin.Characters_GoGoTime_Maxed_Ptn[this.iCurrentCharacter[player]] != 0)
{
ChangeAnime(player, Anime.GoGoTime_Maxed, resetCounter);
}
else
{
ChangeAnime(player, Anime.GoGoTime, resetCounter);
}
}
else
{
if (TJAPlayer3.stage演奏ドラム画面.bIsMiss[player] && TJAPlayer3.Skin.Characters_Normal_Missed_Ptn[this.iCurrentCharacter[player]] != 0)
{
if (TJAPlayer3.stage演奏ドラム画面.Chara_MissCount[player] >= 6 && TJAPlayer3.Skin.Characters_Normal_MissedDown_Ptn[this.iCurrentCharacter[player]] != 0)
{
ChangeAnime(player, Anime.MissDown, resetCounter);
}
else
{
ChangeAnime(player, Anime.Miss, resetCounter);
}
}
else
{
if (TJAPlayer3.stage演奏ドラム画面.bIsAlreadyMaxed[player] && TJAPlayer3.Skin.Characters_Normal_Maxed_Ptn[this.iCurrentCharacter[player]] != 0)
{
ChangeAnime(player, Anime.Maxed, resetCounter);
}
else if (TJAPlayer3.stage演奏ドラム画面.bIsAlreadyCleared[player] && TJAPlayer3.Skin.Characters_Normal_Cleared_Ptn[this.iCurrentCharacter[player]] != 0)
{
ChangeAnime(player, Anime.Cleared, resetCounter);
}
else if (TJAPlayer3.Skin.Characters_Normal_Ptn[this.iCurrentCharacter[player]] != 0)
{
ChangeAnime(player, Anime.Normal, resetCounter);
}
else
{
ChangeAnime(player, Anime.None, resetCounter);
}
}
}
}
public int[][] arモーション番号 = new int[5][];
@ -580,29 +603,121 @@ namespace TJAPlayer3
public int[][] arゴーゴーモーション番号 = new int[5][];
public int[][] arクリアモーション番号 = new int[5][];
public CCounter[] ctキャラクターアクション_10コンボ = new CCounter[5];
public CCounter[] ctキャラクターアクション_10コンボMAX = new CCounter[5];
public CCounter[] ctキャラクターアクション_ゴーゴースタート = new CCounter[5];
public CCounter[] ctキャラクターアクション_ゴーゴースタートMAX = new CCounter[5];
public CCounter[] ctキャラクターアクション_ルマ = new CCounter[5];
public CCounter[] ctキャラクターアクション_魂MAX = new CCounter[5];
public CCounter[] ctキャラクターアクション_Return = new CCounter[5];
public CCounter[] CharaAction_Balloon_Breaking = new CCounter[5];
public CCounter[] CharaAction_Balloon_Broke = new CCounter[5];
public CCounter[] CharaAction_Balloon_Miss = new CCounter[5];
public CCounter[] CharaAction_Balloon_Delay = new CCounter[5];
private float[] nNowCharaCounter = new float[5];
private int[] nNowCharaFrame = new int[5];
private int[] nCharaFrameCount = new int[5];
private float[] nCharaBeat = new float[5];
public CCounter[] ctChara_Normal = new CCounter[5];
public CCounter[] ctChara_Miss = new CCounter[5];
public CCounter[] ctChara_MissDown = new CCounter[5];
public CCounter[] ctChara_GoGo = new CCounter[5];
public CCounter[] ctChara_Clear = new CCounter[5];
public enum Anime
{
None,
Normal,
Miss,
MissDown,
Cleared,
Maxed,
GoGoTime,
GoGoTime_Maxed,
Combo10,
Combo10_Max,
GoGoStart,
GoGoStart_Max,
Become_Cleared,
Become_Maxed,
Return,
Balloon_Breaking,
Balloon_Broke,
Balloon_Miss
}
public Anime[] eNowAnime = new Anime[5];
public void ChangeAnime(int player, Anime anime, bool resetCounter)
{
eNowAnime[player] = anime;
if (resetCounter)
{
nNowCharaCounter[player] = 0;
nNowCharaFrame[player] = 0;
}
switch (anime)
{
case Anime.None:
break;
case Anime.Normal:
nCharaFrameCount[player] = this.arモーション番号[player].Length - 1;
nCharaBeat[player] = TJAPlayer3.Skin.Characters_Beat_Normal[iCurrentCharacter[player]];
break;
case Anime.Miss:
nCharaFrameCount[player] = this.arMissモーション番号[player].Length - 1;
nCharaBeat[player] = TJAPlayer3.Skin.Characters_Beat_Miss[iCurrentCharacter[player]];
break;
case Anime.MissDown:
nCharaFrameCount[player] = this.arMissDownモーション番号[player].Length - 1;
nCharaBeat[player] = TJAPlayer3.Skin.Characters_Beat_MissDown[iCurrentCharacter[player]];
break;
case Anime.Cleared:
case Anime.Maxed:
nCharaFrameCount[player] = this.arクリアモーション番号[player].Length - 1;
nCharaBeat[player] = TJAPlayer3.Skin.Characters_Beat_Clear[iCurrentCharacter[player]];
break;
case Anime.GoGoTime:
case Anime.GoGoTime_Maxed:
nCharaFrameCount[player] = this.arゴーゴーモーション番号[player].Length - 1;
nCharaBeat[player] = TJAPlayer3.Skin.Characters_Beat_GoGo[iCurrentCharacter[player]];
break;
case Anime.Combo10:
nCharaFrameCount[player] = TJAPlayer3.Skin.Characters_10Combo_Ptn[iCurrentCharacter[player]] - 1;
nCharaBeat[player] = 1.5f;
break;
case Anime.Combo10_Max:
nCharaFrameCount[player] = TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[iCurrentCharacter[player]] - 1;
nCharaBeat[player] = 1.5f;
break;
case Anime.GoGoStart:
nCharaFrameCount[player] = TJAPlayer3.Skin.Characters_GoGoStart_Ptn[iCurrentCharacter[player]] - 1;
nCharaBeat[player] = 1.5f;
break;
case Anime.GoGoStart_Max:
nCharaFrameCount[player] = TJAPlayer3.Skin.Characters_GoGoStart_Maxed_Ptn[iCurrentCharacter[player]] - 1;
nCharaBeat[player] = 1.5f;
break;
case Anime.Become_Cleared:
nCharaFrameCount[player] = TJAPlayer3.Skin.Characters_Become_Cleared_Ptn[iCurrentCharacter[player]] - 1;
nCharaBeat[player] = 1.5f;
break;
case Anime.Become_Maxed:
nCharaFrameCount[player] = TJAPlayer3.Skin.Characters_Become_Maxed_Ptn[iCurrentCharacter[player]] - 1;
nCharaBeat[player] = 1.5f;
break;
case Anime.Return:
nCharaFrameCount[player] = TJAPlayer3.Skin.Characters_Return_Ptn[iCurrentCharacter[player]] - 1;
nCharaBeat[player] = 1.5f;
break;
case Anime.Balloon_Breaking:
nCharaFrameCount[player] = TJAPlayer3.Skin.Characters_Balloon_Breaking_Ptn[iCurrentCharacter[player]] - 1;
nCharaBeat[player] = TJAPlayer3.Skin.Characters_Balloon_Timer[iCurrentCharacter[player]] * (float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[player] / 2880.0f;
break;
case Anime.Balloon_Broke:
nCharaFrameCount[player] = TJAPlayer3.Skin.Characters_Balloon_Broke_Ptn[iCurrentCharacter[player]] - 1;
nCharaBeat[player] = TJAPlayer3.Skin.Characters_Balloon_Timer[iCurrentCharacter[player]] * (float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[player] / 2880.0f;
break;
case Anime.Balloon_Miss:
nCharaFrameCount[player] = TJAPlayer3.Skin.Characters_Balloon_Miss_Ptn[iCurrentCharacter[player]] - 1;
nCharaBeat[player] = TJAPlayer3.Skin.Characters_Balloon_Timer[iCurrentCharacter[player]] * (float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[player] / 2880.0f;
break;
}
}
public CCounter[] CharaAction_Balloon_Delay = new CCounter[5];
public Animations.FadeOut[] CharaAction_Balloon_FadeOut = new Animations.FadeOut[5];
//private readonly int[] CharaAction_Balloon_FadeOut_StartMs = new int[5];
private readonly int[][] CharaAction_Balloon_FadeOut_StartMs = new int[5][];
public bool[] bマイどんアクション中 = new bool[5];
//public bool[] bマイどんアクション中 = new bool[5];
public bool[] b風船連打中 = new bool[5];
public bool[] b演奏中 = new bool[5];

View File

@ -289,7 +289,7 @@ namespace TJAPlayer3
this.ctSlideAnimation = new CCounter();
this.ctClimbAnimation = new CCounter();
this.ctDonAnimation = new CCounter(0, 1000, 24000f / ((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * TJAPlayer3.ConfigIni.n演奏速度 / 20), TJAPlayer3.Timer);
this.ctDonAnimation = new CCounter(0, 1000, 24000f / ((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] * TJAPlayer3.ConfigIni.n演奏速度 / 20), TJAPlayer3.Timer);
base.OnManagedリソースの作成();
}
@ -731,7 +731,7 @@ namespace TJAPlayer3
float nextPositionMax140 = Math.Min((TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] + 1) / (float)nightTime, 1f);
if (bFloorChanged == true)
ctSlideAnimation.t開始(0, 1000, 120f / ((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * TJAPlayer3.ConfigIni.n演奏速度 / 20), TJAPlayer3.Timer);
ctSlideAnimation.t開始(0, 1000, 120f / ((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] * TJAPlayer3.ConfigIni.n演奏速度 / 20), TJAPlayer3.Timer);
float progressFactor = (nextPositionMax140 - currentFloorPositionMax140) * (ctSlideAnimation.n現在の値 / 1000f);
@ -816,8 +816,8 @@ namespace TJAPlayer3
if (bFloorChanged == true)
{
ctClimbAnimation.t開始(0, 1500, 120f / ((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * TJAPlayer3.ConfigIni.n演奏速度 / 20), TJAPlayer3.Timer);
ctDonAnimation.t開始(0, 1000, 24000f / ((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * TJAPlayer3.ConfigIni.n演奏速度 / 20), TJAPlayer3.Timer);
ctClimbAnimation.t開始(0, 1500, 120f / ((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] * TJAPlayer3.ConfigIni.n演奏速度 / 20), TJAPlayer3.Timer);
ctDonAnimation.t開始(0, 1000, 24000f / ((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] * TJAPlayer3.ConfigIni.n演奏速度 / 20), TJAPlayer3.Timer);
}

View File

@ -229,77 +229,16 @@ namespace TJAPlayer3
// MODIFY_END #25398
dtLastQueueOperation = DateTime.MinValue;
PuchiChara.ChangeBPM(60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM);
PuchiChara.ChangeBPM(60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0]);
//dbUnit = Math.Ceiling( dbUnit * 1000.0 );
//dbUnit = dbUnit / 1000.0;
for(int nPlayer = 0; nPlayer < 5; nPlayer++)
{
int p = TJAPlayer3.GetActualPlayer(nPlayer);
int chara = Math.Max(0, Math.Min(TJAPlayer3.SaveFileInstances[p].data.Character, TJAPlayer3.Skin.Characters_Ptn - 1));
if (TJAPlayer3.Skin.Characters_Normal_Ptn[chara] != 0)
{
double dbPtn_Normal = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Characters_Beat_Normal[chara] / this.actChara.arモーション番号[nPlayer].Length;
this.actChara.ctChara_Normal[nPlayer] = new CCounter(0, this.actChara.arモーション番号[nPlayer].Length - 1, dbPtn_Normal, CSound管理.rc演奏用タイマ);
}
else
{
this.actChara.ctChara_Normal[nPlayer] = new CCounter();
}
if (TJAPlayer3.Skin.Characters_Normal_Missed_Ptn[chara] != 0)
{
double dbPtn_Miss = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Characters_Beat_Miss[chara] / this.actChara.arMissモーション番号[nPlayer].Length;
this.actChara.ctChara_Miss[nPlayer] = new CCounter(0, this.actChara.arMissモーション番号[nPlayer].Length - 1, dbPtn_Miss, CSound管理.rc演奏用タイマ);
}
else
{
this.actChara.ctChara_Miss[nPlayer] = new CCounter();
}
if (TJAPlayer3.Skin.Characters_Normal_MissedDown_Ptn[chara] != 0)
{
double dbPtn_MissDown = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Characters_Beat_MissDown[chara] / this.actChara.arMissDownモーション番号[nPlayer].Length;
this.actChara.ctChara_MissDown[nPlayer] = new CCounter(0, this.actChara.arMissDownモーション番号[nPlayer].Length - 1, dbPtn_MissDown, CSound管理.rc演奏用タイマ);
}
else
{
this.actChara.ctChara_MissDown[nPlayer] = new CCounter();
}
if (TJAPlayer3.Skin.Characters_Normal_Cleared_Ptn[chara] != 0)
{
double dbPtn_Clear = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Characters_Beat_Clear[chara] / this.actChara.arクリアモーション番号[nPlayer].Length;
this.actChara.ctChara_Clear[nPlayer] = new CCounter(0, this.actChara.arクリアモーション番号[nPlayer].Length - 1, dbPtn_Clear, CSound管理.rc演奏用タイマ);
}
else
{
this.actChara.ctChara_Clear[nPlayer] = new CCounter();
}
if (TJAPlayer3.Skin.Characters_GoGoTime_Ptn[chara] != 0)
{
double dbPtn_GoGo = (60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM) * TJAPlayer3.Skin.Characters_Beat_GoGo[chara] / this.actChara.arゴーゴーモーション番号[nPlayer].Length;
this.actChara.ctChara_GoGo[nPlayer] = new CCounter(0, this.actChara.arゴーゴーモーション番号[nPlayer].Length - 1, dbPtn_GoGo, CSound管理.rc演奏用タイマ);
}
else
{
this.actChara.ctChara_GoGo[nPlayer] = new CCounter();
}
}
//if (this.actChara.ctキャラクターアクションタイマ != null) this.actChara.ctキャラクターアクションタイマ = new CCounter();
//this.actDancer.ct通常モーション = new CCounter( 0, this.actDancer.arモーション番号_通常.Length - 1, ( dbUnit * 4.0) / this.actDancer.arモーション番号_通常.Length, CSound管理.rc演奏用タイマ );
//this.actDancer.ctモブ = new CCounter( 1.0, 16.0, ((60.0 / CDTXMania.stage演奏ドラム画面.actPlayInfo.dbBPM / 16.0 )), CSound管理.rc演奏用タイマ );
if(this.actDancer.ct踊り子モーション != null)
{
double dbUnit_dancer = (((60 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM))) / this.actDancer.ar踊り子モーション番号.Length);
this.actDancer.ct踊り子モーション = new CCounter(0, this.actDancer.ar踊り子モーション番号.Length - 1, dbUnit_dancer * TJAPlayer3.Skin.Game_Dancer_Beat, CSound管理.rc演奏用タイマ);
}else
{
this.actDancer.ct踊り子モーション = new CCounter();
}
this.ct手つなぎ = new CCounter( 0, 60, 20, TJAPlayer3.Timer );
this.ShownLyric2 = 0;
@ -658,14 +597,8 @@ namespace TJAPlayer3
{
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 100)
{
double dbUnit = (((60.0 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM))));
this.actChara.(i);
this.actChara.ctキャラクターアクション_10コンボMAX[i] = new CCounter(0,
TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character] - 1,
(dbUnit / TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character]) * 2, CSound管理.rc演奏用タイマ);
this.actChara.ctキャラクターアクション_10コンボMAX[i].t進行db();
this.actChara.ctキャラクターアクション_10コンボMAX[i].n現在の値 = 0;
this.actChara.bマイどんアクション中[i] = true;
double dbUnit = (((60.0 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[i]))));
this.actChara.ChangeAnime(i, CAct演奏Drumsキャラクター.Anime.Combo10_Max, true);
}
}
}