Few more cleaning and translate some classes names to english
This commit is contained in:
parent
abaa830ac1
commit
60a221e3b0
@ -318,9 +318,6 @@ namespace TJAPlayer3
|
||||
|
||||
// メソッド
|
||||
|
||||
protected virtual void tコンボ表示_ドラム(int nCombo値, int nジャンプインデックス)
|
||||
{
|
||||
}
|
||||
|
||||
private void showComboEffect(int cat, int i, int rightX, int y, int nPlayer)
|
||||
{
|
||||
@ -601,25 +598,6 @@ namespace TJAPlayer3
|
||||
#endregion
|
||||
}
|
||||
|
||||
protected virtual void tコンボ表示_ギター(int nCombo値, int nジャンプインデックス)
|
||||
{
|
||||
}
|
||||
protected virtual void tコンボ表示_ベース(int nCombo値, int nジャンプインデックス)
|
||||
{
|
||||
}
|
||||
protected void tコンボ表示_ギター(int nCombo値, int n表示中央X, int n表示中央Y, int nジャンプインデックス)
|
||||
{
|
||||
|
||||
}
|
||||
protected void tコンボ表示_ベース(int nCombo値, int n表示中央X, int n表示中央Y, int nジャンプインデックス)
|
||||
{
|
||||
|
||||
}
|
||||
protected void tコンボ表示_ギターベース(int nCombo値, int n表示中央X, int n表示中央Y, int nジャンプインデックス)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
// CActivity 実装
|
||||
|
||||
public override void Activate()
|
||||
|
@ -1,63 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal abstract class CAct演奏Danger共通 : CActivity
|
||||
{
|
||||
// コンストラクタ
|
||||
|
||||
public CAct演奏Danger共通()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
||||
|
||||
|
||||
// CActivity 実装
|
||||
|
||||
public override void Activate()
|
||||
{
|
||||
for ( int i = 0; i < 3; i++ )
|
||||
{
|
||||
this.bDanger中[i] = false;
|
||||
}
|
||||
// this.ct移動用 = new CCounter();
|
||||
// this.ct透明度用 = new CCounter();
|
||||
this.ct移動用 = null;
|
||||
this.ct透明度用 = null;
|
||||
|
||||
base.Activate();
|
||||
}
|
||||
public override void DeActivate()
|
||||
{
|
||||
this.ct移動用 = null;
|
||||
this.ct透明度用 = null;
|
||||
base.DeActivate();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// DANGER描画
|
||||
/// </summary>
|
||||
/// <param name="bIsDangerDrums">DrumsがDangerならtrue</param>
|
||||
/// <param name="bIsDamgerGuitar">GuitarがDangerならtrue</param>
|
||||
/// <param name="bIsDangerBass">BassがDangerならtrue</param>
|
||||
/// <returns></returns>
|
||||
public abstract int t進行描画( bool bIsDangerDrums, bool bIsDamgerGuitar, bool bIsDangerBass );
|
||||
|
||||
|
||||
|
||||
// その他
|
||||
|
||||
#region [ private ]
|
||||
//-----------------
|
||||
protected bool[] bDanger中 = { false, false, false};
|
||||
protected CCounter ct移動用;
|
||||
protected CCounter ct透明度用;
|
||||
//-----------------
|
||||
#endregion
|
||||
|
||||
}
|
||||
}
|
@ -1,134 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Drawing;
|
||||
using System.Diagnostics;
|
||||
using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏ステータスパネル共通 : CActivity
|
||||
{
|
||||
// コンストラクタ
|
||||
public CAct演奏ステータスパネル共通()
|
||||
{
|
||||
this.stパネルマップ = new STATUSPANEL[ 12 ]; // yyagi: 以下、手抜きの初期化でスマン
|
||||
// { "DTXMANIA", 0 }, { "EXTREME", 1 }, ... みたいに書きたいが___
|
||||
string[] labels = new string[ 12 ] {
|
||||
"DTXMANIA", "EXTREME", "ADVANCED", "ADVANCE", "BASIC", "RAW",
|
||||
"REAL", "EASY", "EX-REAL", "ExREAL", "ExpertReal", "NORMAL"
|
||||
};
|
||||
int[] status = new int[ 12 ] {
|
||||
0, 1, 2, 2, 3, 4, 5, 6, 7, 7, 7, 8
|
||||
};
|
||||
|
||||
for ( int i = 0; i < 12; i++ )
|
||||
{
|
||||
this.stパネルマップ[ i ] = new STATUSPANEL();
|
||||
this.stパネルマップ[ i ].status = status[ i ];
|
||||
this.stパネルマップ[ i ].label = labels[ i ];
|
||||
}
|
||||
|
||||
#region [ 旧初期化処理(注釈化) ]
|
||||
//STATUSPANEL[] statuspanelArray = new STATUSPANEL[ 12 ];
|
||||
//STATUSPANEL statuspanel = new STATUSPANEL();
|
||||
//statuspanel.status = 0;
|
||||
//statuspanel.label = "DTXMANIA";
|
||||
//statuspanelArray[ 0 ] = statuspanel;
|
||||
//STATUSPANEL statuspanel2 = new STATUSPANEL();
|
||||
//statuspanel2.status = 1;
|
||||
//statuspanel2.label = "EXTREME";
|
||||
//statuspanelArray[ 1 ] = statuspanel2;
|
||||
//STATUSPANEL statuspanel3 = new STATUSPANEL();
|
||||
//statuspanel3.status = 2;
|
||||
//statuspanel3.label = "ADVANCED";
|
||||
//statuspanelArray[ 2 ] = statuspanel3;
|
||||
//STATUSPANEL statuspanel4 = new STATUSPANEL();
|
||||
//statuspanel4.status = 2;
|
||||
//statuspanel4.label = "ADVANCE";
|
||||
//statuspanelArray[ 3 ] = statuspanel4;
|
||||
//STATUSPANEL statuspanel5 = new STATUSPANEL();
|
||||
//statuspanel5.status = 3;
|
||||
//statuspanel5.label = "BASIC";
|
||||
//statuspanelArray[ 4 ] = statuspanel5;
|
||||
//STATUSPANEL statuspanel6 = new STATUSPANEL();
|
||||
//statuspanel6.status = 4;
|
||||
//statuspanel6.label = "RAW";
|
||||
//statuspanelArray[ 5 ] = statuspanel6;
|
||||
//STATUSPANEL statuspanel7 = new STATUSPANEL();
|
||||
//statuspanel7.status = 5;
|
||||
//statuspanel7.label = "REAL";
|
||||
//statuspanelArray[ 6 ] = statuspanel7;
|
||||
//STATUSPANEL statuspanel8 = new STATUSPANEL();
|
||||
//statuspanel8.status = 6;
|
||||
//statuspanel8.label = "EASY";
|
||||
//statuspanelArray[ 7 ] = statuspanel8;
|
||||
//STATUSPANEL statuspanel9 = new STATUSPANEL();
|
||||
//statuspanel9.status = 7;
|
||||
//statuspanel9.label = "EX-REAL";
|
||||
//statuspanelArray[ 8 ] = statuspanel9;
|
||||
//STATUSPANEL statuspanel10 = new STATUSPANEL();
|
||||
//statuspanel10.status = 7;
|
||||
//statuspanel10.label = "ExREAL";
|
||||
//statuspanelArray[ 9 ] = statuspanel10;
|
||||
//STATUSPANEL statuspanel11 = new STATUSPANEL();
|
||||
//statuspanel11.status = 7;
|
||||
//statuspanel11.label = "ExpertReal";
|
||||
//statuspanelArray[ 10 ] = statuspanel11;
|
||||
//STATUSPANEL statuspanel12 = new STATUSPANEL();
|
||||
//statuspanel12.status = 8;
|
||||
//statuspanel12.label = "NORMAL";
|
||||
//statuspanelArray[ 11 ] = statuspanel12;
|
||||
//this.stパネルマップ = statuspanelArray;
|
||||
#endregion
|
||||
base.IsDeActivated = true;
|
||||
}
|
||||
|
||||
|
||||
// メソッド
|
||||
|
||||
public void tラベル名からステータスパネルを決定する( string strラベル名 )
|
||||
{
|
||||
if ( string.IsNullOrEmpty( strラベル名 ) )
|
||||
{
|
||||
this.nStatus = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach ( STATUSPANEL statuspanel in this.stパネルマップ )
|
||||
{
|
||||
if ( strラベル名.Equals( statuspanel.label, StringComparison.CurrentCultureIgnoreCase ) ) // #24482 2011.2.17 yyagi ignore case
|
||||
{
|
||||
this.nStatus = statuspanel.status;
|
||||
return;
|
||||
}
|
||||
}
|
||||
this.nStatus = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// CActivity 実装
|
||||
|
||||
public override void Activate()
|
||||
{
|
||||
this.nStatus = 0;
|
||||
base.Activate();
|
||||
}
|
||||
|
||||
|
||||
#region [ protected ]
|
||||
//-----------------
|
||||
[StructLayout( LayoutKind.Sequential )]
|
||||
protected struct STATUSPANEL
|
||||
{
|
||||
public string label;
|
||||
public int status;
|
||||
}
|
||||
|
||||
protected int nStatus;
|
||||
protected STATUSPANEL[] stパネルマップ = null;
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -356,7 +356,6 @@ namespace TJAPlayer3
|
||||
|
||||
cInvisibleChip.Reset();
|
||||
base.Activate();
|
||||
this.tステータスパネルの選択();
|
||||
this.tパネル文字列の設定();
|
||||
//this.演奏判定ライン座標();
|
||||
this.bIsGOGOTIME = new bool[] { false, false, false, false, false };
|
||||
@ -774,36 +773,34 @@ namespace TJAPlayer3
|
||||
public CAct演奏AVI actAVI;
|
||||
public Rainbow Rainbow;
|
||||
public CAct演奏Combo共通 actCombo;
|
||||
protected CAct演奏Danger共通 actDANGER;
|
||||
//protected CActFIFOBlack actFI;
|
||||
public CActFIFOStart actFI;
|
||||
protected CActFIFOBlack actFO;
|
||||
protected CActFIFOResult actFOClear;
|
||||
public CAct演奏ゲージ共通 actGauge;
|
||||
|
||||
public CAct演奏DrumsDancer actDancer;
|
||||
protected CAct演奏Drums判定文字列 actJudgeString;
|
||||
public CActImplDancer actDancer;
|
||||
protected CActImplJudgeText actJudgeString;
|
||||
public TaikoLaneFlash actTaikoLaneFlash;
|
||||
public CAct演奏パネル文字列 actPanel;
|
||||
public CAct演奏演奏情報 actPlayInfo;
|
||||
public CAct演奏スコア共通 actScore;
|
||||
public CAct演奏ステージ失敗 actStageFailed;
|
||||
protected CAct演奏ステータスパネル共通 actStatusPanels;
|
||||
protected CAct演奏スクロール速度 act譜面スクロール速度;
|
||||
protected CAct演奏Drums連打 actRoll;
|
||||
protected CAct演奏Drums風船 actBalloon;
|
||||
public CAct演奏Drumsキャラクター actChara;
|
||||
protected CAct演奏Drums連打キャラ actRollChara;
|
||||
protected CAct演奏Drumsコンボ吹き出し actComboBalloon;
|
||||
protected CActImplRoll actRoll;
|
||||
protected CActImplBalloon actBalloon;
|
||||
public CActImplCharacter actChara;
|
||||
protected CActImplRollEffect actRollChara;
|
||||
protected CActImplComboBalloon actComboBalloon;
|
||||
protected CAct演奏Combo音声 actComboVoice;
|
||||
protected CAct演奏PauseMenu actPauseMenu;
|
||||
public CAct演奏Drumsチップエフェクト actChipEffects;
|
||||
public CAct演奏DrumsFooter actFooter;
|
||||
public CAct演奏DrumsRunner actRunner;
|
||||
public CAct演奏DrumsMob actMob;
|
||||
public CActImplChipEffects actChipEffects;
|
||||
public CActImplFooter actFooter;
|
||||
public CActImplRunner actRunner;
|
||||
public CActImplMob actMob;
|
||||
public Dan_Cert actDan;
|
||||
public AIBattle actAIBattle;
|
||||
public CAct演奏DrumsTrainingMode actTokkun;
|
||||
public CActImplTrainingMode actTokkun;
|
||||
public bool bPAUSE;
|
||||
public bool[] bIsAlreadyCleared;
|
||||
public bool[] bIsAlreadyMaxed;
|
||||
@ -1328,18 +1325,6 @@ namespace TJAPlayer3
|
||||
this.nHand[ nPlayer ] = 0;
|
||||
}
|
||||
|
||||
protected void tステータスパネルの選択()
|
||||
{
|
||||
if ( TJAPlayer3.bコンパクトモード )
|
||||
{
|
||||
this.actStatusPanels.tラベル名からステータスパネルを決定する( null );
|
||||
}
|
||||
else if ( TJAPlayer3.stageSongSelect.rChoosenSong != null )
|
||||
{
|
||||
this.actStatusPanels.tラベル名からステータスパネルを決定する( TJAPlayer3.stageSongSelect.rChoosenSong.ar難易度ラベル[ TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0]] );
|
||||
}
|
||||
}
|
||||
|
||||
protected bool tRollProcess( CDTX.CChip pChip, double dbProcess_time, int num, int sort, int Input, int nPlayer )
|
||||
{
|
||||
if (dbProcess_time >= pChip.n発声時刻ms && dbProcess_time < pChip.nノーツ終了時刻ms)
|
||||
@ -1513,7 +1498,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
if (nCurrentKusudamaCount > 0)
|
||||
{
|
||||
actChara.ChangeAnime(player, CAct演奏Drumsキャラクター.Anime.Kusudama_Breaking, true);
|
||||
actChara.ChangeAnime(player, CActImplCharacter.Anime.Kusudama_Breaking, true);
|
||||
for(int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
||||
{
|
||||
this.b連打中[i] = true;
|
||||
@ -1534,7 +1519,7 @@ namespace TJAPlayer3
|
||||
else
|
||||
{
|
||||
this.b連打中[player] = true;
|
||||
actChara.ChangeAnime(player, CAct演奏Drumsキャラクター.Anime.Balloon_Breaking, true);
|
||||
actChara.ChangeAnime(player, CActImplCharacter.Anime.Balloon_Breaking, true);
|
||||
|
||||
|
||||
if (this.actBalloon.ct風船アニメ[player].IsUnEnded)
|
||||
@ -1629,7 +1614,7 @@ namespace TJAPlayer3
|
||||
actBalloon.KusuBroke();
|
||||
for(int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
||||
{
|
||||
actChara.ChangeAnime(i, CAct演奏Drumsキャラクター.Anime.Kusudama_Broke, true);
|
||||
actChara.ChangeAnime(i, CActImplCharacter.Anime.Kusudama_Broke, true);
|
||||
if (actChara.CharaAction_Balloon_Delay[i] != null) actChara.CharaAction_Balloon_Delay[i] = new CCounter(0, TJAPlayer3.Skin.Characters_Balloon_Delay[actChara.iCurrentCharacter[i]] - 1, 1, TJAPlayer3.Timer);
|
||||
}
|
||||
}
|
||||
@ -1648,7 +1633,7 @@ namespace TJAPlayer3
|
||||
//this.actChara.b風船連打中 = false;
|
||||
pChip.b可視 = false;
|
||||
{
|
||||
actChara.ChangeAnime(player, CAct演奏Drumsキャラクター.Anime.Balloon_Broke, true);
|
||||
actChara.ChangeAnime(player, CActImplCharacter.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);
|
||||
}
|
||||
}
|
||||
@ -1977,7 +1962,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
if(TJAPlayer3.Skin.Characters_Become_Maxed_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
|
||||
{
|
||||
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Become_Maxed, true);
|
||||
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.Become_Maxed, true);
|
||||
}
|
||||
this.bIsAlreadyMaxed[nPlayer] = true;
|
||||
}
|
||||
@ -1985,7 +1970,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
if(TJAPlayer3.Skin.Characters_Become_Cleared_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
|
||||
{
|
||||
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Become_Cleared, true);
|
||||
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.Become_Cleared, true);
|
||||
}
|
||||
this.bIsAlreadyCleared[nPlayer] = true;
|
||||
TJAPlayer3.stage演奏ドラム画面.actBackground.ClearIn(nPlayer);
|
||||
@ -2003,7 +1988,7 @@ namespace TJAPlayer3
|
||||
this.bIsAlreadyMaxed[nPlayer] = false;
|
||||
if(TJAPlayer3.Skin.Characters_SoulOut_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
|
||||
{
|
||||
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.SoulOut, true);
|
||||
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.SoulOut, true);
|
||||
}
|
||||
}
|
||||
else if (!bIsGOGOTIME[nPlayer])
|
||||
@ -2012,14 +1997,14 @@ namespace TJAPlayer3
|
||||
{
|
||||
if(TJAPlayer3.Skin.Characters_MissIn_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
|
||||
{
|
||||
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.MissIn, true);
|
||||
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.MissIn, true);
|
||||
}
|
||||
}
|
||||
else if (Chara_MissCount[nPlayer] == 6 - 1)
|
||||
{
|
||||
if(TJAPlayer3.Skin.Characters_MissDownIn_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
|
||||
{
|
||||
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.MissDownIn, true);
|
||||
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.MissDownIn, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2028,7 +2013,7 @@ namespace TJAPlayer3
|
||||
this.bIsAlreadyCleared[nPlayer] = false;
|
||||
if (TJAPlayer3.Skin.Characters_ClearOut_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
|
||||
{
|
||||
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.ClearOut, true);
|
||||
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.ClearOut, true);
|
||||
}
|
||||
TJAPlayer3.stage演奏ドラム画面.actBackground.ClearOut(nPlayer);
|
||||
|
||||
@ -2072,7 +2057,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
// 魂ゲージMAXではない
|
||||
// ジャンプ_ノーマル
|
||||
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Return, true);
|
||||
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.Return, true);
|
||||
//this.actChara.キャラクター_アクション_10コンボ();
|
||||
}
|
||||
}
|
||||
@ -2375,22 +2360,22 @@ namespace TJAPlayer3
|
||||
// Edit character values here
|
||||
if (!pChip.bGOGOTIME) //2018.03.11 kairera0467 チップに埋め込んだフラグから読み取る
|
||||
{
|
||||
if (TJAPlayer3.Skin.Characters_10Combo_Ptn[Character] != 0 && this.actChara.eNowAnime[nPlayer] != CAct演奏Drumsキャラクター.Anime.Combo10 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
|
||||
if (TJAPlayer3.Skin.Characters_10Combo_Ptn[Character] != 0 && this.actChara.eNowAnime[nPlayer] != CActImplCharacter.Anime.Combo10 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
|
||||
{
|
||||
if (!HGaugeMethods.UNSAFE_IsRainbow(nPlayer))
|
||||
{
|
||||
// 魂ゲージMAXではない
|
||||
// ジャンプ_ノーマル
|
||||
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Combo10, true);
|
||||
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.Combo10, true);
|
||||
}
|
||||
}
|
||||
if (TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character] != 0 && this.actChara.eNowAnime[nPlayer] != CAct演奏Drumsキャラクター.Anime.Combo10_Max && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
|
||||
if (TJAPlayer3.Skin.Characters_10Combo_Maxed_Ptn[Character] != 0 && this.actChara.eNowAnime[nPlayer] != CActImplCharacter.Anime.Combo10_Max && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
|
||||
{
|
||||
if (HGaugeMethods.UNSAFE_IsRainbow(nPlayer))
|
||||
{
|
||||
// 魂ゲージMAX
|
||||
// ジャンプ_MAX
|
||||
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Combo10_Max, true);
|
||||
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.Combo10_Max, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3342,8 +3327,6 @@ namespace TJAPlayer3
|
||||
this.actAVI.t進行描画( x, y );
|
||||
}
|
||||
}
|
||||
protected abstract void t進行描画_DANGER();
|
||||
|
||||
protected void t進行描画_STAGEFAILED()
|
||||
{
|
||||
// Transition for failed games
|
||||
@ -3684,7 +3667,7 @@ namespace TJAPlayer3
|
||||
for (int p = 0; p < TJAPlayer3.ConfigIni.nPlayerCount; p++)
|
||||
{
|
||||
{
|
||||
this.actChara.ChangeAnime(p, CAct演奏Drumsキャラクター.Anime.Kusudama_Miss, true);
|
||||
this.actChara.ChangeAnime(p, CActImplCharacter.Anime.Kusudama_Miss, true);
|
||||
|
||||
if (actChara.CharaAction_Balloon_Delay[p] != null) actChara.CharaAction_Balloon_Delay[p] = new CCounter(0,
|
||||
TJAPlayer3.Skin.Characters_Balloon_Delay[actChara.iCurrentCharacter[p]] - 1,
|
||||
@ -3704,7 +3687,7 @@ namespace TJAPlayer3
|
||||
&& chip現在処理中の連打チップ[nPlayer].nRollCount > 0)
|
||||
{
|
||||
{
|
||||
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.Balloon_Miss, true);
|
||||
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.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,
|
||||
@ -4047,7 +4030,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
// 魂ゲージMAXではない
|
||||
// ゴーゴースタート_ノーマル
|
||||
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.GoGoStart, true);
|
||||
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.GoGoStart, true);
|
||||
//this.actChara.キャラクター_アクション_10コンボ();
|
||||
}
|
||||
}
|
||||
@ -4055,7 +4038,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
if (!HGaugeMethods.UNSAFE_IsRainbow(nPlayer) && HGaugeMethods.UNSAFE_FastNormaCheck(nPlayer))
|
||||
{
|
||||
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.GoGoStart_Clear, true);
|
||||
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.GoGoStart_Clear, true);
|
||||
}
|
||||
}
|
||||
if (TJAPlayer3.Skin.Characters_GoGoStart_Maxed_Ptn[Character] != 0 && actChara.CharaAction_Balloon_Delay[nPlayer].IsEnded)
|
||||
@ -4064,7 +4047,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
// 魂ゲージMAX
|
||||
// ゴーゴースタート_MAX
|
||||
this.actChara.ChangeAnime(nPlayer, CAct演奏Drumsキャラクター.Anime.GoGoStart_Max, true);
|
||||
this.actChara.ChangeAnime(nPlayer, CActImplCharacter.Anime.GoGoStart_Max, true);
|
||||
}
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,350 +1,297 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.InteropServices;
|
||||
using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏Drums風船 : CActivity
|
||||
{
|
||||
|
||||
|
||||
public CAct演奏Drums風船()
|
||||
{
|
||||
ST文字位置[] st文字位置Array = new ST文字位置[11];
|
||||
|
||||
ST文字位置 st文字位置 = new ST文字位置();
|
||||
st文字位置.ch = '0';
|
||||
st文字位置.pt = new Point(0, 0);
|
||||
st文字位置Array[0] = st文字位置;
|
||||
ST文字位置 st文字位置2 = new ST文字位置();
|
||||
st文字位置2.ch = '1';
|
||||
st文字位置2.pt = new Point(62, 0);
|
||||
st文字位置Array[1] = st文字位置2;
|
||||
ST文字位置 st文字位置3 = new ST文字位置();
|
||||
st文字位置3.ch = '2';
|
||||
st文字位置3.pt = new Point(124, 0);
|
||||
st文字位置Array[2] = st文字位置3;
|
||||
ST文字位置 st文字位置4 = new ST文字位置();
|
||||
st文字位置4.ch = '3';
|
||||
st文字位置4.pt = new Point(186, 0);
|
||||
st文字位置Array[3] = st文字位置4;
|
||||
ST文字位置 st文字位置5 = new ST文字位置();
|
||||
st文字位置5.ch = '4';
|
||||
st文字位置5.pt = new Point(248, 0);
|
||||
st文字位置Array[4] = st文字位置5;
|
||||
ST文字位置 st文字位置6 = new ST文字位置();
|
||||
st文字位置6.ch = '5';
|
||||
st文字位置6.pt = new Point(310, 0);
|
||||
st文字位置Array[5] = st文字位置6;
|
||||
ST文字位置 st文字位置7 = new ST文字位置();
|
||||
st文字位置7.ch = '6';
|
||||
st文字位置7.pt = new Point(372, 0);
|
||||
st文字位置Array[6] = st文字位置7;
|
||||
ST文字位置 st文字位置8 = new ST文字位置();
|
||||
st文字位置8.ch = '7';
|
||||
st文字位置8.pt = new Point(434, 0);
|
||||
st文字位置Array[7] = st文字位置8;
|
||||
ST文字位置 st文字位置9 = new ST文字位置();
|
||||
st文字位置9.ch = '8';
|
||||
st文字位置9.pt = new Point(496, 0);
|
||||
st文字位置Array[8] = st文字位置9;
|
||||
ST文字位置 st文字位置10 = new ST文字位置();
|
||||
st文字位置10.ch = '9';
|
||||
st文字位置10.pt = new Point(558, 0);
|
||||
st文字位置Array[9] = st文字位置10;
|
||||
|
||||
this.st文字位置 = st文字位置Array;
|
||||
|
||||
base.IsDeActivated = true;
|
||||
|
||||
}
|
||||
|
||||
public override void Activate()
|
||||
{
|
||||
this.ct風船終了 = new CCounter();
|
||||
this.ct風船ふきだしアニメ = new CCounter();
|
||||
this.ct風船アニメ = new CCounter[5];
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
this.ct風船アニメ[i] = new CCounter();
|
||||
}
|
||||
|
||||
this.ct風船ふきだしアニメ = new CCounter(0, 1, 100, TJAPlayer3.Timer);
|
||||
|
||||
KusudamaScript = new (CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.BALLOON}{TextureLoader.KUSUDAMA}Script.lua"));
|
||||
KusudamaScript.Init();
|
||||
|
||||
base.Activate();
|
||||
}
|
||||
|
||||
public override void DeActivate()
|
||||
{
|
||||
KusudamaScript.Dispose();
|
||||
|
||||
this.ct風船終了 = null;
|
||||
this.ct風船ふきだしアニメ = null;
|
||||
|
||||
base.DeActivate();
|
||||
}
|
||||
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
|
||||
public override int Draw()
|
||||
{
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
public void KusuIn() => KusudamaScript.KusuIn();
|
||||
public void KusuBroke() => KusudamaScript.KusuBroke();
|
||||
public void KusuMiss() => KusudamaScript.KusuMiss();
|
||||
|
||||
public enum EBalloonType
|
||||
{
|
||||
BALLOON,
|
||||
KUSUDAMA,
|
||||
FUSEROLL
|
||||
}
|
||||
|
||||
public void tDrawKusudama()
|
||||
{
|
||||
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE)
|
||||
{
|
||||
KusudamaScript.Update();
|
||||
}
|
||||
KusudamaScript.Draw();
|
||||
}
|
||||
|
||||
public int On進行描画(int n連打ノルマ, int n連打数, int player, EBalloonType btype)
|
||||
{
|
||||
this.ct風船ふきだしアニメ.TickLoop();
|
||||
this.ct風船アニメ[player].Tick();
|
||||
|
||||
//CDTXMania.act文字コンソール.tPrint( 0, 16, C文字コンソール.Eフォント種別.赤, this.ct風船終了.n現在の値.ToString() );
|
||||
int[] n残り打数 = new int[] { 0, 0, 0, 0, 0 };
|
||||
#region[ ]
|
||||
if (n連打ノルマ > 0)
|
||||
{
|
||||
if (n連打ノルマ < 5)
|
||||
{
|
||||
n残り打数 = new int[] { 4, 3, 2, 1, 0 };
|
||||
}
|
||||
else
|
||||
{
|
||||
n残り打数[0] = (n連打ノルマ / 5) * 4;
|
||||
n残り打数[1] = (n連打ノルマ / 5) * 3;
|
||||
n残り打数[2] = (n連打ノルマ / 5) * 2;
|
||||
n残り打数[3] = (n連打ノルマ / 5) * 1;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
if (n連打数 != 0)
|
||||
{
|
||||
int x;
|
||||
int y;
|
||||
int frame_x;
|
||||
int frame_y;
|
||||
int num_x;
|
||||
int num_y;
|
||||
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
||||
{
|
||||
x = TJAPlayer3.Skin.Game_Balloon_Balloon_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
|
||||
y = TJAPlayer3.Skin.Game_Balloon_Balloon_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
|
||||
frame_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
|
||||
frame_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
|
||||
num_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
|
||||
num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
|
||||
}
|
||||
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
||||
{
|
||||
x = TJAPlayer3.Skin.Game_Balloon_Balloon_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
|
||||
y = TJAPlayer3.Skin.Game_Balloon_Balloon_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
|
||||
frame_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
|
||||
frame_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
|
||||
num_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
|
||||
num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
|
||||
}
|
||||
else
|
||||
{
|
||||
x = TJAPlayer3.Skin.Game_Balloon_Balloon_X[player];
|
||||
y = TJAPlayer3.Skin.Game_Balloon_Balloon_Y[player];
|
||||
frame_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_X[player];
|
||||
frame_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_Y[player];
|
||||
num_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_X[player];
|
||||
num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Y[player];
|
||||
}
|
||||
//1P:0 2P:245
|
||||
//if (CDTXMania.Tx.Chara_Balloon_Breaking != null && CDTXMania.ConfigIni.ShowChara)
|
||||
// CDTXMania.Tx.Chara_Balloon_Breaking.t2D描画(CDTXMania.app.Device, CDTXMania.Skin.Game_Chara_Balloon_X[player], CDTXMania.Skin.Game_Chara_Balloon_Y[player]);
|
||||
for (int j = 0; j < 5; j++)
|
||||
{
|
||||
|
||||
if (n残り打数[j] < n連打数 && btype == EBalloonType.BALLOON)
|
||||
{
|
||||
if (TJAPlayer3.Tx.Balloon_Breaking[j] != null)
|
||||
TJAPlayer3.Tx.Balloon_Breaking[j].t2D描画(x + (this.ct風船ふきだしアニメ.CurrentValue == 1 ? 3 : 0), y);
|
||||
break;
|
||||
}
|
||||
}
|
||||
//1P:31 2P:329
|
||||
|
||||
if (btype == EBalloonType.BALLOON)
|
||||
{
|
||||
if (TJAPlayer3.Tx.Balloon_Balloon != null)
|
||||
TJAPlayer3.Tx.Balloon_Balloon.t2D描画(frame_x, frame_y);
|
||||
this.t文字表示(num_x, num_y, n連打数, player);
|
||||
}
|
||||
else if (btype == EBalloonType.FUSEROLL)
|
||||
{
|
||||
if (TJAPlayer3.Tx.Fuse_Balloon != null)
|
||||
TJAPlayer3.Tx.Fuse_Balloon.t2D描画(frame_x, frame_y);
|
||||
this.tFuseNumber(num_x, num_y, n連打数, player);
|
||||
}
|
||||
else if (btype == EBalloonType.KUSUDAMA && player == 0)
|
||||
{
|
||||
/*
|
||||
if (TJAPlayer3.Tx.Kusudama_Back != null)
|
||||
TJAPlayer3.Tx.Kusudama_Back.t2D描画(0, 0);
|
||||
if (TJAPlayer3.Tx.Kusudama != null)
|
||||
TJAPlayer3.Tx.Kusudama.t2D描画(0, 0);
|
||||
*/
|
||||
this.tKusudamaNumber(n連打数);
|
||||
}
|
||||
|
||||
//CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, n連打数.ToString() );
|
||||
}
|
||||
if (btype == EBalloonType.KUSUDAMA)
|
||||
{
|
||||
/*
|
||||
for(int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
||||
{
|
||||
TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[i] = false;
|
||||
TJAPlayer3.stage演奏ドラム画面.b連打中[i] = false;
|
||||
}
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
if (n連打数 == 0 && TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[player])
|
||||
{
|
||||
TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[player] = false;
|
||||
TJAPlayer3.stage演奏ドラム画面.b連打中[player] = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
private KusudamaScript KusudamaScript;
|
||||
|
||||
//private CTexture tx連打枠;
|
||||
//private CTexture tx連打数字;
|
||||
private readonly ST文字位置[] st文字位置;
|
||||
|
||||
//private CTexture txキャラクター;
|
||||
//private CTexture txキャラクター_風船終了;
|
||||
|
||||
//private CTexture[] tx風船枠 = new CTexture[6];
|
||||
|
||||
private CCounter ct風船終了;
|
||||
private CCounter ct風船ふきだしアニメ;
|
||||
|
||||
public CCounter[] ct風船アニメ;
|
||||
private float[] RollScale = new float[]
|
||||
{
|
||||
0.000f,
|
||||
0.123f, // リピート
|
||||
0.164f,
|
||||
0.164f,
|
||||
0.164f,
|
||||
0.137f,
|
||||
0.110f,
|
||||
0.082f,
|
||||
0.055f,
|
||||
0.000f
|
||||
};
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private struct ST文字位置
|
||||
{
|
||||
public char ch;
|
||||
public Point pt;
|
||||
}
|
||||
|
||||
private void _nbDisplay(CTexture tx, int num, int x, int y)
|
||||
{
|
||||
int[] nums = CConversion.SeparateDigits(num);
|
||||
for (int j = 0; j < nums.Length; j++)
|
||||
{
|
||||
float offset = j - (nums.Length / 2.0f);
|
||||
float _x = x - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[0] * offset);
|
||||
float _y = y - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[1] * offset);
|
||||
|
||||
float width = tx.sz画像サイズ.Width / 10.0f;
|
||||
float height = tx.sz画像サイズ.Height;
|
||||
|
||||
tx.t2D拡大率考慮下基準描画(_x, _y, new RectangleF(width * nums[j], 0, width, height));
|
||||
}
|
||||
}
|
||||
|
||||
private void tKusudamaNumber(int num)
|
||||
{
|
||||
if (TJAPlayer3.Tx.Kusudama_Number == null) return;
|
||||
TJAPlayer3.Tx.Kusudama_Number.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
|
||||
TJAPlayer3.Tx.Kusudama_Number.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
|
||||
int x = TJAPlayer3.Skin.Game_Kusudama_Number_X;
|
||||
int y = TJAPlayer3.Skin.Game_Kusudama_Number_Y;
|
||||
|
||||
int[] nums = CConversion.SeparateDigits(num);
|
||||
for (int j = 0; j < nums.Length; j++)
|
||||
{
|
||||
float offset = j - ((nums.Length - 2) / 2.0f);
|
||||
float width = TJAPlayer3.Tx.Kusudama_Number.sz画像サイズ.Width / 10.0f;
|
||||
float height = TJAPlayer3.Tx.Kusudama_Number.sz画像サイズ.Height;
|
||||
float _x = x - (width * offset);
|
||||
float _y = y;
|
||||
|
||||
TJAPlayer3.Tx.Kusudama_Number.t2D拡大率考慮下基準描画(_x, _y, new RectangleF(width * nums[j], 0, width, height));
|
||||
}
|
||||
}
|
||||
|
||||
private void tFuseNumber(int x, int y, int num, int nPlayer)
|
||||
{
|
||||
if (TJAPlayer3.Tx.Fuse_Number == null) return;
|
||||
TJAPlayer3.Tx.Fuse_Number.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
|
||||
TJAPlayer3.Tx.Fuse_Number.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale + RollScale[this.ct風船アニメ[nPlayer].CurrentValue];
|
||||
|
||||
_nbDisplay(TJAPlayer3.Tx.Fuse_Number, num, x, y);
|
||||
}
|
||||
|
||||
private void t文字表示(int x, int y, int num, int nPlayer)
|
||||
{
|
||||
if (TJAPlayer3.Tx.Balloon_Number_Roll == null) return;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale + RollScale[this.ct風船アニメ[nPlayer].CurrentValue];
|
||||
|
||||
_nbDisplay(TJAPlayer3.Tx.Balloon_Number_Roll, num, x, y);
|
||||
}
|
||||
|
||||
public void tEnd()
|
||||
{
|
||||
this.ct風船終了 = new CCounter(0, 80, 10, SoundManager.PlayTimer);
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.InteropServices;
|
||||
using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CActImplBalloon : CActivity
|
||||
{
|
||||
|
||||
|
||||
public CActImplBalloon()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
|
||||
}
|
||||
|
||||
public override void Activate()
|
||||
{
|
||||
this.ct風船終了 = new CCounter();
|
||||
this.ct風船ふきだしアニメ = new CCounter();
|
||||
this.ct風船アニメ = new CCounter[5];
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
this.ct風船アニメ[i] = new CCounter();
|
||||
}
|
||||
|
||||
this.ct風船ふきだしアニメ = new CCounter(0, 1, 100, TJAPlayer3.Timer);
|
||||
|
||||
KusudamaScript = new (CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.BALLOON}{TextureLoader.KUSUDAMA}Script.lua"));
|
||||
KusudamaScript.Init();
|
||||
|
||||
base.Activate();
|
||||
}
|
||||
|
||||
public override void DeActivate()
|
||||
{
|
||||
KusudamaScript.Dispose();
|
||||
|
||||
this.ct風船終了 = null;
|
||||
this.ct風船ふきだしアニメ = null;
|
||||
|
||||
base.DeActivate();
|
||||
}
|
||||
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
|
||||
public override int Draw()
|
||||
{
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
public void KusuIn() => KusudamaScript.KusuIn();
|
||||
public void KusuBroke() => KusudamaScript.KusuBroke();
|
||||
public void KusuMiss() => KusudamaScript.KusuMiss();
|
||||
|
||||
public enum EBalloonType
|
||||
{
|
||||
BALLOON,
|
||||
KUSUDAMA,
|
||||
FUSEROLL
|
||||
}
|
||||
|
||||
public void tDrawKusudama()
|
||||
{
|
||||
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE)
|
||||
{
|
||||
KusudamaScript.Update();
|
||||
}
|
||||
KusudamaScript.Draw();
|
||||
}
|
||||
|
||||
public int On進行描画(int n連打ノルマ, int n連打数, int player, EBalloonType btype)
|
||||
{
|
||||
this.ct風船ふきだしアニメ.TickLoop();
|
||||
this.ct風船アニメ[player].Tick();
|
||||
|
||||
//CDTXMania.act文字コンソール.tPrint( 0, 16, C文字コンソール.Eフォント種別.赤, this.ct風船終了.n現在の値.ToString() );
|
||||
int[] n残り打数 = new int[] { 0, 0, 0, 0, 0 };
|
||||
#region[ ]
|
||||
if (n連打ノルマ > 0)
|
||||
{
|
||||
if (n連打ノルマ < 5)
|
||||
{
|
||||
n残り打数 = new int[] { 4, 3, 2, 1, 0 };
|
||||
}
|
||||
else
|
||||
{
|
||||
n残り打数[0] = (n連打ノルマ / 5) * 4;
|
||||
n残り打数[1] = (n連打ノルマ / 5) * 3;
|
||||
n残り打数[2] = (n連打ノルマ / 5) * 2;
|
||||
n残り打数[3] = (n連打ノルマ / 5) * 1;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
if (n連打数 != 0)
|
||||
{
|
||||
int x;
|
||||
int y;
|
||||
int frame_x;
|
||||
int frame_y;
|
||||
int num_x;
|
||||
int num_y;
|
||||
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
||||
{
|
||||
x = TJAPlayer3.Skin.Game_Balloon_Balloon_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
|
||||
y = TJAPlayer3.Skin.Game_Balloon_Balloon_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
|
||||
frame_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
|
||||
frame_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
|
||||
num_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
|
||||
num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
|
||||
}
|
||||
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
||||
{
|
||||
x = TJAPlayer3.Skin.Game_Balloon_Balloon_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
|
||||
y = TJAPlayer3.Skin.Game_Balloon_Balloon_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
|
||||
frame_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
|
||||
frame_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
|
||||
num_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
|
||||
num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
|
||||
}
|
||||
else
|
||||
{
|
||||
x = TJAPlayer3.Skin.Game_Balloon_Balloon_X[player];
|
||||
y = TJAPlayer3.Skin.Game_Balloon_Balloon_Y[player];
|
||||
frame_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_X[player];
|
||||
frame_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_Y[player];
|
||||
num_x = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_X[player];
|
||||
num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Y[player];
|
||||
}
|
||||
//1P:0 2P:245
|
||||
//if (CDTXMania.Tx.Chara_Balloon_Breaking != null && CDTXMania.ConfigIni.ShowChara)
|
||||
// CDTXMania.Tx.Chara_Balloon_Breaking.t2D描画(CDTXMania.app.Device, CDTXMania.Skin.Game_Chara_Balloon_X[player], CDTXMania.Skin.Game_Chara_Balloon_Y[player]);
|
||||
for (int j = 0; j < 5; j++)
|
||||
{
|
||||
|
||||
if (n残り打数[j] < n連打数 && btype == EBalloonType.BALLOON)
|
||||
{
|
||||
if (TJAPlayer3.Tx.Balloon_Breaking[j] != null)
|
||||
TJAPlayer3.Tx.Balloon_Breaking[j].t2D描画(x + (this.ct風船ふきだしアニメ.CurrentValue == 1 ? 3 : 0), y);
|
||||
break;
|
||||
}
|
||||
}
|
||||
//1P:31 2P:329
|
||||
|
||||
if (btype == EBalloonType.BALLOON)
|
||||
{
|
||||
if (TJAPlayer3.Tx.Balloon_Balloon != null)
|
||||
TJAPlayer3.Tx.Balloon_Balloon.t2D描画(frame_x, frame_y);
|
||||
this.t文字表示(num_x, num_y, n連打数, player);
|
||||
}
|
||||
else if (btype == EBalloonType.FUSEROLL)
|
||||
{
|
||||
if (TJAPlayer3.Tx.Fuse_Balloon != null)
|
||||
TJAPlayer3.Tx.Fuse_Balloon.t2D描画(frame_x, frame_y);
|
||||
this.tFuseNumber(num_x, num_y, n連打数, player);
|
||||
}
|
||||
else if (btype == EBalloonType.KUSUDAMA && player == 0)
|
||||
{
|
||||
/*
|
||||
if (TJAPlayer3.Tx.Kusudama_Back != null)
|
||||
TJAPlayer3.Tx.Kusudama_Back.t2D描画(0, 0);
|
||||
if (TJAPlayer3.Tx.Kusudama != null)
|
||||
TJAPlayer3.Tx.Kusudama.t2D描画(0, 0);
|
||||
*/
|
||||
this.tKusudamaNumber(n連打数);
|
||||
}
|
||||
|
||||
//CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, n連打数.ToString() );
|
||||
}
|
||||
if (btype == EBalloonType.KUSUDAMA)
|
||||
{
|
||||
/*
|
||||
for(int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
||||
{
|
||||
TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[i] = false;
|
||||
TJAPlayer3.stage演奏ドラム画面.b連打中[i] = false;
|
||||
}
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
if (n連打数 == 0 && TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[player])
|
||||
{
|
||||
TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[player] = false;
|
||||
TJAPlayer3.stage演奏ドラム画面.b連打中[player] = false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
private KusudamaScript KusudamaScript;
|
||||
|
||||
|
||||
private CCounter ct風船終了;
|
||||
private CCounter ct風船ふきだしアニメ;
|
||||
|
||||
public CCounter[] ct風船アニメ;
|
||||
private float[] RollScale = new float[]
|
||||
{
|
||||
0.000f,
|
||||
0.123f, // リピート
|
||||
0.164f,
|
||||
0.164f,
|
||||
0.164f,
|
||||
0.137f,
|
||||
0.110f,
|
||||
0.082f,
|
||||
0.055f,
|
||||
0.000f
|
||||
};
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private struct ST文字位置
|
||||
{
|
||||
public char ch;
|
||||
public Point pt;
|
||||
}
|
||||
|
||||
private void _nbDisplay(CTexture tx, int num, int x, int y)
|
||||
{
|
||||
int[] nums = CConversion.SeparateDigits(num);
|
||||
for (int j = 0; j < nums.Length; j++)
|
||||
{
|
||||
float offset = j - (nums.Length / 2.0f);
|
||||
float _x = x - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[0] * offset);
|
||||
float _y = y - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[1] * offset);
|
||||
|
||||
float width = tx.sz画像サイズ.Width / 10.0f;
|
||||
float height = tx.sz画像サイズ.Height;
|
||||
|
||||
tx.t2D拡大率考慮下基準描画(_x, _y, new RectangleF(width * nums[j], 0, width, height));
|
||||
}
|
||||
}
|
||||
|
||||
private void tKusudamaNumber(int num)
|
||||
{
|
||||
if (TJAPlayer3.Tx.Kusudama_Number == null) return;
|
||||
TJAPlayer3.Tx.Kusudama_Number.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
|
||||
TJAPlayer3.Tx.Kusudama_Number.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
|
||||
int x = TJAPlayer3.Skin.Game_Kusudama_Number_X;
|
||||
int y = TJAPlayer3.Skin.Game_Kusudama_Number_Y;
|
||||
|
||||
int[] nums = CConversion.SeparateDigits(num);
|
||||
for (int j = 0; j < nums.Length; j++)
|
||||
{
|
||||
float offset = j - ((nums.Length - 2) / 2.0f);
|
||||
float width = TJAPlayer3.Tx.Kusudama_Number.sz画像サイズ.Width / 10.0f;
|
||||
float height = TJAPlayer3.Tx.Kusudama_Number.sz画像サイズ.Height;
|
||||
float _x = x - (width * offset);
|
||||
float _y = y;
|
||||
|
||||
TJAPlayer3.Tx.Kusudama_Number.t2D拡大率考慮下基準描画(_x, _y, new RectangleF(width * nums[j], 0, width, height));
|
||||
}
|
||||
}
|
||||
|
||||
private void tFuseNumber(int x, int y, int num, int nPlayer)
|
||||
{
|
||||
if (TJAPlayer3.Tx.Fuse_Number == null) return;
|
||||
TJAPlayer3.Tx.Fuse_Number.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
|
||||
TJAPlayer3.Tx.Fuse_Number.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale + RollScale[this.ct風船アニメ[nPlayer].CurrentValue];
|
||||
|
||||
_nbDisplay(TJAPlayer3.Tx.Fuse_Number, num, x, y);
|
||||
}
|
||||
|
||||
private void t文字表示(int x, int y, int num, int nPlayer)
|
||||
{
|
||||
if (TJAPlayer3.Tx.Balloon_Number_Roll == null) return;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Scale + RollScale[this.ct風船アニメ[nPlayer].CurrentValue];
|
||||
|
||||
_nbDisplay(TJAPlayer3.Tx.Balloon_Number_Roll, num, x, y);
|
||||
}
|
||||
|
||||
public void tEnd()
|
||||
{
|
||||
this.ct風船終了 = new CCounter(0, 80, 10, SoundManager.PlayTimer);
|
||||
}
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -9,11 +9,11 @@ using Rectangle = System.Drawing.Rectangle;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏Drumsチップエフェクト : CActivity
|
||||
internal class CActImplChipEffects : CActivity
|
||||
{
|
||||
// コンストラクタ
|
||||
|
||||
public CAct演奏Drumsチップエフェクト()
|
||||
public CActImplChipEffects()
|
||||
{
|
||||
//base.b活性化してない = true;
|
||||
}
|
File diff suppressed because it is too large
Load Diff
16
OpenTaiko/src/Stages/07.Game/Taiko/CActImplCombo.cs
Normal file
16
OpenTaiko/src/Stages/07.Game/Taiko/CActImplCombo.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CActImplCombo : CAct演奏Combo共通
|
||||
{
|
||||
// CAct演奏Combo共通 実装
|
||||
|
||||
protected override void tコンボ表示_太鼓(int nCombo値, int nジャンプインデックス, int nPlayer)
|
||||
{
|
||||
base.tコンボ表示_太鼓( nCombo値, nジャンプインデックス, nPlayer );
|
||||
}
|
||||
}
|
||||
}
|
@ -7,7 +7,7 @@ using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏Drumsコンボ吹き出し : CActivity
|
||||
internal class CActImplComboBalloon : CActivity
|
||||
{
|
||||
// コンストラクタ
|
||||
|
||||
@ -15,7 +15,7 @@ namespace TJAPlayer3
|
||||
/// 100コンボごとに出る吹き出し。
|
||||
/// 本当は「10000点」のところも動かしたいけど、技術不足だし保留。
|
||||
/// </summary>
|
||||
public CAct演奏Drumsコンボ吹き出し()
|
||||
public CActImplComboBalloon()
|
||||
{
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
@ -1,373 +1,373 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using FDK;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏DrumsDancer : CActivity
|
||||
{
|
||||
/// <summary>
|
||||
/// 踊り子
|
||||
/// </summary>
|
||||
public CAct演奏DrumsDancer()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
||||
|
||||
public override void Activate()
|
||||
{
|
||||
//this.ct踊り子モーション = new CCounter();
|
||||
|
||||
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower || TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Dan)
|
||||
return;
|
||||
|
||||
var preset = HScenePreset.GetBGPreset();
|
||||
|
||||
Random random = new Random();
|
||||
|
||||
Dancer_In = new CTexture[5][];
|
||||
Dancer_Out = new CTexture[5][];
|
||||
Dancer = new CTexture[5][];
|
||||
DancerStates = new int[5];
|
||||
nNowDancerInCounter = new float[5];
|
||||
nNowDancerOutCounter = new float[5];
|
||||
|
||||
|
||||
|
||||
var dancerOrigindir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.DANCER}");
|
||||
if (System.IO.Directory.Exists($@"{dancerOrigindir}"))
|
||||
{
|
||||
var dirs = System.IO.Directory.GetDirectories($@"{dancerOrigindir}");
|
||||
if (dirs.Length > 0)
|
||||
{
|
||||
var _presetPath = (preset != null && preset.DancerSet != null) ? $@"{dancerOrigindir}" + preset.DancerSet[random.Next(0, preset.DancerSet.Length)] : "";
|
||||
var path = (preset != null && System.IO.Directory.Exists(_presetPath))
|
||||
? _presetPath
|
||||
: dirs[random.Next(0, dirs.Length)];
|
||||
|
||||
LoadDancerConifg(path);
|
||||
|
||||
Dancer_In = new CTexture[nDancerCount][];
|
||||
Dancer_Out = new CTexture[nDancerCount][];
|
||||
Dancer = new CTexture[nDancerCount][];
|
||||
DancerStates = new int[nDancerCount];
|
||||
nNowDancerInCounter = new float[nDancerCount];
|
||||
nNowDancerOutCounter = new float[nDancerCount];
|
||||
|
||||
nDancerInPtn = TJAPlayer3.t連番画像の枚数を数える($@"{path}{Path.DirectorySeparatorChar}1_In{Path.DirectorySeparatorChar}");
|
||||
if (nDancerInPtn != 0)
|
||||
{
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
Dancer_In[i] = new CTexture[nDancerInPtn];
|
||||
for (int p = 0; p < nDancerInPtn; p++)
|
||||
{
|
||||
Dancer_In[i][p] = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}{(i + 1)}_In{Path.DirectorySeparatorChar}{p}.png");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nDancerOutPtn = TJAPlayer3.t連番画像の枚数を数える($@"{path}{Path.DirectorySeparatorChar}1_Out{Path.DirectorySeparatorChar}");
|
||||
if (nDancerOutPtn != 0)
|
||||
{
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
Dancer_Out[i] = new CTexture[nDancerOutPtn];
|
||||
for (int p = 0; p < nDancerOutPtn; p++)
|
||||
{
|
||||
Dancer_Out[i][p] = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}{(i + 1)}_Out{Path.DirectorySeparatorChar}{p}.png");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nDancerPtn = TJAPlayer3.t連番画像の枚数を数える($@"{path}{Path.DirectorySeparatorChar}1{Path.DirectorySeparatorChar}");
|
||||
if (nDancerPtn != 0)
|
||||
{
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
Dancer[i] = new CTexture[nDancerPtn];
|
||||
for (int p = 0; p < nDancerPtn; p++)
|
||||
{
|
||||
Dancer[i][p] = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}{(i + 1)}{Path.DirectorySeparatorChar}{p}.png");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
arMotionArray_In = CConversion.StringToIntArray(Game_Dancer_In_Motion);
|
||||
if(this.arMotionArray_In == null) arMotionArray_In = CConversion.StringToIntArray("0,0");
|
||||
|
||||
arMotionArray_Out = CConversion.StringToIntArray(Game_Dancer_Out_Motion);
|
||||
if(this.arMotionArray_Out == null) arMotionArray_Out = CConversion.StringToIntArray("0,0");
|
||||
|
||||
this.ar踊り子モーション番号 = CConversion.StringToIntArray(TJAPlayer3.Skin.Game_Dancer_Motion);
|
||||
if(this.ar踊り子モーション番号 == null) ar踊り子モーション番号 = CConversion.StringToIntArray("0,0");
|
||||
|
||||
nNowDancerCounter = 0;
|
||||
nNowDancerFrame = 0;
|
||||
|
||||
base.Activate();
|
||||
}
|
||||
|
||||
public override void DeActivate()
|
||||
{
|
||||
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower || TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Dan)
|
||||
return;
|
||||
|
||||
//this.ct踊り子モーション = null;
|
||||
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
TJAPlayer3.t安全にDisposeする(ref Dancer_In[i]);
|
||||
TJAPlayer3.t安全にDisposeする(ref Dancer_Out[i]);
|
||||
TJAPlayer3.t安全にDisposeする(ref Dancer[i]);
|
||||
}
|
||||
|
||||
base.DeActivate();
|
||||
}
|
||||
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
|
||||
public override int Draw()
|
||||
{
|
||||
if( this.IsFirstDraw )
|
||||
{
|
||||
this.IsFirstDraw = true;
|
||||
}
|
||||
|
||||
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Tower && TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Dan)
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.ShowDancer && (this.ar踊り子モーション番号.Length - 1) != 0)
|
||||
{
|
||||
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowDancerCounter += Math.Abs((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / 60.0f) * (float)TJAPlayer3.FPS.DeltaTime / nDancerBeat;
|
||||
if (nNowDancerCounter >= 1)
|
||||
{
|
||||
nNowDancerCounter = 0;
|
||||
}
|
||||
nNowDancerFrame = (int)(nNowDancerCounter * (this.ar踊り子モーション番号.Length - 1));
|
||||
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
if ((int)TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[0] >= TJAPlayer3.Skin.Game_Dancer_Gauge[i])
|
||||
{
|
||||
if (DancerStates[i] == 0)
|
||||
{
|
||||
DancerStates[i] = 1;
|
||||
nNowDancerInCounter[i] = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (DancerStates[i] == 3)
|
||||
{
|
||||
DancerStates[i] = 2;
|
||||
nNowDancerOutCounter[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
switch(DancerStates[i])
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
if (nDancerInInterval == 0)
|
||||
{
|
||||
DancerStates[i] = 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowDancerInCounter[i] += Math.Abs((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / nDancerInInterval) * (float)TJAPlayer3.FPS.DeltaTime;
|
||||
|
||||
if (nNowDancerInCounter[i] >= 1)
|
||||
{
|
||||
nNowDancerInCounter[i] = 1;
|
||||
DancerStates[i] = 3;
|
||||
}
|
||||
|
||||
int frame = (int)(nNowDancerInCounter[i] * (this.arMotionArray_In.Length - 1));
|
||||
if (this.Dancer_In[i] != null && this.Dancer_In[i].Length > 0 && this.Dancer_In[i][this.arMotionArray_In[frame]] != null)
|
||||
{
|
||||
this.Dancer_In[i][this.arMotionArray_In[frame]].t2D中心基準描画(TJAPlayer3.Skin.Game_Dancer_X[i], TJAPlayer3.Skin.Game_Dancer_Y[i]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
if (nDancerOutInterval == 0)
|
||||
{
|
||||
DancerStates[i] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowDancerOutCounter[i] += Math.Abs((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / nDancerOutInterval) * (float)TJAPlayer3.FPS.DeltaTime;
|
||||
|
||||
if (nNowDancerOutCounter[i] >= 1)
|
||||
{
|
||||
nNowDancerOutCounter[i] = 1;
|
||||
DancerStates[i] = 0;
|
||||
}
|
||||
|
||||
int frame = (int)(nNowDancerOutCounter[i] * (this.arMotionArray_Out.Length - 1));
|
||||
if (this.Dancer_Out[i] != null && this.Dancer_Out[i].Length > 0 && this.Dancer_Out[i][this.arMotionArray_Out[frame]] != null)
|
||||
{
|
||||
this.Dancer_Out[i][this.arMotionArray_Out[frame]].t2D中心基準描画(TJAPlayer3.Skin.Game_Dancer_X[i], TJAPlayer3.Skin.Game_Dancer_Y[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (this.Dancer[i] != null && this.Dancer[i].Length > 0 && this.Dancer[i][this.ar踊り子モーション番号[nNowDancerFrame]] != null)
|
||||
{
|
||||
this.Dancer[i][this.ar踊り子モーション番号[nNowDancerFrame]].t2D中心基準描画(TJAPlayer3.Skin.Game_Dancer_X[i], TJAPlayer3.Skin.Game_Dancer_Y[i]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
#region[ private ]
|
||||
//-----------------
|
||||
private int nDancerCount;
|
||||
private float[] nNowDancerInCounter;
|
||||
private float[] nNowDancerOutCounter;
|
||||
private float nNowDancerCounter;
|
||||
private int nNowDancerFrame;
|
||||
private int nDancerInPtn;
|
||||
private int nDancerOutPtn;
|
||||
private int nDancerPtn;
|
||||
private float nDancerBeat;
|
||||
private float nDancerInInterval;
|
||||
private float nDancerOutInterval;
|
||||
private int[] arMotionArray_In;
|
||||
private int[] arMotionArray_Out;
|
||||
private int[] ar踊り子モーション番号;
|
||||
//public CCounter ct踊り子モーション;
|
||||
private CTexture[][] Dancer_In;
|
||||
private CTexture[][] Dancer_Out;
|
||||
private CTexture[][] Dancer;
|
||||
private int[] DancerStates;
|
||||
private string Game_Dancer_In_Motion;
|
||||
private string Game_Dancer_Out_Motion;
|
||||
|
||||
private void LoadDancerConifg(string dancerPath)
|
||||
{
|
||||
var _str = "";
|
||||
TJAPlayer3.Skin.LoadSkinConfigFromFile(dancerPath + @$"{Path.DirectorySeparatorChar}DancerConfig.txt", ref _str);
|
||||
|
||||
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 };
|
||||
nDancerCount = 5;
|
||||
nDancerInInterval = 0;
|
||||
nDancerOutInterval = 0;
|
||||
|
||||
foreach (string s in strSingleLine)
|
||||
{
|
||||
string str = s.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' });
|
||||
if ((str.Length != 0) && (str[0] != ';'))
|
||||
{
|
||||
try
|
||||
{
|
||||
string strCommand;
|
||||
string strParam;
|
||||
string[] strArray = str.Split(new char[] { '=' });
|
||||
|
||||
if (strArray.Length == 2)
|
||||
{
|
||||
strCommand = strArray[0].Trim();
|
||||
strParam = strArray[1].Trim();
|
||||
|
||||
if (strCommand == "Game_Dancer_Count")
|
||||
{
|
||||
nDancerCount = int.Parse(strParam);
|
||||
TJAPlayer3.Skin.Game_Dancer_X = new int[nDancerCount];
|
||||
TJAPlayer3.Skin.Game_Dancer_Y = new int[nDancerCount];
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_X")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
TJAPlayer3.Skin.Game_Dancer_X[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_Y")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
TJAPlayer3.Skin.Game_Dancer_Y[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_Motion")
|
||||
{
|
||||
TJAPlayer3.Skin.Game_Dancer_Motion = strParam;
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_In_Motion")
|
||||
{
|
||||
Game_Dancer_In_Motion = strParam;
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_Out_Motion")
|
||||
{
|
||||
Game_Dancer_Out_Motion = strParam;
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_Beat")
|
||||
{
|
||||
nDancerBeat = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_In_Interval")
|
||||
{
|
||||
nDancerInInterval = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_Out_Interval")
|
||||
{
|
||||
nDancerOutInterval = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_Gauge")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
TJAPlayer3.Skin.Game_Dancer_Gauge[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
continue;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Trace.TraceError(exception.ToString());
|
||||
Trace.TraceError("例外が発生しましたが処理を継続します。 (6a32cc37-1527-412e-968a-512c1f0135cd)");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using FDK;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CActImplDancer : CActivity
|
||||
{
|
||||
/// <summary>
|
||||
/// 踊り子
|
||||
/// </summary>
|
||||
public CActImplDancer()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
||||
|
||||
public override void Activate()
|
||||
{
|
||||
//this.ct踊り子モーション = new CCounter();
|
||||
|
||||
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower || TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Dan)
|
||||
return;
|
||||
|
||||
var preset = HScenePreset.GetBGPreset();
|
||||
|
||||
Random random = new Random();
|
||||
|
||||
Dancer_In = new CTexture[5][];
|
||||
Dancer_Out = new CTexture[5][];
|
||||
Dancer = new CTexture[5][];
|
||||
DancerStates = new int[5];
|
||||
nNowDancerInCounter = new float[5];
|
||||
nNowDancerOutCounter = new float[5];
|
||||
|
||||
|
||||
|
||||
var dancerOrigindir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.DANCER}");
|
||||
if (System.IO.Directory.Exists($@"{dancerOrigindir}"))
|
||||
{
|
||||
var dirs = System.IO.Directory.GetDirectories($@"{dancerOrigindir}");
|
||||
if (dirs.Length > 0)
|
||||
{
|
||||
var _presetPath = (preset != null && preset.DancerSet != null) ? $@"{dancerOrigindir}" + preset.DancerSet[random.Next(0, preset.DancerSet.Length)] : "";
|
||||
var path = (preset != null && System.IO.Directory.Exists(_presetPath))
|
||||
? _presetPath
|
||||
: dirs[random.Next(0, dirs.Length)];
|
||||
|
||||
LoadDancerConifg(path);
|
||||
|
||||
Dancer_In = new CTexture[nDancerCount][];
|
||||
Dancer_Out = new CTexture[nDancerCount][];
|
||||
Dancer = new CTexture[nDancerCount][];
|
||||
DancerStates = new int[nDancerCount];
|
||||
nNowDancerInCounter = new float[nDancerCount];
|
||||
nNowDancerOutCounter = new float[nDancerCount];
|
||||
|
||||
nDancerInPtn = TJAPlayer3.t連番画像の枚数を数える($@"{path}{Path.DirectorySeparatorChar}1_In{Path.DirectorySeparatorChar}");
|
||||
if (nDancerInPtn != 0)
|
||||
{
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
Dancer_In[i] = new CTexture[nDancerInPtn];
|
||||
for (int p = 0; p < nDancerInPtn; p++)
|
||||
{
|
||||
Dancer_In[i][p] = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}{(i + 1)}_In{Path.DirectorySeparatorChar}{p}.png");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nDancerOutPtn = TJAPlayer3.t連番画像の枚数を数える($@"{path}{Path.DirectorySeparatorChar}1_Out{Path.DirectorySeparatorChar}");
|
||||
if (nDancerOutPtn != 0)
|
||||
{
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
Dancer_Out[i] = new CTexture[nDancerOutPtn];
|
||||
for (int p = 0; p < nDancerOutPtn; p++)
|
||||
{
|
||||
Dancer_Out[i][p] = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}{(i + 1)}_Out{Path.DirectorySeparatorChar}{p}.png");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nDancerPtn = TJAPlayer3.t連番画像の枚数を数える($@"{path}{Path.DirectorySeparatorChar}1{Path.DirectorySeparatorChar}");
|
||||
if (nDancerPtn != 0)
|
||||
{
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
Dancer[i] = new CTexture[nDancerPtn];
|
||||
for (int p = 0; p < nDancerPtn; p++)
|
||||
{
|
||||
Dancer[i][p] = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}{(i + 1)}{Path.DirectorySeparatorChar}{p}.png");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
arMotionArray_In = CConversion.StringToIntArray(Game_Dancer_In_Motion);
|
||||
if(this.arMotionArray_In == null) arMotionArray_In = CConversion.StringToIntArray("0,0");
|
||||
|
||||
arMotionArray_Out = CConversion.StringToIntArray(Game_Dancer_Out_Motion);
|
||||
if(this.arMotionArray_Out == null) arMotionArray_Out = CConversion.StringToIntArray("0,0");
|
||||
|
||||
this.ar踊り子モーション番号 = CConversion.StringToIntArray(TJAPlayer3.Skin.Game_Dancer_Motion);
|
||||
if(this.ar踊り子モーション番号 == null) ar踊り子モーション番号 = CConversion.StringToIntArray("0,0");
|
||||
|
||||
nNowDancerCounter = 0;
|
||||
nNowDancerFrame = 0;
|
||||
|
||||
base.Activate();
|
||||
}
|
||||
|
||||
public override void DeActivate()
|
||||
{
|
||||
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower || TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Dan)
|
||||
return;
|
||||
|
||||
//this.ct踊り子モーション = null;
|
||||
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
TJAPlayer3.t安全にDisposeする(ref Dancer_In[i]);
|
||||
TJAPlayer3.t安全にDisposeする(ref Dancer_Out[i]);
|
||||
TJAPlayer3.t安全にDisposeする(ref Dancer[i]);
|
||||
}
|
||||
|
||||
base.DeActivate();
|
||||
}
|
||||
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
|
||||
public override int Draw()
|
||||
{
|
||||
if( this.IsFirstDraw )
|
||||
{
|
||||
this.IsFirstDraw = true;
|
||||
}
|
||||
|
||||
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Tower && TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Dan)
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.ShowDancer && (this.ar踊り子モーション番号.Length - 1) != 0)
|
||||
{
|
||||
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowDancerCounter += Math.Abs((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / 60.0f) * (float)TJAPlayer3.FPS.DeltaTime / nDancerBeat;
|
||||
if (nNowDancerCounter >= 1)
|
||||
{
|
||||
nNowDancerCounter = 0;
|
||||
}
|
||||
nNowDancerFrame = (int)(nNowDancerCounter * (this.ar踊り子モーション番号.Length - 1));
|
||||
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
if ((int)TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[0] >= TJAPlayer3.Skin.Game_Dancer_Gauge[i])
|
||||
{
|
||||
if (DancerStates[i] == 0)
|
||||
{
|
||||
DancerStates[i] = 1;
|
||||
nNowDancerInCounter[i] = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (DancerStates[i] == 3)
|
||||
{
|
||||
DancerStates[i] = 2;
|
||||
nNowDancerOutCounter[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
switch(DancerStates[i])
|
||||
{
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
if (nDancerInInterval == 0)
|
||||
{
|
||||
DancerStates[i] = 3;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowDancerInCounter[i] += Math.Abs((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / nDancerInInterval) * (float)TJAPlayer3.FPS.DeltaTime;
|
||||
|
||||
if (nNowDancerInCounter[i] >= 1)
|
||||
{
|
||||
nNowDancerInCounter[i] = 1;
|
||||
DancerStates[i] = 3;
|
||||
}
|
||||
|
||||
int frame = (int)(nNowDancerInCounter[i] * (this.arMotionArray_In.Length - 1));
|
||||
if (this.Dancer_In[i] != null && this.Dancer_In[i].Length > 0 && this.Dancer_In[i][this.arMotionArray_In[frame]] != null)
|
||||
{
|
||||
this.Dancer_In[i][this.arMotionArray_In[frame]].t2D中心基準描画(TJAPlayer3.Skin.Game_Dancer_X[i], TJAPlayer3.Skin.Game_Dancer_Y[i]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
if (nDancerOutInterval == 0)
|
||||
{
|
||||
DancerStates[i] = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) nNowDancerOutCounter[i] += Math.Abs((float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[0] / nDancerOutInterval) * (float)TJAPlayer3.FPS.DeltaTime;
|
||||
|
||||
if (nNowDancerOutCounter[i] >= 1)
|
||||
{
|
||||
nNowDancerOutCounter[i] = 1;
|
||||
DancerStates[i] = 0;
|
||||
}
|
||||
|
||||
int frame = (int)(nNowDancerOutCounter[i] * (this.arMotionArray_Out.Length - 1));
|
||||
if (this.Dancer_Out[i] != null && this.Dancer_Out[i].Length > 0 && this.Dancer_Out[i][this.arMotionArray_Out[frame]] != null)
|
||||
{
|
||||
this.Dancer_Out[i][this.arMotionArray_Out[frame]].t2D中心基準描画(TJAPlayer3.Skin.Game_Dancer_X[i], TJAPlayer3.Skin.Game_Dancer_Y[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if (this.Dancer[i] != null && this.Dancer[i].Length > 0 && this.Dancer[i][this.ar踊り子モーション番号[nNowDancerFrame]] != null)
|
||||
{
|
||||
this.Dancer[i][this.ar踊り子モーション番号[nNowDancerFrame]].t2D中心基準描画(TJAPlayer3.Skin.Game_Dancer_X[i], TJAPlayer3.Skin.Game_Dancer_Y[i]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
#region[ private ]
|
||||
//-----------------
|
||||
private int nDancerCount;
|
||||
private float[] nNowDancerInCounter;
|
||||
private float[] nNowDancerOutCounter;
|
||||
private float nNowDancerCounter;
|
||||
private int nNowDancerFrame;
|
||||
private int nDancerInPtn;
|
||||
private int nDancerOutPtn;
|
||||
private int nDancerPtn;
|
||||
private float nDancerBeat;
|
||||
private float nDancerInInterval;
|
||||
private float nDancerOutInterval;
|
||||
private int[] arMotionArray_In;
|
||||
private int[] arMotionArray_Out;
|
||||
private int[] ar踊り子モーション番号;
|
||||
//public CCounter ct踊り子モーション;
|
||||
private CTexture[][] Dancer_In;
|
||||
private CTexture[][] Dancer_Out;
|
||||
private CTexture[][] Dancer;
|
||||
private int[] DancerStates;
|
||||
private string Game_Dancer_In_Motion;
|
||||
private string Game_Dancer_Out_Motion;
|
||||
|
||||
private void LoadDancerConifg(string dancerPath)
|
||||
{
|
||||
var _str = "";
|
||||
TJAPlayer3.Skin.LoadSkinConfigFromFile(dancerPath + @$"{Path.DirectorySeparatorChar}DancerConfig.txt", ref _str);
|
||||
|
||||
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 };
|
||||
nDancerCount = 5;
|
||||
nDancerInInterval = 0;
|
||||
nDancerOutInterval = 0;
|
||||
|
||||
foreach (string s in strSingleLine)
|
||||
{
|
||||
string str = s.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' });
|
||||
if ((str.Length != 0) && (str[0] != ';'))
|
||||
{
|
||||
try
|
||||
{
|
||||
string strCommand;
|
||||
string strParam;
|
||||
string[] strArray = str.Split(new char[] { '=' });
|
||||
|
||||
if (strArray.Length == 2)
|
||||
{
|
||||
strCommand = strArray[0].Trim();
|
||||
strParam = strArray[1].Trim();
|
||||
|
||||
if (strCommand == "Game_Dancer_Count")
|
||||
{
|
||||
nDancerCount = int.Parse(strParam);
|
||||
TJAPlayer3.Skin.Game_Dancer_X = new int[nDancerCount];
|
||||
TJAPlayer3.Skin.Game_Dancer_Y = new int[nDancerCount];
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_X")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
TJAPlayer3.Skin.Game_Dancer_X[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_Y")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
TJAPlayer3.Skin.Game_Dancer_Y[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_Motion")
|
||||
{
|
||||
TJAPlayer3.Skin.Game_Dancer_Motion = strParam;
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_In_Motion")
|
||||
{
|
||||
Game_Dancer_In_Motion = strParam;
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_Out_Motion")
|
||||
{
|
||||
Game_Dancer_Out_Motion = strParam;
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_Beat")
|
||||
{
|
||||
nDancerBeat = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_In_Interval")
|
||||
{
|
||||
nDancerInInterval = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_Out_Interval")
|
||||
{
|
||||
nDancerOutInterval = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "Game_Dancer_Gauge")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < nDancerCount; i++)
|
||||
{
|
||||
TJAPlayer3.Skin.Game_Dancer_Gauge[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
continue;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Trace.TraceError(exception.ToString());
|
||||
Trace.TraceError("例外が発生しましたが処理を継続します。 (6a32cc37-1527-412e-968a-512c1f0135cd)");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -1,76 +1,76 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏DrumsFooter : CActivity
|
||||
{
|
||||
/// <summary>
|
||||
/// フッター
|
||||
/// </summary>
|
||||
public CAct演奏DrumsFooter()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
||||
|
||||
public override void Activate()
|
||||
{
|
||||
var footerDir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.FOOTER}");
|
||||
var preset = HScenePreset.GetBGPreset();
|
||||
|
||||
if (System.IO.Directory.Exists(footerDir))
|
||||
{
|
||||
Random random = new Random();
|
||||
|
||||
var upDirs = System.IO.Directory.GetFiles(footerDir);
|
||||
if (upDirs.Length > 0)
|
||||
{
|
||||
var _presetPath = (preset != null && preset.FooterSet != null) ? $@"{footerDir}" + preset.FooterSet[random.Next(0, preset.FooterSet.Length)] + ".png" : "";
|
||||
var path = (preset != null && System.IO.File.Exists(_presetPath))
|
||||
? _presetPath
|
||||
: upDirs[random.Next(0, upDirs.Length)];
|
||||
|
||||
Mob_Footer = TJAPlayer3.tテクスチャの生成(path);
|
||||
}
|
||||
}
|
||||
|
||||
base.Activate();
|
||||
}
|
||||
|
||||
public override void DeActivate()
|
||||
{
|
||||
TJAPlayer3.tDisposeSafely(ref Mob_Footer);
|
||||
|
||||
base.DeActivate();
|
||||
}
|
||||
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
|
||||
public override int Draw()
|
||||
{
|
||||
if (this.Mob_Footer != null)
|
||||
{
|
||||
this.Mob_Footer.t2D描画(0, TJAPlayer3.Skin.Resolution[1] - this.Mob_Footer.szTextureSize.Height);
|
||||
}
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
#region[ private ]
|
||||
//-----------------
|
||||
public CTexture Mob_Footer;
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CActImplFooter : CActivity
|
||||
{
|
||||
/// <summary>
|
||||
/// フッター
|
||||
/// </summary>
|
||||
public CActImplFooter()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
||||
|
||||
public override void Activate()
|
||||
{
|
||||
var footerDir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.FOOTER}");
|
||||
var preset = HScenePreset.GetBGPreset();
|
||||
|
||||
if (System.IO.Directory.Exists(footerDir))
|
||||
{
|
||||
Random random = new Random();
|
||||
|
||||
var upDirs = System.IO.Directory.GetFiles(footerDir);
|
||||
if (upDirs.Length > 0)
|
||||
{
|
||||
var _presetPath = (preset != null && preset.FooterSet != null) ? $@"{footerDir}" + preset.FooterSet[random.Next(0, preset.FooterSet.Length)] + ".png" : "";
|
||||
var path = (preset != null && System.IO.File.Exists(_presetPath))
|
||||
? _presetPath
|
||||
: upDirs[random.Next(0, upDirs.Length)];
|
||||
|
||||
Mob_Footer = TJAPlayer3.tテクスチャの生成(path);
|
||||
}
|
||||
}
|
||||
|
||||
base.Activate();
|
||||
}
|
||||
|
||||
public override void DeActivate()
|
||||
{
|
||||
TJAPlayer3.tDisposeSafely(ref Mob_Footer);
|
||||
|
||||
base.DeActivate();
|
||||
}
|
||||
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
|
||||
public override int Draw()
|
||||
{
|
||||
if (this.Mob_Footer != null)
|
||||
{
|
||||
this.Mob_Footer.t2D描画(0, TJAPlayer3.Skin.Resolution[1] - this.Mob_Footer.szTextureSize.Height);
|
||||
}
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
#region[ private ]
|
||||
//-----------------
|
||||
public CTexture Mob_Footer;
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -8,7 +8,7 @@ using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏Drumsゲージ : CAct演奏ゲージ共通
|
||||
internal class CActImplGauge : CAct演奏ゲージ共通
|
||||
{
|
||||
// プロパティ
|
||||
|
||||
@ -38,7 +38,7 @@ namespace TJAPlayer3
|
||||
/// _Danger時にゲージの色が変わる演出の実装。
|
||||
/// _Danger、MAX時のアニメーション実装。
|
||||
/// </summary>
|
||||
public CAct演奏Drumsゲージ()
|
||||
public CActImplGauge()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
@ -8,11 +8,11 @@ using System.Drawing;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏Drums判定文字列 : CActivity
|
||||
internal class CActImplJudgeText : CActivity
|
||||
{
|
||||
// コンストラクタ
|
||||
|
||||
public CAct演奏Drums判定文字列()
|
||||
public CActImplJudgeText()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
||||
@ -102,13 +102,13 @@ namespace TJAPlayer3
|
||||
if (JudgesDict.ContainsKey(judge))
|
||||
{
|
||||
njudge = JudgesDict[judge];
|
||||
}
|
||||
|
||||
if (njudge == 0 && TJAPlayer3.ConfigIni.SimpleMode)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (njudge == 0 && TJAPlayer3.ConfigIni.SimpleMode)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int height = TJAPlayer3.Tx.Judge.szTextureSize.Height / 5;
|
||||
judgeAnime.rc = new Rectangle(0, (int)njudge * height, TJAPlayer3.Tx.Judge.szTextureSize.Width, height);
|
||||
|
@ -6,9 +6,9 @@ using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏Drumsレーン : CActivity
|
||||
internal class CActImplLane : CActivity
|
||||
{
|
||||
public CAct演奏Drumsレーン()
|
||||
public CActImplLane()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
||||
@ -103,13 +103,13 @@ namespace TJAPlayer3
|
||||
_laneNull = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
if (TJAPlayer3.ConfigIni.SimpleMode)
|
||||
{
|
||||
TJAPlayer3.Tx.Lane_Base[(int)nAfter[i]].t2D描画(x[i], y[i]);
|
||||
|
||||
if (TJAPlayer3.ConfigIni.SimpleMode)
|
||||
{
|
||||
TJAPlayer3.Tx.Lane_Base[(int)nAfter[i]].t2D描画(x[i], y[i]);
|
||||
}
|
||||
else if( this.ct分岐アニメ進行[ i ].IsTicked && !_laneNull)
|
||||
{
|
File diff suppressed because it is too large
Load Diff
@ -7,12 +7,12 @@ using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏DrumsMob : CActivity
|
||||
internal class CActImplMob : CActivity
|
||||
{
|
||||
/// <summary>
|
||||
/// 踊り子
|
||||
/// </summary>
|
||||
public CAct演奏DrumsMob()
|
||||
public CActImplMob()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
@ -9,13 +9,13 @@ using Rectangle = System.Drawing.Rectangle;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏DrumsMtaiko : CActivity
|
||||
internal class CActImplMtaiko : CActivity
|
||||
{
|
||||
/// <summary>
|
||||
/// mtaiko部分を描画するクラス。左側だけ。
|
||||
///
|
||||
/// </summary>
|
||||
public CAct演奏DrumsMtaiko()
|
||||
public CActImplMtaiko()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
||||
@ -210,16 +210,16 @@ namespace TJAPlayer3
|
||||
}
|
||||
*/
|
||||
|
||||
int getMTaikoOpacity(int brightness)
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.SimpleMode)
|
||||
{
|
||||
return brightness <= 0 ? 0 : 255;
|
||||
}
|
||||
else
|
||||
{
|
||||
return brightness * 73;
|
||||
}
|
||||
int getMTaikoOpacity(int brightness)
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.SimpleMode)
|
||||
{
|
||||
return brightness <= 0 ? 0 : 255;
|
||||
}
|
||||
else
|
||||
{
|
||||
return brightness * 73;
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
@ -7,85 +7,12 @@ using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏Drumsパッド : CActivity
|
||||
internal class CActImplPad : CActivity
|
||||
{
|
||||
// コンストラクタ
|
||||
|
||||
public CAct演奏Drumsパッド()
|
||||
public CActImplPad()
|
||||
{
|
||||
ST基本位置[] st基本位置Array = new ST基本位置[ 10 ];
|
||||
|
||||
//LC
|
||||
ST基本位置 st基本位置 = new ST基本位置();
|
||||
st基本位置.x = 263;
|
||||
st基本位置.y = 10;
|
||||
st基本位置.rc = new Rectangle( 0, 0, 0x60, 0x60 );
|
||||
st基本位置Array[ 0 ] = st基本位置;
|
||||
|
||||
//HH
|
||||
ST基本位置 st基本位置2 = new ST基本位置();
|
||||
st基本位置2.x = 336;
|
||||
st基本位置2.y = 10;
|
||||
st基本位置2.rc = new Rectangle( 0x60, 0, 0x60, 0x60 );
|
||||
st基本位置Array[ 1 ] = st基本位置2;
|
||||
|
||||
//SD
|
||||
ST基本位置 st基本位置3 = new ST基本位置();
|
||||
st基本位置3.x = 446;
|
||||
st基本位置3.y = 10;
|
||||
st基本位置3.rc = new Rectangle( 0, 0x60, 0x60, 0x60 );
|
||||
st基本位置Array[ 2 ] = st基本位置3;
|
||||
|
||||
//BD
|
||||
ST基本位置 st基本位置4 = new ST基本位置();
|
||||
st基本位置4.x = 565;
|
||||
st基本位置4.y = 10;
|
||||
st基本位置4.rc = new Rectangle( 0, 0xc0, 0x60, 0x60);
|
||||
st基本位置Array[ 3 ] = st基本位置4;
|
||||
|
||||
//HT
|
||||
ST基本位置 st基本位置5 = new ST基本位置();
|
||||
st基本位置5.x = 510;
|
||||
st基本位置5.y = 10;
|
||||
st基本位置5.rc = new Rectangle( 0x60, 0x60, 0x60, 0x60 );
|
||||
st基本位置Array[ 4 ] = st基本位置5;
|
||||
|
||||
//LT
|
||||
ST基本位置 st基本位置6 = new ST基本位置();
|
||||
st基本位置6.x = 622;
|
||||
st基本位置6.y = 10;
|
||||
st基本位置6.rc = new Rectangle( 0xc0, 0x60, 0x60, 0x60 );
|
||||
st基本位置Array[ 5 ] = st基本位置6;
|
||||
|
||||
//FT
|
||||
ST基本位置 st基本位置7 = new ST基本位置();
|
||||
st基本位置7.x = 672;
|
||||
st基本位置7.y = 10;
|
||||
st基本位置7.rc = new Rectangle( 288, 0x60, 0x60, 0x60 );
|
||||
st基本位置Array[ 6 ] = st基本位置7;
|
||||
|
||||
//CY
|
||||
ST基本位置 st基本位置8 = new ST基本位置();
|
||||
st基本位置8.x = 0x2df;
|
||||
st基本位置8.y = 10;
|
||||
st基本位置8.rc = new Rectangle( 0xc0, 0, 0x60, 0x60 );
|
||||
st基本位置Array[ 7 ] = st基本位置8;
|
||||
|
||||
//RD
|
||||
ST基本位置 st基本位置9 = new ST基本位置();
|
||||
st基本位置9.x = 0x317;
|
||||
st基本位置9.y = 10;
|
||||
st基本位置9.rc = new Rectangle( 288, 0, 0x60, 0x60 );
|
||||
st基本位置Array[ 8 ] = st基本位置9;
|
||||
|
||||
//LP
|
||||
ST基本位置 st基本位置10 = new ST基本位置();
|
||||
st基本位置10.x = 0x18c;
|
||||
st基本位置10.y = 10;
|
||||
st基本位置10.rc = new Rectangle( 0x60, 0xc0, 0x60, 0x60);
|
||||
st基本位置Array[ 9 ] = st基本位置10;
|
||||
|
||||
this.st基本位置 = st基本位置Array;
|
||||
base.IsDeActivated = true;
|
||||
}
|
||||
|
||||
@ -191,20 +118,10 @@ namespace TJAPlayer3
|
||||
public int nY座標オフセットdot;
|
||||
public int nY座標加速度dot;
|
||||
}
|
||||
[StructLayout( LayoutKind.Sequential )]
|
||||
private struct ST基本位置
|
||||
{
|
||||
public int x;
|
||||
public int y;
|
||||
public Rectangle rc;
|
||||
}
|
||||
|
||||
private long nY座標制御タイマ;
|
||||
private long nフラッシュ制御タイマ;
|
||||
private readonly int[] n描画順 = new int[] { 9, 3, 2, 6, 5, 4, 8, 7, 1, 0 };
|
||||
// LP BD SD FT HT LT RD CY HH LC
|
||||
private STパッド状態[] stパッド状態 = new STパッド状態[ 10 ];
|
||||
private readonly ST基本位置[] st基本位置;
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
@ -1,229 +1,181 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.InteropServices;
|
||||
using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏Drums連打 : CActivity
|
||||
{
|
||||
|
||||
|
||||
public CAct演奏Drums連打()
|
||||
{
|
||||
ST文字位置[] st文字位置Array = new ST文字位置[ 11 ];
|
||||
|
||||
ST文字位置 st文字位置 = new ST文字位置();
|
||||
st文字位置.ch = '0';
|
||||
st文字位置.pt = new Point( 0, 0 );
|
||||
st文字位置Array[ 0 ] = st文字位置;
|
||||
ST文字位置 st文字位置2 = new ST文字位置();
|
||||
st文字位置2.ch = '1';
|
||||
st文字位置2.pt = new Point( 62, 0 );
|
||||
st文字位置Array[ 1 ] = st文字位置2;
|
||||
ST文字位置 st文字位置3 = new ST文字位置();
|
||||
st文字位置3.ch = '2';
|
||||
st文字位置3.pt = new Point( 124, 0 );
|
||||
st文字位置Array[ 2 ] = st文字位置3;
|
||||
ST文字位置 st文字位置4 = new ST文字位置();
|
||||
st文字位置4.ch = '3';
|
||||
st文字位置4.pt = new Point( 186, 0 );
|
||||
st文字位置Array[ 3 ] = st文字位置4;
|
||||
ST文字位置 st文字位置5 = new ST文字位置();
|
||||
st文字位置5.ch = '4';
|
||||
st文字位置5.pt = new Point( 248, 0 );
|
||||
st文字位置Array[ 4 ] = st文字位置5;
|
||||
ST文字位置 st文字位置6 = new ST文字位置();
|
||||
st文字位置6.ch = '5';
|
||||
st文字位置6.pt = new Point( 310, 0 );
|
||||
st文字位置Array[ 5 ] = st文字位置6;
|
||||
ST文字位置 st文字位置7 = new ST文字位置();
|
||||
st文字位置7.ch = '6';
|
||||
st文字位置7.pt = new Point( 372, 0 );
|
||||
st文字位置Array[ 6 ] = st文字位置7;
|
||||
ST文字位置 st文字位置8 = new ST文字位置();
|
||||
st文字位置8.ch = '7';
|
||||
st文字位置8.pt = new Point( 434, 0 );
|
||||
st文字位置Array[ 7 ] = st文字位置8;
|
||||
ST文字位置 st文字位置9 = new ST文字位置();
|
||||
st文字位置9.ch = '8';
|
||||
st文字位置9.pt = new Point( 496, 0 );
|
||||
st文字位置Array[ 8 ] = st文字位置9;
|
||||
ST文字位置 st文字位置10 = new ST文字位置();
|
||||
st文字位置10.ch = '9';
|
||||
st文字位置10.pt = new Point( 558, 0 );
|
||||
st文字位置Array[ 9 ] = st文字位置10;
|
||||
|
||||
this.st文字位置 = st文字位置Array;
|
||||
|
||||
base.IsDeActivated = true;
|
||||
|
||||
}
|
||||
|
||||
public override void Activate()
|
||||
{
|
||||
this.ct連打枠カウンター = new CCounter[ 5 ];
|
||||
this.ct連打アニメ = new CCounter[5];
|
||||
FadeOut = new Animations.FadeOut[5];
|
||||
for ( int i = 0; i < 5; i++ )
|
||||
{
|
||||
this.ct連打枠カウンター[ i ] = new CCounter();
|
||||
this.ct連打アニメ[i] = new CCounter();
|
||||
// 後から変えれるようにする。大体10フレーム分。
|
||||
FadeOut[i] = new Animations.FadeOut(167);
|
||||
}
|
||||
this.b表示 = new bool[]{ false, false, false, false, false };
|
||||
this.n連打数 = new int[ 5 ];
|
||||
|
||||
base.Activate();
|
||||
}
|
||||
|
||||
public override void DeActivate()
|
||||
{
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
ct連打枠カウンター[i] = null;
|
||||
ct連打アニメ[i] = null;
|
||||
FadeOut[i] = null;
|
||||
}
|
||||
base.DeActivate();
|
||||
}
|
||||
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
|
||||
public override int Draw( )
|
||||
{
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
public int On進行描画( int n連打数, int player )
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return base.Draw();
|
||||
|
||||
this.ct連打枠カウンター[ player ].Tick();
|
||||
this.ct連打アニメ[player].Tick();
|
||||
FadeOut[player].Tick();
|
||||
//1PY:-3 2PY:514
|
||||
//仮置き
|
||||
int[] nRollBalloon = new int[] { -3, 514, 0, 0 };
|
||||
int[] nRollNumber = new int[] { 48, 559, 0, 0 };
|
||||
for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
|
||||
{
|
||||
//CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, this.ct連打枠カウンター[player].n現在の値.ToString());
|
||||
if ( this.ct連打枠カウンター[ player ].IsUnEnded)
|
||||
{
|
||||
if (ct連打枠カウンター[player].CurrentValue > 66 && !FadeOut[player].Counter.IsTicked)
|
||||
{
|
||||
FadeOut[player].Start();
|
||||
}
|
||||
var opacity = (int)FadeOut[player].GetAnimation();
|
||||
|
||||
if(ct連打枠カウンター[player].CurrentValue == 0 || ct連打枠カウンター[player].CurrentValue == 60)
|
||||
{
|
||||
bNowRollAnime = 0;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 64;
|
||||
}
|
||||
else if (ct連打枠カウンター[player].CurrentValue == 1 || ct連打枠カウンター[player].CurrentValue == 59)
|
||||
{
|
||||
bNowRollAnime = 1;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 128;
|
||||
}
|
||||
else if (ct連打枠カウンター[player].CurrentValue == 2 || ct連打枠カウンター[player].CurrentValue == 58)
|
||||
{
|
||||
bNowRollAnime = 2;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 192;
|
||||
}
|
||||
else if (ct連打枠カウンター[player].CurrentValue == 3 || ct連打枠カウンター[player].CurrentValue == 57)
|
||||
{
|
||||
bNowRollAnime = 3;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 255;
|
||||
}
|
||||
else if (ct連打枠カウンター[player].CurrentValue >= 4 || ct連打枠カウンター[player].CurrentValue <= 56)
|
||||
{
|
||||
bNowRollAnime = 4;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 255;
|
||||
}
|
||||
|
||||
float width = TJAPlayer3.Tx.Balloon_Roll.szTextureSize.Width / 5.0f;
|
||||
float height = TJAPlayer3.Tx.Balloon_Roll.szTextureSize.Height;
|
||||
|
||||
TJAPlayer3.Tx.Balloon_Roll?.t2D描画(TJAPlayer3.Skin.Game_Balloon_Roll_Frame_X[player], TJAPlayer3.Skin.Game_Balloon_Roll_Frame_Y[player], new RectangleF(0 + bNowRollAnime * width, 0, width, height));
|
||||
this.t文字表示(TJAPlayer3.Skin.Game_Balloon_Roll_Number_X[player], TJAPlayer3.Skin.Game_Balloon_Roll_Number_Y[player], n連打数, player);
|
||||
}
|
||||
}
|
||||
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
public void t枠表示時間延長(int player, bool first)
|
||||
{
|
||||
if ((this.ct連打枠カウンター[player].CurrentValue >= 6 && !first) || first)
|
||||
this.ct連打枠カウンター[player] = new CCounter(0, 60, 40, TJAPlayer3.Timer);
|
||||
|
||||
if(!first)
|
||||
this.ct連打枠カウンター[player].CurrentValue = 5;
|
||||
else
|
||||
this.ct連打枠カウンター[player].CurrentValue = 0;
|
||||
}
|
||||
|
||||
public int bNowRollAnime;
|
||||
public bool[] b表示;
|
||||
public int[] n連打数;
|
||||
public CCounter[] ct連打枠カウンター;
|
||||
//private CTexture tx連打枠;
|
||||
//private CTexture tx連打数字;
|
||||
private readonly ST文字位置[] st文字位置;
|
||||
public CCounter[] ct連打アニメ;
|
||||
private float[] RollScale = new float[]
|
||||
{
|
||||
0.000f,
|
||||
0.123f, // リピート
|
||||
0.164f,
|
||||
0.164f,
|
||||
0.164f,
|
||||
0.137f,
|
||||
0.110f,
|
||||
0.082f,
|
||||
0.055f,
|
||||
0.000f
|
||||
};
|
||||
private Animations.FadeOut[] FadeOut;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private struct ST文字位置
|
||||
{
|
||||
public char ch;
|
||||
public Point pt;
|
||||
}
|
||||
|
||||
private void t文字表示( int x, int y, int num, int nPlayer)
|
||||
{
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Roll_Number_Scale;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Roll_Number_Scale + RollScale[this.ct連打アニメ[nPlayer].CurrentValue];
|
||||
|
||||
int[] nums = CConversion.SeparateDigits(num);
|
||||
for (int j = 0; j < nums.Length; j++)
|
||||
{
|
||||
float offset = j - (nums.Length / 2.0f);
|
||||
float _x = x - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[0] * offset);
|
||||
float _y = y - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[1] * offset);
|
||||
|
||||
float width = TJAPlayer3.Tx.Balloon_Number_Roll.sz画像サイズ.Width / 10.0f;
|
||||
float height = TJAPlayer3.Tx.Balloon_Number_Roll.sz画像サイズ.Height;
|
||||
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.t2D拡大率考慮下基準描画(_x, _y, new RectangleF(width * nums[j], 0, width, height));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Diagnostics;
|
||||
using System.Runtime.InteropServices;
|
||||
using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CActImplRoll : CActivity
|
||||
{
|
||||
|
||||
|
||||
public CActImplRoll()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
||||
|
||||
public override void Activate()
|
||||
{
|
||||
this.ct連打枠カウンター = new CCounter[ 5 ];
|
||||
this.ct連打アニメ = new CCounter[5];
|
||||
FadeOut = new Animations.FadeOut[5];
|
||||
for ( int i = 0; i < 5; i++ )
|
||||
{
|
||||
this.ct連打枠カウンター[ i ] = new CCounter();
|
||||
this.ct連打アニメ[i] = new CCounter();
|
||||
// 後から変えれるようにする。大体10フレーム分。
|
||||
FadeOut[i] = new Animations.FadeOut(167);
|
||||
}
|
||||
this.b表示 = new bool[]{ false, false, false, false, false };
|
||||
this.n連打数 = new int[ 5 ];
|
||||
|
||||
base.Activate();
|
||||
}
|
||||
|
||||
public override void DeActivate()
|
||||
{
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
ct連打枠カウンター[i] = null;
|
||||
ct連打アニメ[i] = null;
|
||||
FadeOut[i] = null;
|
||||
}
|
||||
base.DeActivate();
|
||||
}
|
||||
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
|
||||
public override int Draw( )
|
||||
{
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
public int On進行描画( int n連打数, int player )
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return base.Draw();
|
||||
|
||||
this.ct連打枠カウンター[ player ].Tick();
|
||||
this.ct連打アニメ[player].Tick();
|
||||
FadeOut[player].Tick();
|
||||
//1PY:-3 2PY:514
|
||||
//仮置き
|
||||
int[] nRollBalloon = new int[] { -3, 514, 0, 0 };
|
||||
int[] nRollNumber = new int[] { 48, 559, 0, 0 };
|
||||
for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
|
||||
{
|
||||
//CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, this.ct連打枠カウンター[player].n現在の値.ToString());
|
||||
if ( this.ct連打枠カウンター[ player ].IsUnEnded)
|
||||
{
|
||||
if (ct連打枠カウンター[player].CurrentValue > 66 && !FadeOut[player].Counter.IsTicked)
|
||||
{
|
||||
FadeOut[player].Start();
|
||||
}
|
||||
var opacity = (int)FadeOut[player].GetAnimation();
|
||||
|
||||
if(ct連打枠カウンター[player].CurrentValue == 0 || ct連打枠カウンター[player].CurrentValue == 60)
|
||||
{
|
||||
bNowRollAnime = 0;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 64;
|
||||
}
|
||||
else if (ct連打枠カウンター[player].CurrentValue == 1 || ct連打枠カウンター[player].CurrentValue == 59)
|
||||
{
|
||||
bNowRollAnime = 1;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 128;
|
||||
}
|
||||
else if (ct連打枠カウンター[player].CurrentValue == 2 || ct連打枠カウンター[player].CurrentValue == 58)
|
||||
{
|
||||
bNowRollAnime = 2;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 192;
|
||||
}
|
||||
else if (ct連打枠カウンター[player].CurrentValue == 3 || ct連打枠カウンター[player].CurrentValue == 57)
|
||||
{
|
||||
bNowRollAnime = 3;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 255;
|
||||
}
|
||||
else if (ct連打枠カウンター[player].CurrentValue >= 4 || ct連打枠カウンター[player].CurrentValue <= 56)
|
||||
{
|
||||
bNowRollAnime = 4;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.Opacity = 255;
|
||||
}
|
||||
|
||||
float width = TJAPlayer3.Tx.Balloon_Roll.szTextureSize.Width / 5.0f;
|
||||
float height = TJAPlayer3.Tx.Balloon_Roll.szTextureSize.Height;
|
||||
|
||||
TJAPlayer3.Tx.Balloon_Roll?.t2D描画(TJAPlayer3.Skin.Game_Balloon_Roll_Frame_X[player], TJAPlayer3.Skin.Game_Balloon_Roll_Frame_Y[player], new RectangleF(0 + bNowRollAnime * width, 0, width, height));
|
||||
this.t文字表示(TJAPlayer3.Skin.Game_Balloon_Roll_Number_X[player], TJAPlayer3.Skin.Game_Balloon_Roll_Number_Y[player], n連打数, player);
|
||||
}
|
||||
}
|
||||
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
public void t枠表示時間延長(int player, bool first)
|
||||
{
|
||||
if ((this.ct連打枠カウンター[player].CurrentValue >= 6 && !first) || first)
|
||||
this.ct連打枠カウンター[player] = new CCounter(0, 60, 40, TJAPlayer3.Timer);
|
||||
|
||||
if(!first)
|
||||
this.ct連打枠カウンター[player].CurrentValue = 5;
|
||||
else
|
||||
this.ct連打枠カウンター[player].CurrentValue = 0;
|
||||
}
|
||||
|
||||
public int bNowRollAnime;
|
||||
public bool[] b表示;
|
||||
public int[] n連打数;
|
||||
public CCounter[] ct連打枠カウンター;
|
||||
|
||||
public CCounter[] ct連打アニメ;
|
||||
private float[] RollScale = new float[]
|
||||
{
|
||||
0.000f,
|
||||
0.123f, // リピート
|
||||
0.164f,
|
||||
0.164f,
|
||||
0.164f,
|
||||
0.137f,
|
||||
0.110f,
|
||||
0.082f,
|
||||
0.055f,
|
||||
0.000f
|
||||
};
|
||||
private Animations.FadeOut[] FadeOut;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private struct ST文字位置
|
||||
{
|
||||
public char ch;
|
||||
public Point pt;
|
||||
}
|
||||
|
||||
private void t文字表示( int x, int y, int num, int nPlayer)
|
||||
{
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.X = TJAPlayer3.Skin.Game_Balloon_Roll_Number_Scale;
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.vcScaleRatio.Y = TJAPlayer3.Skin.Game_Balloon_Roll_Number_Scale + RollScale[this.ct連打アニメ[nPlayer].CurrentValue];
|
||||
|
||||
int[] nums = CConversion.SeparateDigits(num);
|
||||
for (int j = 0; j < nums.Length; j++)
|
||||
{
|
||||
float offset = j - (nums.Length / 2.0f);
|
||||
float _x = x - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[0] * offset);
|
||||
float _y = y - (TJAPlayer3.Skin.Game_Balloon_Number_Interval[1] * offset);
|
||||
|
||||
float width = TJAPlayer3.Tx.Balloon_Number_Roll.sz画像サイズ.Width / 10.0f;
|
||||
float height = TJAPlayer3.Tx.Balloon_Number_Roll.sz画像サイズ.Height;
|
||||
|
||||
TJAPlayer3.Tx.Balloon_Number_Roll.t2D拡大率考慮下基準描画(_x, _y, new RectangleF(width * nums[j], 0, width, height));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -7,11 +7,11 @@ using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏Drums連打キャラ : CActivity
|
||||
internal class CActImplRollEffect : CActivity
|
||||
{
|
||||
// コンストラクタ
|
||||
|
||||
public CAct演奏Drums連打キャラ()
|
||||
public CActImplRollEffect()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
||||
@ -22,32 +22,6 @@ namespace TJAPlayer3
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.SimpleMode) return;
|
||||
|
||||
//if( CDTXMania.Tx.Effects_Roll[0] != null )
|
||||
//{
|
||||
// int[] arXseed = new int[] { 56, -10, 200, 345, 100, 451, 600, 260, -30, 534, 156, 363 };
|
||||
// for (int i = 0; i < 1; i++)
|
||||
// {
|
||||
// for (int j = 0; j < 64; j++)
|
||||
// {
|
||||
// if (!this.st連打キャラ[j].b使用中)
|
||||
// {
|
||||
// this.st連打キャラ[j].b使用中 = true;
|
||||
// if(this.nTex枚数 <= 1) this.st連打キャラ[j].nColor = 0;
|
||||
// else this.st連打キャラ[j].nColor = CDTXMania.Random.Next( 0, this.nTex枚数 - 1);
|
||||
// this.st連打キャラ[j].ct進行 = new CCounter( 0, 1000, 4, CDTXMania.Timer); // カウンタ
|
||||
|
||||
// //位置生成(β版)
|
||||
// int nXseed = CDTXMania.Random.Next(12);
|
||||
// this.st連打キャラ[ j ].fX開始点 = arXseed[ nXseed ];
|
||||
// this.st連打キャラ[j].fX = arXseed[ nXseed ];
|
||||
// this.st連打キャラ[j].fY = 720;
|
||||
// this.st連打キャラ[j].fX加速度 = 5/2;
|
||||
// this.st連打キャラ[j].fY加速度 = 5/2;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
for (int i = 0; i < 128; i++)
|
||||
{
|
||||
if(!RollCharas[i].IsUsing)
|
||||
@ -93,12 +67,7 @@ namespace TJAPlayer3
|
||||
|
||||
public override void Activate()
|
||||
{
|
||||
//for (int i = 0; i < 64; i++)
|
||||
//{
|
||||
// this.st連打キャラ[i] = new ST連打キャラ();
|
||||
// this.st連打キャラ[i].b使用中 = false;
|
||||
// this.st連打キャラ[i].ct進行 = new CCounter();
|
||||
//}
|
||||
|
||||
for (int i = 0; i < 128; i++)
|
||||
{
|
||||
RollCharas[i] = new RollChara();
|
||||
@ -111,10 +80,7 @@ namespace TJAPlayer3
|
||||
}
|
||||
public override void DeActivate()
|
||||
{
|
||||
//for (int i = 0; i < 64; i++)
|
||||
//{
|
||||
// this.st連打キャラ[i].ct進行 = null;
|
||||
//}
|
||||
|
||||
for (int i = 0; i < 128; i++)
|
||||
{
|
||||
RollCharas[i].Counter = null;
|
||||
@ -123,51 +89,18 @@ namespace TJAPlayer3
|
||||
}
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
//this.nTex枚数 = 4;
|
||||
//this.txChara = new CTexture[ this.nTex枚数 ];
|
||||
|
||||
//for (int i = 0; i < this.nTex枚数; i++)
|
||||
//{
|
||||
// this.txChara[ i ] = CDTXMania.tテクスチャの生成( CSkin.Path( @"Graphics\RollEffect\00\" + i.ToString() + ".png" ) );
|
||||
//}
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
// for (int i = 0; i < this.nTex枚数; i++)
|
||||
// {
|
||||
//CDTXMania.tテクスチャの解放( ref this.txChara[ i ] );
|
||||
// }
|
||||
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
public override int Draw()
|
||||
public override int Draw()
|
||||
{
|
||||
if ( !base.IsDeActivated && !TJAPlayer3.ConfigIni.SimpleMode)
|
||||
{
|
||||
//for( int i = 0; i < 64; i++ )
|
||||
//{
|
||||
// if( this.st連打キャラ[i].b使用中 )
|
||||
// {
|
||||
// this.st連打キャラ[i].n前回のValue = this.st連打キャラ[i].ct進行.n現在の値;
|
||||
// this.st連打キャラ[i].ct進行.t進行();
|
||||
// if (this.st連打キャラ[i].ct進行.b終了値に達した)
|
||||
// {
|
||||
// this.st連打キャラ[i].ct進行.t停止();
|
||||
// this.st連打キャラ[i].b使用中 = false;
|
||||
// }
|
||||
// for (int n = this.st連打キャラ[i].n前回のValue; n < this.st連打キャラ[i].ct進行.n現在の値; n++)
|
||||
// {
|
||||
// this.st連打キャラ[i].fX += this.st連打キャラ[i].fX加速度;
|
||||
// this.st連打キャラ[i].fY -= this.st連打キャラ[i].fY加速度;
|
||||
// }
|
||||
|
||||
// if(CDTXMania.Tx.Effects_Roll[ this.st連打キャラ[ i ].nColor ] != null )
|
||||
// {
|
||||
// CDTXMania.Tx.Effects_Roll[ this.st連打キャラ[ i ].nColor ].t2D描画( CDTXMania.app.Device, (int)this.st連打キャラ[i].fX, (int)this.st連打キャラ[i].fY, new Rectangle( this.st連打キャラ[i].nColor * 0, 0, 128, 128 ) );
|
||||
// }
|
||||
// }
|
||||
|
||||
//}
|
||||
|
||||
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return 0;
|
||||
|
@ -1,281 +1,281 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using FDK;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏DrumsRunner : CActivity
|
||||
{
|
||||
/// <summary>
|
||||
/// ランナー
|
||||
/// </summary>
|
||||
public CAct演奏DrumsRunner()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
||||
|
||||
public void Start(int Player, bool IsMiss, CDTX.CChip pChip)
|
||||
{
|
||||
if (Runner != null && !TJAPlayer3.ConfigIni.SimpleMode)
|
||||
{
|
||||
while (stRunners[Index].b使用中)
|
||||
{
|
||||
Index += 1;
|
||||
if (Index >= 128)
|
||||
{
|
||||
Index = 0;
|
||||
break; // 2018.6.15 IMARER 無限ループが発生するので修正
|
||||
}
|
||||
}
|
||||
if (pChip.nチャンネル番号 < 0x15 || (pChip.nチャンネル番号 >= 0x1A))
|
||||
{
|
||||
if (!stRunners[Index].b使用中)
|
||||
{
|
||||
stRunners[Index].b使用中 = true;
|
||||
stRunners[Index].nPlayer = Player;
|
||||
if (IsMiss == true)
|
||||
{
|
||||
stRunners[Index].nType = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
stRunners[Index].nType = random.Next(1, Type + 1);
|
||||
}
|
||||
stRunners[Index].ct進行 = new CCounter(0, TJAPlayer3.Skin.Resolution[0], Timer, TJAPlayer3.Timer);
|
||||
stRunners[Index].nOldValue = 0;
|
||||
stRunners[Index].nNowPtn = 0;
|
||||
stRunners[Index].fX = 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void Activate()
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.SimpleMode)
|
||||
{
|
||||
base.Activate();
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 128; i++)
|
||||
{
|
||||
stRunners[i] = new STRunner();
|
||||
stRunners[i].b使用中 = false;
|
||||
stRunners[i].ct進行 = new CCounter();
|
||||
}
|
||||
|
||||
var preset = HScenePreset.GetBGPreset();
|
||||
|
||||
Random random = new Random();
|
||||
|
||||
var dancerOrigindir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.RUNNER}");
|
||||
if (System.IO.Directory.Exists($@"{dancerOrigindir}"))
|
||||
{
|
||||
var dirs = System.IO.Directory.GetDirectories($@"{dancerOrigindir}");
|
||||
if (dirs.Length > 0)
|
||||
{
|
||||
var _presetPath = (preset != null && preset.RunnerSet != null) ? $@"{dancerOrigindir}" + preset.RunnerSet[random.Next(0, preset.RunnerSet.Length)] : "";
|
||||
var path = (preset != null && System.IO.Directory.Exists(_presetPath))
|
||||
? _presetPath
|
||||
: dirs[random.Next(0, dirs.Length)];
|
||||
LoadRunnerConifg(path);
|
||||
|
||||
Runner = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}Runner.png");
|
||||
}
|
||||
}
|
||||
|
||||
// フィールド上で代入してたためこちらへ移動。
|
||||
base.Activate();
|
||||
}
|
||||
|
||||
public override void DeActivate()
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.SimpleMode)
|
||||
{
|
||||
base.DeActivate();
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 128; i++)
|
||||
{
|
||||
stRunners[i].ct進行 = null;
|
||||
}
|
||||
|
||||
TJAPlayer3.tDisposeSafely(ref Runner);
|
||||
|
||||
base.DeActivate();
|
||||
}
|
||||
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
|
||||
public override int Draw()
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.SimpleMode)
|
||||
{
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
for (int i = 0; i < 128; i++)
|
||||
{
|
||||
if (stRunners[i].b使用中)
|
||||
{
|
||||
stRunners[i].nOldValue = stRunners[i].ct進行.CurrentValue;
|
||||
stRunners[i].ct進行.Tick();
|
||||
if (stRunners[i].ct進行.IsEnded || stRunners[i].fX > TJAPlayer3.Skin.Resolution[0])
|
||||
{
|
||||
stRunners[i].ct進行.Stop();
|
||||
stRunners[i].b使用中 = false;
|
||||
}
|
||||
for (int n = stRunners[i].nOldValue; n < stRunners[i].ct進行.CurrentValue; n++)
|
||||
{
|
||||
stRunners[i].fX += (float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[stRunners[i].nPlayer] / 18;
|
||||
int Width = TJAPlayer3.Skin.Resolution[0] / Ptn;
|
||||
stRunners[i].nNowPtn = (int)stRunners[i].fX / Width;
|
||||
}
|
||||
if (Runner != null)
|
||||
{
|
||||
if (stRunners[i].nPlayer == 0)
|
||||
{
|
||||
Runner.t2D描画((int)(StartPoint_X[0] + stRunners[i].fX), StartPoint_Y[0], new Rectangle(stRunners[i].nNowPtn * Size[0], stRunners[i].nType * Size[1], Size[0], Size[1]));
|
||||
}
|
||||
else
|
||||
{
|
||||
Runner.t2D描画((int)(StartPoint_X[1] + stRunners[i].fX), StartPoint_Y[1], new Rectangle(stRunners[i].nNowPtn * Size[0], stRunners[i].nType * Size[1], Size[0], Size[1]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
#region[ private ]
|
||||
//-----------------
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private struct STRunner
|
||||
{
|
||||
public bool b使用中;
|
||||
public int nPlayer;
|
||||
public int nType;
|
||||
public int nOldValue;
|
||||
public int nNowPtn;
|
||||
public float fX;
|
||||
public CCounter ct進行;
|
||||
}
|
||||
private STRunner[] stRunners = new STRunner[128];
|
||||
Random random = new Random();
|
||||
int Index = 0;
|
||||
|
||||
private CTexture Runner;
|
||||
|
||||
private void LoadRunnerConifg(string dancerPath)
|
||||
{
|
||||
var _str = "";
|
||||
TJAPlayer3.Skin.LoadSkinConfigFromFile(dancerPath + @"\RunnerConfig.txt", ref _str);
|
||||
|
||||
string[] delimiter = { "\n" };
|
||||
string[] strSingleLine = _str.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
|
||||
|
||||
Size = new int[2] { 60, 125 };
|
||||
Ptn = 48;
|
||||
Type = 4;
|
||||
StartPoint_X = new int[2] { 175, 175 };
|
||||
StartPoint_Y = new int[2] { 40, 560 };
|
||||
Timer = 16;
|
||||
|
||||
foreach (string s in strSingleLine)
|
||||
{
|
||||
string str = s.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' });
|
||||
if ((str.Length != 0) && (str[0] != ';'))
|
||||
{
|
||||
try
|
||||
{
|
||||
string strCommand;
|
||||
string strParam;
|
||||
string[] strArray = str.Split(new char[] { '=' });
|
||||
|
||||
if (strArray.Length == 2)
|
||||
{
|
||||
strCommand = strArray[0].Trim();
|
||||
strParam = strArray[1].Trim();
|
||||
|
||||
if (strCommand == "Game_Runner_Size")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
Size[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "Game_Runner_Ptn")
|
||||
{
|
||||
Ptn = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "Game_Runner_Type")
|
||||
{
|
||||
Type = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "Game_Runner_Timer")
|
||||
{
|
||||
Timer = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "Game_Runner_StartPoint_X")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
StartPoint_X[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "Game_Runner_StartPoint_Y")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
StartPoint_Y[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
continue;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Trace.TraceError(exception.ToString());
|
||||
Trace.TraceError("例外が発生しましたが処理を継続します。 (6a32cc37-1527-412e-968a-512c1f0135cd)");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ランナー画像のサイズ。 X, Y
|
||||
private int[] Size;
|
||||
// ランナーのコマ数
|
||||
private int Ptn;
|
||||
// ランナーのキャラクターのバリエーション(ミス時を含まない)。
|
||||
private int Type;
|
||||
private int Timer;
|
||||
// スタート地点のX座標 1P, 2P
|
||||
private int[] StartPoint_X;
|
||||
// スタート地点のY座標 1P, 2P
|
||||
private int[] StartPoint_Y;
|
||||
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using System.Runtime.InteropServices;
|
||||
using FDK;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CActImplRunner : CActivity
|
||||
{
|
||||
/// <summary>
|
||||
/// ランナー
|
||||
/// </summary>
|
||||
public CActImplRunner()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
||||
|
||||
public void Start(int Player, bool IsMiss, CDTX.CChip pChip)
|
||||
{
|
||||
if (Runner != null && !TJAPlayer3.ConfigIni.SimpleMode)
|
||||
{
|
||||
while (stRunners[Index].b使用中)
|
||||
{
|
||||
Index += 1;
|
||||
if (Index >= 128)
|
||||
{
|
||||
Index = 0;
|
||||
break; // 2018.6.15 IMARER 無限ループが発生するので修正
|
||||
}
|
||||
}
|
||||
if (pChip.nチャンネル番号 < 0x15 || (pChip.nチャンネル番号 >= 0x1A))
|
||||
{
|
||||
if (!stRunners[Index].b使用中)
|
||||
{
|
||||
stRunners[Index].b使用中 = true;
|
||||
stRunners[Index].nPlayer = Player;
|
||||
if (IsMiss == true)
|
||||
{
|
||||
stRunners[Index].nType = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
stRunners[Index].nType = random.Next(1, Type + 1);
|
||||
}
|
||||
stRunners[Index].ct進行 = new CCounter(0, TJAPlayer3.Skin.Resolution[0], Timer, TJAPlayer3.Timer);
|
||||
stRunners[Index].nOldValue = 0;
|
||||
stRunners[Index].nNowPtn = 0;
|
||||
stRunners[Index].fX = 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public override void Activate()
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.SimpleMode)
|
||||
{
|
||||
base.Activate();
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 128; i++)
|
||||
{
|
||||
stRunners[i] = new STRunner();
|
||||
stRunners[i].b使用中 = false;
|
||||
stRunners[i].ct進行 = new CCounter();
|
||||
}
|
||||
|
||||
var preset = HScenePreset.GetBGPreset();
|
||||
|
||||
Random random = new Random();
|
||||
|
||||
var dancerOrigindir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.RUNNER}");
|
||||
if (System.IO.Directory.Exists($@"{dancerOrigindir}"))
|
||||
{
|
||||
var dirs = System.IO.Directory.GetDirectories($@"{dancerOrigindir}");
|
||||
if (dirs.Length > 0)
|
||||
{
|
||||
var _presetPath = (preset != null && preset.RunnerSet != null) ? $@"{dancerOrigindir}" + preset.RunnerSet[random.Next(0, preset.RunnerSet.Length)] : "";
|
||||
var path = (preset != null && System.IO.Directory.Exists(_presetPath))
|
||||
? _presetPath
|
||||
: dirs[random.Next(0, dirs.Length)];
|
||||
LoadRunnerConifg(path);
|
||||
|
||||
Runner = TJAPlayer3.tテクスチャの生成($@"{path}{Path.DirectorySeparatorChar}Runner.png");
|
||||
}
|
||||
}
|
||||
|
||||
// フィールド上で代入してたためこちらへ移動。
|
||||
base.Activate();
|
||||
}
|
||||
|
||||
public override void DeActivate()
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.SimpleMode)
|
||||
{
|
||||
base.DeActivate();
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 128; i++)
|
||||
{
|
||||
stRunners[i].ct進行 = null;
|
||||
}
|
||||
|
||||
TJAPlayer3.tDisposeSafely(ref Runner);
|
||||
|
||||
base.DeActivate();
|
||||
}
|
||||
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
|
||||
public override int Draw()
|
||||
{
|
||||
if (TJAPlayer3.ConfigIni.SimpleMode)
|
||||
{
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
for (int i = 0; i < 128; i++)
|
||||
{
|
||||
if (stRunners[i].b使用中)
|
||||
{
|
||||
stRunners[i].nOldValue = stRunners[i].ct進行.CurrentValue;
|
||||
stRunners[i].ct進行.Tick();
|
||||
if (stRunners[i].ct進行.IsEnded || stRunners[i].fX > TJAPlayer3.Skin.Resolution[0])
|
||||
{
|
||||
stRunners[i].ct進行.Stop();
|
||||
stRunners[i].b使用中 = false;
|
||||
}
|
||||
for (int n = stRunners[i].nOldValue; n < stRunners[i].ct進行.CurrentValue; n++)
|
||||
{
|
||||
stRunners[i].fX += (float)TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[stRunners[i].nPlayer] / 18;
|
||||
int Width = TJAPlayer3.Skin.Resolution[0] / Ptn;
|
||||
stRunners[i].nNowPtn = (int)stRunners[i].fX / Width;
|
||||
}
|
||||
if (Runner != null)
|
||||
{
|
||||
if (stRunners[i].nPlayer == 0)
|
||||
{
|
||||
Runner.t2D描画((int)(StartPoint_X[0] + stRunners[i].fX), StartPoint_Y[0], new Rectangle(stRunners[i].nNowPtn * Size[0], stRunners[i].nType * Size[1], Size[0], Size[1]));
|
||||
}
|
||||
else
|
||||
{
|
||||
Runner.t2D描画((int)(StartPoint_X[1] + stRunners[i].fX), StartPoint_Y[1], new Rectangle(stRunners[i].nNowPtn * Size[0], stRunners[i].nType * Size[1], Size[0], Size[1]));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
#region[ private ]
|
||||
//-----------------
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
private struct STRunner
|
||||
{
|
||||
public bool b使用中;
|
||||
public int nPlayer;
|
||||
public int nType;
|
||||
public int nOldValue;
|
||||
public int nNowPtn;
|
||||
public float fX;
|
||||
public CCounter ct進行;
|
||||
}
|
||||
private STRunner[] stRunners = new STRunner[128];
|
||||
Random random = new Random();
|
||||
int Index = 0;
|
||||
|
||||
private CTexture Runner;
|
||||
|
||||
private void LoadRunnerConifg(string dancerPath)
|
||||
{
|
||||
var _str = "";
|
||||
TJAPlayer3.Skin.LoadSkinConfigFromFile(dancerPath + @"\RunnerConfig.txt", ref _str);
|
||||
|
||||
string[] delimiter = { "\n" };
|
||||
string[] strSingleLine = _str.Split(delimiter, StringSplitOptions.RemoveEmptyEntries);
|
||||
|
||||
Size = new int[2] { 60, 125 };
|
||||
Ptn = 48;
|
||||
Type = 4;
|
||||
StartPoint_X = new int[2] { 175, 175 };
|
||||
StartPoint_Y = new int[2] { 40, 560 };
|
||||
Timer = 16;
|
||||
|
||||
foreach (string s in strSingleLine)
|
||||
{
|
||||
string str = s.Replace('\t', ' ').TrimStart(new char[] { '\t', ' ' });
|
||||
if ((str.Length != 0) && (str[0] != ';'))
|
||||
{
|
||||
try
|
||||
{
|
||||
string strCommand;
|
||||
string strParam;
|
||||
string[] strArray = str.Split(new char[] { '=' });
|
||||
|
||||
if (strArray.Length == 2)
|
||||
{
|
||||
strCommand = strArray[0].Trim();
|
||||
strParam = strArray[1].Trim();
|
||||
|
||||
if (strCommand == "Game_Runner_Size")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
Size[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "Game_Runner_Ptn")
|
||||
{
|
||||
Ptn = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "Game_Runner_Type")
|
||||
{
|
||||
Type = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "Game_Runner_Timer")
|
||||
{
|
||||
Timer = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "Game_Runner_StartPoint_X")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
StartPoint_X[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "Game_Runner_StartPoint_Y")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
StartPoint_Y[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
continue;
|
||||
}
|
||||
catch (Exception exception)
|
||||
{
|
||||
Trace.TraceError(exception.ToString());
|
||||
Trace.TraceError("例外が発生しましたが処理を継続します。 (6a32cc37-1527-412e-968a-512c1f0135cd)");
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// ランナー画像のサイズ。 X, Y
|
||||
private int[] Size;
|
||||
// ランナーのコマ数
|
||||
private int Ptn;
|
||||
// ランナーのキャラクターのバリエーション(ミス時を含まない)。
|
||||
private int Type;
|
||||
private int Timer;
|
||||
// スタート地点のX座標 1P, 2P
|
||||
private int[] StartPoint_X;
|
||||
// スタート地点のY座標 1P, 2P
|
||||
private int[] StartPoint_Y;
|
||||
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -7,7 +7,7 @@ using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏Drumsスコア : CAct演奏スコア共通
|
||||
internal class CActImplScore : CAct演奏スコア共通
|
||||
{
|
||||
// CActivity 実装(共通クラスからの差分のみ)
|
||||
|
@ -1,266 +1,266 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
class CAct演奏Drumsスコアランク : CActivity
|
||||
{
|
||||
public override void Activate()
|
||||
{
|
||||
double RollTimems = 0;
|
||||
|
||||
/*
|
||||
foreach (var chip in TJAPlayer3.DTX.listChip)
|
||||
{
|
||||
if (NotesManager.IsRoll(chip))
|
||||
{
|
||||
RollTimems += (chip.nノーツ終了時刻ms - chip.n発声時刻ms) / 1000.0;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
for (int player = 0; player < 5; player++)
|
||||
{
|
||||
this.ScoreRank[player] = new int[] { 500000, 600000, 700000, 800000, 900000, 950000,
|
||||
Math.Max(1000000, (int)(TJAPlayer3.stage演奏ドラム画面.nAddScoreNiji[player] * TJAPlayer3.stage演奏ドラム画面.nNoteCount[player]) + (int)(TJAPlayer3.stage演奏ドラム画面.nBalloonCount[player] * 100) + (int)(Math.Ceiling(TJAPlayer3.stage演奏ドラム画面.nRollTimeMs[player] * 16.6 / 10) * 100 * 10)) };
|
||||
|
||||
for (int i = 0; i < 7; i++)
|
||||
{
|
||||
this.counter[player][i] = new CCounter();
|
||||
}
|
||||
}
|
||||
base.Activate();
|
||||
}
|
||||
|
||||
public override void DeActivate()
|
||||
{
|
||||
base.DeActivate();
|
||||
}
|
||||
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
TowerResult_ScoreRankEffect = TJAPlayer3.tテクスチャの生成(CSkin.Path($"{TextureLoader.BASE}{TextureLoader.TOWERRESULT}ScoreRankEffect.png"));
|
||||
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
|
||||
TJAPlayer3.tDisposeSafely(ref TowerResult_ScoreRankEffect);
|
||||
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
|
||||
private void displayScoreRank(int i, int player, float x, float y, int mode = 0)
|
||||
{
|
||||
CCounter cct = this.counter[player][i];
|
||||
|
||||
CTexture tex = TJAPlayer3.Tx.ScoreRank;
|
||||
if (mode == 1) // tower
|
||||
tex = TowerResult_ScoreRankEffect;
|
||||
|
||||
if (tex == null)
|
||||
return;
|
||||
|
||||
if (!cct.IsTicked)
|
||||
{
|
||||
cct.Start(0, 3000, 1, TJAPlayer3.Timer);
|
||||
}
|
||||
if (cct.CurrentValue <= 255)
|
||||
{
|
||||
tex.Opacity = cct.CurrentValue;
|
||||
x = ((cct.CurrentValue / 255.0f) - 1.0f) * (player == 0 ? -TJAPlayer3.Skin.Game_Judge_Move[0] : TJAPlayer3.Skin.Game_Judge_Move[0]);
|
||||
y = ((cct.CurrentValue / 255.0f) - 1.0f) * (player == 0 ? -TJAPlayer3.Skin.Game_Judge_Move[1] : TJAPlayer3.Skin.Game_Judge_Move[1]);
|
||||
}
|
||||
if (cct.CurrentValue > 255 && cct.CurrentValue <= 255 + 180)
|
||||
{
|
||||
tex.Opacity = 255;
|
||||
|
||||
float newSize = 1.0f + (float)Math.Sin((cct.CurrentValue - 255) * (Math.PI / 180)) * 0.2f;
|
||||
tex.vcScaleRatio.X = newSize;
|
||||
tex.vcScaleRatio.Y = newSize;
|
||||
x = 0;
|
||||
y = 0;
|
||||
}
|
||||
if (cct.CurrentValue > 255 + 180 && cct.CurrentValue <= 2745)
|
||||
{
|
||||
tex.Opacity = 255;
|
||||
tex.vcScaleRatio.X = 1.0f;
|
||||
tex.vcScaleRatio.Y = 1.0f;
|
||||
x = 0;
|
||||
y = 0;
|
||||
}
|
||||
if (cct.CurrentValue >= 2745 && cct.CurrentValue <= 3000)
|
||||
{
|
||||
tex.Opacity = 255 - ((cct.CurrentValue - 2745));
|
||||
x = ((cct.CurrentValue - 2745) / 255.0f) * (player == 0 || TJAPlayer3.ConfigIni.nPlayerCount >= 2 ? -TJAPlayer3.Skin.Game_Judge_Move[0] : TJAPlayer3.Skin.Game_Judge_Move[0]);
|
||||
y = ((cct.CurrentValue - 2745) / 255.0f) * (player == 0 || TJAPlayer3.ConfigIni.nPlayerCount >= 2 ? -TJAPlayer3.Skin.Game_Judge_Move[1] : TJAPlayer3.Skin.Game_Judge_Move[1]);
|
||||
}
|
||||
|
||||
var xpos = 0;
|
||||
var ypos = 0;
|
||||
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
||||
{
|
||||
xpos = TJAPlayer3.Skin.Game_ScoreRank_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
|
||||
ypos = TJAPlayer3.Skin.Game_ScoreRank_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
|
||||
}
|
||||
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
||||
{
|
||||
xpos = TJAPlayer3.Skin.Game_ScoreRank_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
|
||||
ypos = TJAPlayer3.Skin.Game_ScoreRank_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
|
||||
}
|
||||
else
|
||||
{
|
||||
xpos = TJAPlayer3.Skin.Game_ScoreRank_X[player];
|
||||
ypos = TJAPlayer3.Skin.Game_ScoreRank_Y[player];
|
||||
}
|
||||
xpos += (int)x;
|
||||
ypos += (int)y;
|
||||
|
||||
int width;
|
||||
int height;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case 1:
|
||||
width = tex.szTextureSize.Width / 7;
|
||||
height = tex.szTextureSize.Height;
|
||||
break;
|
||||
default:
|
||||
width = tex.szTextureSize.Width;
|
||||
height = tex.szTextureSize.Height / 7;
|
||||
break;
|
||||
}
|
||||
|
||||
if (mode == 0)
|
||||
tex.t2D拡大率考慮中央基準描画(xpos, ypos, new System.Drawing.Rectangle(0, height * i, width, height));
|
||||
else if (mode == 1 && player == 0)
|
||||
tex.t2D拡大率考慮中央基準描画(xpos, ypos, new System.Drawing.Rectangle(width * i, 0, width, height));
|
||||
}
|
||||
|
||||
public override int Draw()
|
||||
{
|
||||
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Dan)
|
||||
{
|
||||
float x = 0;
|
||||
float y = 0;
|
||||
|
||||
for (int i = 0; i < 7; i++)
|
||||
{
|
||||
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Tower)
|
||||
{
|
||||
|
||||
for (int player = 0; player < 5; player++)
|
||||
{
|
||||
#region [Ensou score ranks]
|
||||
|
||||
counter[player][i].Tick();
|
||||
if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(player) >= ScoreRank[player][i])
|
||||
{
|
||||
displayScoreRank(i, player, x, y);
|
||||
|
||||
#region [Legacy]
|
||||
|
||||
/*
|
||||
if (!this.counter[i].b進行中)
|
||||
{
|
||||
this.counter[i].t開始(0, 3000, 1, TJAPlayer3.Timer);
|
||||
}
|
||||
if (counter[i].n現在の値 <= 255)
|
||||
{
|
||||
TJAPlayer3.Tx.ScoreRank.Opacity = counter[i].n現在の値;
|
||||
x = 51 - (counter[i].n現在の値 / 5.0f);
|
||||
}
|
||||
if (counter[i].n現在の値 > 255 && counter[i].n現在の値 <= 255 + 180)
|
||||
{
|
||||
TJAPlayer3.Tx.ScoreRank.Opacity = 255;
|
||||
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((counter[i].n現在の値 - 255) * (Math.PI / 180)) * 0.2f;
|
||||
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((counter[i].n現在の値 - 255) * (Math.PI / 180)) * 0.2f;
|
||||
x = 0;
|
||||
}
|
||||
if (counter[i].n現在の値 > 255 + 180 && counter[i].n現在の値 <= 2745)
|
||||
{
|
||||
TJAPlayer3.Tx.ScoreRank.Opacity = 255;
|
||||
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.X = 1.0f;
|
||||
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.Y = 1.0f;
|
||||
x = 0;
|
||||
}
|
||||
if (counter[i].n現在の値 >= 2745 && counter[i].n現在の値 <= 3000)
|
||||
{
|
||||
TJAPlayer3.Tx.ScoreRank.Opacity = 255 - ((counter[i].n現在の値 - 2745));
|
||||
x = -((counter[i].n現在の値 - 2745) / 5.0f);
|
||||
}
|
||||
|
||||
TJAPlayer3.Tx.ScoreRank.t2D拡大率考慮中央基準描画(87, 98 + (int)x, new System.Drawing.Rectangle(0, i == 0 ? i * 114 : i * 120, 140, i == 0 ? 114 : 120));
|
||||
*/
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
x = 0;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
else if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower)
|
||||
{
|
||||
#region [Tower score ranks]
|
||||
|
||||
double progress = CFloorManagement.LastRegisteredFloor / ((double)TJAPlayer3.stageSongSelect.rChoosenSong.arスコア[5].譜面情報.nTotalFloor);
|
||||
|
||||
bool[] conditions =
|
||||
{
|
||||
progress >= 0.1,
|
||||
progress >= 0.25,
|
||||
progress >= 0.5,
|
||||
progress >= 0.75,
|
||||
progress == 1 && CFloorManagement.CurrentNumberOfLives > 0,
|
||||
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMiss == 0 && TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMine == 0,
|
||||
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGood == 0
|
||||
};
|
||||
|
||||
counter[0][i].Tick();
|
||||
|
||||
bool satisfied = true;
|
||||
for (int j = 0; j <= i; j++)
|
||||
if (conditions[j] == false)
|
||||
{
|
||||
satisfied = false;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (satisfied == true)
|
||||
{
|
||||
displayScoreRank(i, 0, x, y, 1);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//TJAPlayer3.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, ScoreRank[6].ToString());
|
||||
//TJAPlayer3.act文字コンソール.tPrint(0, 10, C文字コンソール.Eフォント種別.白, ScoreRank2P[6].ToString());
|
||||
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
private CTexture TowerResult_ScoreRankEffect;
|
||||
|
||||
public int[][] ScoreRank = new int[5][];
|
||||
private CCounter[][] counter = new CCounter[5][] {
|
||||
new CCounter[7],
|
||||
new CCounter[7],
|
||||
new CCounter[7],
|
||||
new CCounter[7],
|
||||
new CCounter[7]
|
||||
};
|
||||
}
|
||||
}
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
class CActImplScoreRank : CActivity
|
||||
{
|
||||
public override void Activate()
|
||||
{
|
||||
double RollTimems = 0;
|
||||
|
||||
/*
|
||||
foreach (var chip in TJAPlayer3.DTX.listChip)
|
||||
{
|
||||
if (NotesManager.IsRoll(chip))
|
||||
{
|
||||
RollTimems += (chip.nノーツ終了時刻ms - chip.n発声時刻ms) / 1000.0;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
for (int player = 0; player < 5; player++)
|
||||
{
|
||||
this.ScoreRank[player] = new int[] { 500000, 600000, 700000, 800000, 900000, 950000,
|
||||
Math.Max(1000000, (int)(TJAPlayer3.stage演奏ドラム画面.nAddScoreNiji[player] * TJAPlayer3.stage演奏ドラム画面.nNoteCount[player]) + (int)(TJAPlayer3.stage演奏ドラム画面.nBalloonCount[player] * 100) + (int)(Math.Ceiling(TJAPlayer3.stage演奏ドラム画面.nRollTimeMs[player] * 16.6 / 10) * 100 * 10)) };
|
||||
|
||||
for (int i = 0; i < 7; i++)
|
||||
{
|
||||
this.counter[player][i] = new CCounter();
|
||||
}
|
||||
}
|
||||
base.Activate();
|
||||
}
|
||||
|
||||
public override void DeActivate()
|
||||
{
|
||||
base.DeActivate();
|
||||
}
|
||||
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
TowerResult_ScoreRankEffect = TJAPlayer3.tテクスチャの生成(CSkin.Path($"{TextureLoader.BASE}{TextureLoader.TOWERRESULT}ScoreRankEffect.png"));
|
||||
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
|
||||
TJAPlayer3.tDisposeSafely(ref TowerResult_ScoreRankEffect);
|
||||
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
|
||||
private void displayScoreRank(int i, int player, float x, float y, int mode = 0)
|
||||
{
|
||||
CCounter cct = this.counter[player][i];
|
||||
|
||||
CTexture tex = TJAPlayer3.Tx.ScoreRank;
|
||||
if (mode == 1) // tower
|
||||
tex = TowerResult_ScoreRankEffect;
|
||||
|
||||
if (tex == null)
|
||||
return;
|
||||
|
||||
if (!cct.IsTicked)
|
||||
{
|
||||
cct.Start(0, 3000, 1, TJAPlayer3.Timer);
|
||||
}
|
||||
if (cct.CurrentValue <= 255)
|
||||
{
|
||||
tex.Opacity = cct.CurrentValue;
|
||||
x = ((cct.CurrentValue / 255.0f) - 1.0f) * (player == 0 ? -TJAPlayer3.Skin.Game_Judge_Move[0] : TJAPlayer3.Skin.Game_Judge_Move[0]);
|
||||
y = ((cct.CurrentValue / 255.0f) - 1.0f) * (player == 0 ? -TJAPlayer3.Skin.Game_Judge_Move[1] : TJAPlayer3.Skin.Game_Judge_Move[1]);
|
||||
}
|
||||
if (cct.CurrentValue > 255 && cct.CurrentValue <= 255 + 180)
|
||||
{
|
||||
tex.Opacity = 255;
|
||||
|
||||
float newSize = 1.0f + (float)Math.Sin((cct.CurrentValue - 255) * (Math.PI / 180)) * 0.2f;
|
||||
tex.vcScaleRatio.X = newSize;
|
||||
tex.vcScaleRatio.Y = newSize;
|
||||
x = 0;
|
||||
y = 0;
|
||||
}
|
||||
if (cct.CurrentValue > 255 + 180 && cct.CurrentValue <= 2745)
|
||||
{
|
||||
tex.Opacity = 255;
|
||||
tex.vcScaleRatio.X = 1.0f;
|
||||
tex.vcScaleRatio.Y = 1.0f;
|
||||
x = 0;
|
||||
y = 0;
|
||||
}
|
||||
if (cct.CurrentValue >= 2745 && cct.CurrentValue <= 3000)
|
||||
{
|
||||
tex.Opacity = 255 - ((cct.CurrentValue - 2745));
|
||||
x = ((cct.CurrentValue - 2745) / 255.0f) * (player == 0 || TJAPlayer3.ConfigIni.nPlayerCount >= 2 ? -TJAPlayer3.Skin.Game_Judge_Move[0] : TJAPlayer3.Skin.Game_Judge_Move[0]);
|
||||
y = ((cct.CurrentValue - 2745) / 255.0f) * (player == 0 || TJAPlayer3.ConfigIni.nPlayerCount >= 2 ? -TJAPlayer3.Skin.Game_Judge_Move[1] : TJAPlayer3.Skin.Game_Judge_Move[1]);
|
||||
}
|
||||
|
||||
var xpos = 0;
|
||||
var ypos = 0;
|
||||
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
|
||||
{
|
||||
xpos = TJAPlayer3.Skin.Game_ScoreRank_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * player);
|
||||
ypos = TJAPlayer3.Skin.Game_ScoreRank_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * player);
|
||||
}
|
||||
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
|
||||
{
|
||||
xpos = TJAPlayer3.Skin.Game_ScoreRank_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * player);
|
||||
ypos = TJAPlayer3.Skin.Game_ScoreRank_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * player);
|
||||
}
|
||||
else
|
||||
{
|
||||
xpos = TJAPlayer3.Skin.Game_ScoreRank_X[player];
|
||||
ypos = TJAPlayer3.Skin.Game_ScoreRank_Y[player];
|
||||
}
|
||||
xpos += (int)x;
|
||||
ypos += (int)y;
|
||||
|
||||
int width;
|
||||
int height;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case 1:
|
||||
width = tex.szTextureSize.Width / 7;
|
||||
height = tex.szTextureSize.Height;
|
||||
break;
|
||||
default:
|
||||
width = tex.szTextureSize.Width;
|
||||
height = tex.szTextureSize.Height / 7;
|
||||
break;
|
||||
}
|
||||
|
||||
if (mode == 0)
|
||||
tex.t2D拡大率考慮中央基準描画(xpos, ypos, new System.Drawing.Rectangle(0, height * i, width, height));
|
||||
else if (mode == 1 && player == 0)
|
||||
tex.t2D拡大率考慮中央基準描画(xpos, ypos, new System.Drawing.Rectangle(width * i, 0, width, height));
|
||||
}
|
||||
|
||||
public override int Draw()
|
||||
{
|
||||
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Dan)
|
||||
{
|
||||
float x = 0;
|
||||
float y = 0;
|
||||
|
||||
for (int i = 0; i < 7; i++)
|
||||
{
|
||||
if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] != (int)Difficulty.Tower)
|
||||
{
|
||||
|
||||
for (int player = 0; player < 5; player++)
|
||||
{
|
||||
#region [Ensou score ranks]
|
||||
|
||||
counter[player][i].Tick();
|
||||
if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(player) >= ScoreRank[player][i])
|
||||
{
|
||||
displayScoreRank(i, player, x, y);
|
||||
|
||||
#region [Legacy]
|
||||
|
||||
/*
|
||||
if (!this.counter[i].b進行中)
|
||||
{
|
||||
this.counter[i].t開始(0, 3000, 1, TJAPlayer3.Timer);
|
||||
}
|
||||
if (counter[i].n現在の値 <= 255)
|
||||
{
|
||||
TJAPlayer3.Tx.ScoreRank.Opacity = counter[i].n現在の値;
|
||||
x = 51 - (counter[i].n現在の値 / 5.0f);
|
||||
}
|
||||
if (counter[i].n現在の値 > 255 && counter[i].n現在の値 <= 255 + 180)
|
||||
{
|
||||
TJAPlayer3.Tx.ScoreRank.Opacity = 255;
|
||||
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((counter[i].n現在の値 - 255) * (Math.PI / 180)) * 0.2f;
|
||||
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((counter[i].n現在の値 - 255) * (Math.PI / 180)) * 0.2f;
|
||||
x = 0;
|
||||
}
|
||||
if (counter[i].n現在の値 > 255 + 180 && counter[i].n現在の値 <= 2745)
|
||||
{
|
||||
TJAPlayer3.Tx.ScoreRank.Opacity = 255;
|
||||
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.X = 1.0f;
|
||||
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.Y = 1.0f;
|
||||
x = 0;
|
||||
}
|
||||
if (counter[i].n現在の値 >= 2745 && counter[i].n現在の値 <= 3000)
|
||||
{
|
||||
TJAPlayer3.Tx.ScoreRank.Opacity = 255 - ((counter[i].n現在の値 - 2745));
|
||||
x = -((counter[i].n現在の値 - 2745) / 5.0f);
|
||||
}
|
||||
|
||||
TJAPlayer3.Tx.ScoreRank.t2D拡大率考慮中央基準描画(87, 98 + (int)x, new System.Drawing.Rectangle(0, i == 0 ? i * 114 : i * 120, 140, i == 0 ? 114 : 120));
|
||||
*/
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
x = 0;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
else if (TJAPlayer3.stageSongSelect.nChoosenSongDifficulty[0] == (int)Difficulty.Tower)
|
||||
{
|
||||
#region [Tower score ranks]
|
||||
|
||||
double progress = CFloorManagement.LastRegisteredFloor / ((double)TJAPlayer3.stageSongSelect.rChoosenSong.arスコア[5].譜面情報.nTotalFloor);
|
||||
|
||||
bool[] conditions =
|
||||
{
|
||||
progress >= 0.1,
|
||||
progress >= 0.25,
|
||||
progress >= 0.5,
|
||||
progress >= 0.75,
|
||||
progress == 1 && CFloorManagement.CurrentNumberOfLives > 0,
|
||||
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMiss == 0 && TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nMine == 0,
|
||||
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGood == 0
|
||||
};
|
||||
|
||||
counter[0][i].Tick();
|
||||
|
||||
bool satisfied = true;
|
||||
for (int j = 0; j <= i; j++)
|
||||
if (conditions[j] == false)
|
||||
{
|
||||
satisfied = false;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (satisfied == true)
|
||||
{
|
||||
displayScoreRank(i, 0, x, y, 1);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//TJAPlayer3.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, ScoreRank[6].ToString());
|
||||
//TJAPlayer3.act文字コンソール.tPrint(0, 10, C文字コンソール.Eフォント種別.白, ScoreRank2P[6].ToString());
|
||||
|
||||
return base.Draw();
|
||||
}
|
||||
|
||||
private CTexture TowerResult_ScoreRankEffect;
|
||||
|
||||
public int[][] ScoreRank = new int[5][];
|
||||
private CCounter[][] counter = new CCounter[5][] {
|
||||
new CCounter[7],
|
||||
new CCounter[7],
|
||||
new CCounter[7],
|
||||
new CCounter[7],
|
||||
new CCounter[7]
|
||||
};
|
||||
}
|
||||
}
|
@ -9,9 +9,9 @@ using System.Drawing;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
class CAct演奏DrumsTrainingMode : CActivity
|
||||
class CActImplTrainingMode : CActivity
|
||||
{
|
||||
public CAct演奏DrumsTrainingMode()
|
||||
public CActImplTrainingMode()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
@ -1,74 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Drawing;
|
||||
using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏DrumsDanger : CAct演奏Danger共通
|
||||
{
|
||||
// コンストラクタ
|
||||
|
||||
//public CAct演奏DrumsDanger()
|
||||
//{
|
||||
// base.b活性化してない = true;
|
||||
//}
|
||||
|
||||
|
||||
// CActivity 実装
|
||||
|
||||
//public override void On活性化()
|
||||
//{
|
||||
// this.bDanger中 = false;
|
||||
// this.ct移動用 = new CCounter();
|
||||
// this.ct透明度用 = new CCounter();
|
||||
// base.On活性化();
|
||||
//}
|
||||
//public override void On非活性化()
|
||||
//{
|
||||
// this.ct移動用 = null;
|
||||
// this.ct透明度用 = null;
|
||||
// base.On非活性化();
|
||||
//}
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
TJAPlayer3.tテクスチャの解放( ref this.txDANGER );
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
public override int Draw()
|
||||
{
|
||||
throw new InvalidOperationException( "t進行描画(bool)のほうを使用してください。" );
|
||||
}
|
||||
/// <summary>
|
||||
/// ドラム画面のDANGER描画
|
||||
/// </summary>
|
||||
/// <param name="bIsDangerDrums">DrumsのゲージがDangerかどうか(Guitar/Bassと共用のゲージ)</param>
|
||||
/// <param name="bIsDangerGuitar">Guitarのゲージ(未使用)</param>
|
||||
/// <param name="bIsDangerBass">Bassのゲージ(未使用)</param>
|
||||
/// <returns></returns>
|
||||
public override int t進行描画( bool bIsDangerDrums, bool bIsDangerGuitar, bool bIsDangerBass )
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// その他
|
||||
|
||||
#region [ private ]
|
||||
//-----------------
|
||||
//private bool bDanger中;
|
||||
//private CCounter ct移動用;
|
||||
//private CCounter ct透明度用;
|
||||
// private const int n右位置 = 0x12a;
|
||||
// private const int n左位置 = 0x26;
|
||||
private readonly Rectangle[] rc領域 = new Rectangle[] { new Rectangle( 0, 0, 0x20, 0x40 ), new Rectangle( 0x20, 0, 0x20, 0x40 ) };
|
||||
private CTexture txDANGER;
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏Drumsグラフ : CActivity
|
||||
{
|
||||
|
||||
// コンストラクタ
|
||||
|
||||
public CAct演奏Drumsグラフ()
|
||||
{
|
||||
base.IsDeActivated = true;
|
||||
}
|
||||
|
||||
|
||||
// CActivity 実装
|
||||
|
||||
public override void Activate()
|
||||
{
|
||||
base.Activate();
|
||||
}
|
||||
public override void DeActivate()
|
||||
{
|
||||
base.DeActivate();
|
||||
}
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
public override int Draw()
|
||||
{
|
||||
if( !base.IsDeActivated )
|
||||
{
|
||||
if( base.IsFirstDraw )
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// その他
|
||||
|
||||
#region [ private ]
|
||||
//----------------
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -1,25 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏DrumsコンボDGB : CAct演奏Combo共通
|
||||
{
|
||||
// CAct演奏Combo共通 実装
|
||||
|
||||
protected override void tコンボ表示_ギター( int nCombo値, int nジャンプインデックス )
|
||||
{
|
||||
}
|
||||
protected override void tコンボ表示_ドラム( int nCombo値, int nジャンプインデックス )
|
||||
{
|
||||
}
|
||||
protected override void tコンボ表示_ベース( int nCombo値, int nジャンプインデックス )
|
||||
{
|
||||
}
|
||||
protected override void tコンボ表示_太鼓(int nCombo値, int nジャンプインデックス, int nPlayer)
|
||||
{
|
||||
base.tコンボ表示_太鼓( nCombo値, nジャンプインデックス, nPlayer );
|
||||
}
|
||||
}
|
||||
}
|
@ -1,44 +0,0 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Drawing;
|
||||
|
||||
using FDK;
|
||||
|
||||
namespace TJAPlayer3
|
||||
{
|
||||
internal class CAct演奏Drumsステータスパネル : CAct演奏ステータスパネル共通
|
||||
{
|
||||
// コンストラクタ
|
||||
public override void Activate()
|
||||
{
|
||||
|
||||
base.Activate();
|
||||
}
|
||||
|
||||
public override void CreateManagedResource()
|
||||
{
|
||||
base.CreateManagedResource();
|
||||
}
|
||||
public override void ReleaseManagedResource()
|
||||
{
|
||||
base.ReleaseManagedResource();
|
||||
}
|
||||
public override int Draw()
|
||||
{
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
// その他
|
||||
|
||||
#region [ private ]
|
||||
//-----------------
|
||||
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
||||
}
|
@ -25,17 +25,14 @@ namespace TJAPlayer3
|
||||
base.eStageID = CStage.EStage.Game;
|
||||
base.ePhaseID = CStage.EPhase.Common_NORMAL;
|
||||
base.IsDeActivated = true;
|
||||
base.ChildActivities.Add( this.actPad = new CAct演奏Drumsパッド() );
|
||||
base.ChildActivities.Add( this.actCombo = new CAct演奏DrumsコンボDGB() );
|
||||
base.ChildActivities.Add( this.actDANGER = new CAct演奏DrumsDanger() );
|
||||
base.ChildActivities.Add( this.actChipFireD = new CAct演奏DrumsチップファイアD() );
|
||||
base.ChildActivities.Add( this.actPad = new CActImplPad() );
|
||||
base.ChildActivities.Add( this.actCombo = new CActImplCombo() );
|
||||
base.ChildActivities.Add( this.actChipFireD = new CActImplFireworks() );
|
||||
base.ChildActivities.Add( this.Rainbow = new Rainbow() );
|
||||
base.ChildActivities.Add( this.actGauge = new CAct演奏Drumsゲージ() );
|
||||
base.ChildActivities.Add( this.actGraph = new CAct演奏Drumsグラフ() ); // #24074 2011.01.23 add ikanick
|
||||
base.ChildActivities.Add( this.actJudgeString = new CAct演奏Drums判定文字列() );
|
||||
base.ChildActivities.Add( this.actGauge = new CActImplGauge() );
|
||||
base.ChildActivities.Add( this.actJudgeString = new CActImplJudgeText() );
|
||||
base.ChildActivities.Add( this.actTaikoLaneFlash = new TaikoLaneFlash() );
|
||||
base.ChildActivities.Add( this.actScore = new CAct演奏Drumsスコア() );
|
||||
base.ChildActivities.Add( this.actStatusPanels = new CAct演奏Drumsステータスパネル() );
|
||||
base.ChildActivities.Add( this.actScore = new CActImplScore() );
|
||||
base.ChildActivities.Add( this.act譜面スクロール速度 = new CAct演奏スクロール速度() );
|
||||
base.ChildActivities.Add( this.actAVI = new CAct演奏AVI() );
|
||||
base.ChildActivities.Add( this.actPanel = new CAct演奏パネル文字列() );
|
||||
@ -45,32 +42,32 @@ namespace TJAPlayer3
|
||||
base.ChildActivities.Add( this.actFI = new CActFIFOStart() );
|
||||
base.ChildActivities.Add( this.actFO = new CActFIFOBlack() );
|
||||
base.ChildActivities.Add( this.actFOClear = new CActFIFOResult() );
|
||||
base.ChildActivities.Add( this.actLane = new CAct演奏Drumsレーン() );
|
||||
base.ChildActivities.Add( this.actEnd = new CAct演奏Drums演奏終了演出() );
|
||||
base.ChildActivities.Add( this.actDancer = new CAct演奏DrumsDancer() );
|
||||
base.ChildActivities.Add( this.actMtaiko = new CAct演奏DrumsMtaiko() );
|
||||
base.ChildActivities.Add( this.actLaneTaiko = new CAct演奏Drumsレーン太鼓() );
|
||||
base.ChildActivities.Add( this.actRoll = new CAct演奏Drums連打() );
|
||||
base.ChildActivities.Add( this.actBalloon = new CAct演奏Drums風船() );
|
||||
base.ChildActivities.Add( this.actChara = new CAct演奏Drumsキャラクター() );
|
||||
base.ChildActivities.Add( this.actLane = new CActImplLane() );
|
||||
base.ChildActivities.Add( this.actEnd = new CActImplClearAnimation() );
|
||||
base.ChildActivities.Add( this.actDancer = new CActImplDancer() );
|
||||
base.ChildActivities.Add( this.actMtaiko = new CActImplMtaiko() );
|
||||
base.ChildActivities.Add( this.actLaneTaiko = new CActImplLaneTaiko() );
|
||||
base.ChildActivities.Add( this.actRoll = new CActImplRoll() );
|
||||
base.ChildActivities.Add( this.actBalloon = new CActImplBalloon() );
|
||||
base.ChildActivities.Add( this.actChara = new CActImplCharacter() );
|
||||
base.ChildActivities.Add( this.actGame = new CAct演奏Drumsゲームモード() );
|
||||
base.ChildActivities.Add( this.actBackground = new CAct演奏Drums背景() );
|
||||
base.ChildActivities.Add( this.actRollChara = new CAct演奏Drums連打キャラ() );
|
||||
base.ChildActivities.Add( this.actComboBalloon = new CAct演奏Drumsコンボ吹き出し() );
|
||||
base.ChildActivities.Add( this.actBackground = new CActImplBackground() );
|
||||
base.ChildActivities.Add( this.actRollChara = new CActImplRollEffect() );
|
||||
base.ChildActivities.Add( this.actComboBalloon = new CActImplComboBalloon() );
|
||||
base.ChildActivities.Add( this.actComboVoice = new CAct演奏Combo音声() );
|
||||
base.ChildActivities.Add( this.actPauseMenu = new CAct演奏PauseMenu() );
|
||||
base.ChildActivities.Add(this.actChipEffects = new CAct演奏Drumsチップエフェクト());
|
||||
base.ChildActivities.Add(this.actFooter = new CAct演奏DrumsFooter());
|
||||
base.ChildActivities.Add(this.actRunner = new CAct演奏DrumsRunner());
|
||||
base.ChildActivities.Add(this.actMob = new CAct演奏DrumsMob());
|
||||
base.ChildActivities.Add(this.actChipEffects = new CActImplChipEffects());
|
||||
base.ChildActivities.Add(this.actFooter = new CActImplFooter());
|
||||
base.ChildActivities.Add(this.actRunner = new CActImplRunner());
|
||||
base.ChildActivities.Add(this.actMob = new CActImplMob());
|
||||
base.ChildActivities.Add(this.GoGoSplash = new GoGoSplash());
|
||||
base.ChildActivities.Add(this.FlyingNotes = new FlyingNotes());
|
||||
base.ChildActivities.Add(this.FireWorks = new FireWorks());
|
||||
base.ChildActivities.Add(this.PuchiChara = new PuchiChara());
|
||||
base.ChildActivities.Add(this.ScoreRank = new CAct演奏Drumsスコアランク());
|
||||
base.ChildActivities.Add(this.ScoreRank = new CActImplScoreRank());
|
||||
|
||||
base.ChildActivities.Add(this.actDan = new Dan_Cert());
|
||||
base.ChildActivities.Add(this.actTokkun = new CAct演奏DrumsTrainingMode());
|
||||
base.ChildActivities.Add(this.actTokkun = new CActImplTrainingMode());
|
||||
base.ChildActivities.Add(this.actAIBattle = new AIBattle());
|
||||
#region[ 文字初期化 ]
|
||||
ST文字位置[] st文字位置Array = new ST文字位置[ 12 ];
|
||||
@ -650,7 +647,7 @@ namespace TJAPlayer3
|
||||
if (HGaugeMethods.UNSAFE_IsRainbow(i))
|
||||
{
|
||||
double dbUnit = (((60.0 / (TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM[i]))));
|
||||
this.actChara.ChangeAnime(i, CAct演奏Drumsキャラクター.Anime.Combo10_Max, true);
|
||||
this.actChara.ChangeAnime(i, CActImplCharacter.Anime.Combo10_Max, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -658,14 +655,14 @@ namespace TJAPlayer3
|
||||
{
|
||||
if (TJAPlayer3.Skin.Characters_Become_Cleared_Ptn[Character] != 0)
|
||||
{
|
||||
this.actChara.ChangeAnime(i, CAct演奏Drumsキャラクター.Anime.Cleared, true);;
|
||||
this.actChara.ChangeAnime(i, CActImplCharacter.Anime.Cleared, true);;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (TJAPlayer3.Skin.Characters_ClearOut_Ptn[Character] != 0)
|
||||
{
|
||||
this.actChara.ChangeAnime(i, CAct演奏Drumsキャラクター.Anime.ClearOut, true);
|
||||
this.actChara.ChangeAnime(i, CActImplCharacter.Anime.ClearOut, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -707,22 +704,21 @@ namespace TJAPlayer3
|
||||
public char ch;
|
||||
public Point pt;
|
||||
}
|
||||
public CAct演奏DrumsチップファイアD actChipFireD;
|
||||
public CActImplFireworks actChipFireD;
|
||||
|
||||
private CAct演奏Drumsグラフ actGraph; // #24074 2011.01.23 add ikanick
|
||||
private CAct演奏Drumsパッド actPad;
|
||||
public CAct演奏Drumsレーン actLane;
|
||||
public CAct演奏DrumsMtaiko actMtaiko;
|
||||
public CAct演奏Drumsレーン太鼓 actLaneTaiko;
|
||||
public CAct演奏Drums演奏終了演出 actEnd;
|
||||
private CActImplPad actPad;
|
||||
public CActImplLane actLane;
|
||||
public CActImplMtaiko actMtaiko;
|
||||
public CActImplLaneTaiko actLaneTaiko;
|
||||
public CActImplClearAnimation actEnd;
|
||||
private CAct演奏Drumsゲームモード actGame;
|
||||
public CAct演奏DrumsTrainingMode actTokkun;
|
||||
public CAct演奏Drums背景 actBackground;
|
||||
public CActImplTrainingMode actTokkun;
|
||||
public CActImplBackground actBackground;
|
||||
public GoGoSplash GoGoSplash;
|
||||
public FlyingNotes FlyingNotes;
|
||||
public FireWorks FireWorks;
|
||||
public PuchiChara PuchiChara;
|
||||
public CAct演奏Drumsスコアランク ScoreRank;
|
||||
public CActImplScoreRank ScoreRank;
|
||||
private bool bフィルイン中;
|
||||
private readonly EPad[] eチャンネルtoパッド = new EPad[]
|
||||
{
|
||||
@ -910,10 +906,6 @@ namespace TJAPlayer3
|
||||
{
|
||||
base.t進行描画_AVI( 0, 0 );
|
||||
}
|
||||
protected override void t進行描画_DANGER()
|
||||
{
|
||||
this.actDANGER.t進行描画( this.actGauge.IsDanger(EInstrumentPad.DRUMS), false, false );
|
||||
}
|
||||
|
||||
private void t進行描画_チップファイアD()
|
||||
{
|
||||
@ -2545,10 +2537,10 @@ namespace TJAPlayer3
|
||||
this.n風船残り[i],
|
||||
i,
|
||||
NotesManager.IsFuzeRoll(chkChip)
|
||||
? CAct演奏Drums風船.EBalloonType.FUSEROLL
|
||||
? CActImplBalloon.EBalloonType.FUSEROLL
|
||||
: NotesManager.IsKusudama(chkChip)
|
||||
? CAct演奏Drums風船.EBalloonType.KUSUDAMA
|
||||
: CAct演奏Drums風船.EBalloonType.BALLOON
|
||||
? CActImplBalloon.EBalloonType.KUSUDAMA
|
||||
: CActImplBalloon.EBalloonType.BALLOON
|
||||
);
|
||||
}
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user