1
0
mirror of synced 2024-11-24 07:30:21 +01:00

多人数プレイに対応 (#378)

* 多人数プレイに対応

* 不具合の修正
This commit is contained in:
Takkkom 2023-02-15 09:27:05 +09:00 committed by GitHub
parent d27d46aa57
commit dbf8dc9471
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
108 changed files with 5293 additions and 1455 deletions

View File

@ -9,11 +9,11 @@ namespace TJAPlayer3
{
class CMenuCharacter
{
private static CCounter[] ctCharacterNormal = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterSelect = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterStart = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterEntry = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterEntryNormal = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterNormal = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterSelect = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterStart = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterEntry = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterEntryNormal = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() };
public enum ECharacterAnimation
{
@ -162,31 +162,31 @@ namespace TJAPlayer3
{
case (ECharacterAnimation.NORMAL):
{
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
ctCharacterNormal[i] = new CCounter();
break;
}
case (ECharacterAnimation.START):
{
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
ctCharacterStart[i] = new CCounter();
break;
}
case (ECharacterAnimation.SELECT):
{
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
ctCharacterSelect[i] = new CCounter();
break;
}
case (ECharacterAnimation.ENTRY):
{
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
ctCharacterEntry[i] = new CCounter();
break;
}
case (ECharacterAnimation.ENTRY_NORMAL):
{
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
ctCharacterEntryNormal[i] = new CCounter();
break;
}
@ -208,7 +208,7 @@ namespace TJAPlayer3
public static void tMenuResetTimer(ECharacterAnimation eca)
{
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
tMenuResetTimer(i, eca);
}

View File

@ -9,10 +9,10 @@ namespace TJAPlayer3
{
class CResultCharacter
{
private static CCounter[] ctCharacterNormal = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterClear = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterFailed = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterFailedIn = new CCounter[4] { new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterNormal = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterClear = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterFailed = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() };
private static CCounter[] ctCharacterFailedIn = new CCounter[5] { new CCounter(), new CCounter(), new CCounter(), new CCounter(), new CCounter() };
public enum ECharacterResult
@ -157,25 +157,25 @@ namespace TJAPlayer3
{
case (ECharacterResult.NORMAL):
{
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
ctCharacterNormal[i] = new CCounter();
break;
}
case (ECharacterResult.CLEAR):
{
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
ctCharacterClear[i] = new CCounter();
break;
}
case (ECharacterResult.FAILED):
{
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
ctCharacterFailed[i] = new CCounter();
break;
}
case (ECharacterResult.FAILED_IN):
{
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
ctCharacterFailedIn[i] = new CCounter();
break;
}
@ -241,7 +241,7 @@ namespace TJAPlayer3
_tex.vc拡大縮小倍率.X *= resolutionRatioX;
_tex.vc拡大縮小倍率.Y *= resolutionRatioY;
if (pos % 2 == 0)
if (pos % 2 == 0 || TJAPlayer3.ConfigIni.nPlayerCount > 2)
{
_tex.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device,
_x,

View File

@ -64,7 +64,7 @@ namespace TJAPlayer3
/// <param name="y">Y座標(中央)</param>
/// <param name="alpha">不透明度</param>
/// <returns></returns>
public int On進行描画(int x, int y, bool isGrowing, int alpha = 255, bool isBalloon = false, int player = 0)
public int On進行描画(int x, int y, bool isGrowing, int alpha = 255, bool isBalloon = false, int player = 0, float scale = 1.0f)
{
if (!TJAPlayer3.ConfigIni.ShowPuchiChara) return base.On進行描画();
if (Counter == null || SineCounter == null || TJAPlayer3.Tx.Puchichara == null) return base.On進行描画();
@ -103,6 +103,8 @@ namespace TJAPlayer3
float puchiScale = TJAPlayer3.Skin.Resolution[1] / 720.0f;
chara.vc拡大縮小倍率 = new Vector3((isBalloon ? TJAPlayer3.Skin.Game_PuchiChara_Scale[1] * puchiScale : TJAPlayer3.Skin.Game_PuchiChara_Scale[0] * puchiScale));
chara.vc拡大縮小倍率.X *= scale;
chara.vc拡大縮小倍率.Y *= scale;
chara.Opacity = alpha;
// (isGrowing ? TJAPlayer3.Skin.Game_PuchiChara[1] : 0) => Height

View File

@ -332,6 +332,141 @@ namespace TJAPlayer3
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftRed3P
{
get
{
return this.padLRed3P;
}
set
{
this.padLRed3P = value;
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] RightRed3P
{
get
{
return this.padRRed3P;
}
set
{
this.padRRed3P = value;
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftBlue3P
{
get
{
return this.padLBlue3P;
}
set
{
this.padLBlue3P = value;
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] RightBlue3P
{
get
{
return this.padRBlue3P;
}
set
{
this.padRBlue3P = value;
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftRed4P
{
get
{
return this.padLRed4P;
}
set
{
this.padLRed4P = value;
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] RightRed4P
{
get
{
return this.padRRed4P;
}
set
{
this.padRRed4P = value;
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftBlue4P
{
get
{
return this.padLBlue4P;
}
set
{
this.padLBlue4P = value;
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] RightBlue4P
{
get
{
return this.padRBlue4P;
}
set
{
this.padRBlue4P = value;
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftRed5P
{
get
{
return this.padLRed5P;
}
set
{
this.padLRed5P = value;
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] RightRed5P
{
get
{
return this.padRRed5P;
}
set
{
this.padRRed5P = value;
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftBlue5P
{
get
{
return this.padLBlue5P;
}
set
{
this.padLBlue5P = value;
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] RightBlue5P
{
get
{
return this.padRBlue5P;
}
set
{
this.padRBlue5P = value;
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] Clap
{
get
@ -356,6 +491,42 @@ namespace TJAPlayer3
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] Clap3P
{
get
{
return this.padClap3P;
}
set
{
this.padClap3P = value;
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] Clap4P
{
get
{
return this.padClap4P;
}
set
{
this.padClap4P = value;
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] Clap5P
{
get
{
return this.padClap5P;
}
set
{
this.padClap5P = value;
}
}
public CConfigIni.CKeyAssign.STKEYASSIGN[] LeftChange
{
get
@ -446,12 +617,57 @@ namespace TJAPlayer3
case (int) EKeyConfigPad.RBlue2P:
return this.padRBlue2P;
case (int)EKeyConfigPad.LRed3P:
return this.padLRed3P;
case (int)EKeyConfigPad.RRed3P:
return this.padRRed3P;
case (int)EKeyConfigPad.LBlue3P:
return this.padLBlue3P;
case (int)EKeyConfigPad.RBlue3P:
return this.padRBlue3P;
case (int)EKeyConfigPad.LRed4P:
return this.padLRed4P;
case (int)EKeyConfigPad.RRed4P:
return this.padRRed4P;
case (int)EKeyConfigPad.LBlue4P:
return this.padLBlue4P;
case (int)EKeyConfigPad.RBlue4P:
return this.padRBlue4P;
case (int)EKeyConfigPad.LRed5P:
return this.padLRed5P;
case (int)EKeyConfigPad.RRed5P:
return this.padRRed5P;
case (int)EKeyConfigPad.LBlue5P:
return this.padLBlue5P;
case (int)EKeyConfigPad.RBlue5P:
return this.padRBlue5P;
case (int)EKeyConfigPad.Clap:
return this.padClap;
case (int)EKeyConfigPad.Clap2P:
return this.padClap2P;
case (int)EKeyConfigPad.Clap3P:
return this.padClap3P;
case (int)EKeyConfigPad.Clap4P:
return this.padClap4P;
case (int)EKeyConfigPad.Clap5P:
return this.padClap5P;
case (int)EKeyConfigPad.LeftChange:
return this.padLeftChange;
@ -545,6 +761,54 @@ namespace TJAPlayer3
case (int) EKeyConfigPad.RBlue2P:
this.padRBlue2P = value;
return;
case (int)EKeyConfigPad.LRed3P:
this.padLRed3P = value;
return;
case (int)EKeyConfigPad.RRed3P:
this.padRRed3P = value;
return;
case (int)EKeyConfigPad.LBlue3P:
this.padLBlue3P = value;
return;
case (int)EKeyConfigPad.RBlue3P:
this.padRBlue3P = value;
return;
case (int)EKeyConfigPad.LRed4P:
this.padLRed4P = value;
return;
case (int)EKeyConfigPad.RRed4P:
this.padRRed4P = value;
return;
case (int)EKeyConfigPad.LBlue4P:
this.padLBlue4P = value;
return;
case (int)EKeyConfigPad.RBlue4P:
this.padRBlue4P = value;
return;
case (int)EKeyConfigPad.LRed5P:
this.padLRed5P = value;
return;
case (int)EKeyConfigPad.RRed5P:
this.padRRed5P = value;
return;
case (int)EKeyConfigPad.LBlue5P:
this.padLBlue5P = value;
return;
case (int)EKeyConfigPad.RBlue5P:
this.padRBlue5P = value;
return;
case (int)EKeyConfigPad.Clap:
@ -555,6 +819,18 @@ namespace TJAPlayer3
this.padClap2P = value;
return;
case (int)EKeyConfigPad.Clap3P:
this.padClap3P = value;
return;
case (int)EKeyConfigPad.Clap4P:
this.padClap4P = value;
return;
case (int)EKeyConfigPad.Clap5P:
this.padClap5P = value;
return;
case (int)EKeyConfigPad.LeftChange:
this.padLeftChange = value;
return;
@ -585,16 +861,37 @@ namespace TJAPlayer3
private CConfigIni.CKeyAssign.STKEYASSIGN[] padSD_G;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLP;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBD;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRBlue;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed2P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue2P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed2P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRBlue2P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed3P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue3P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed3P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRBlue3P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed4P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue4P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed4P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRBlue4P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLRed5P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLBlue5P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRRed5P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRBlue5P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padClap;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padClap2P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padClap3P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padClap4P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padClap5P;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padLeftChange;
private CConfigIni.CKeyAssign.STKEYASSIGN[] padRightChange;
@ -762,7 +1059,7 @@ namespace TJAPlayer3
public int nウインドウheight; // #23510 2010.10.31 yyagi add
public Dictionary<int, string> dicJoystick;
public Eダークモード eDark;
public STDGBVALUE<Eランダムモード> eRandom;
public Eランダムモード[] eRandom;
public Eダメージレベル eダメージレベル;
public CKeyAssign KeyAssign;
public int n非フォーカス時スリープms; // #23568 2010.11.04 ikanick add
@ -852,11 +1149,27 @@ namespace TJAPlayer3
public int nScoreMode;
public int nDefaultCourse; //2017.01.30 DD デフォルトでカーソルをあわせる難易度
private int _nPlayerCount;
public int nPlayerCount
{
get
{
if (bAIBattleMode)
{
return 2;
}
else
{
return _nPlayerCount;
}
}
set
{
_nPlayerCount = value;
}
}
public int nPlayerCount; //2017.08.18 kairera0467 マルチプレイ対応
public bool b太鼓パートAutoPlay;
public bool b太鼓パートAutoPlay2P; //2017.08.16 kairera0467 マルチプレイ対応
public bool[] b太鼓パートAutoPlay = new bool[5];
public bool bAuto先生の連打;
public int nRollsPerSec;
@ -925,9 +1238,9 @@ namespace TJAPlayer3
public int TokkunMashInterval;
public bool bSuperHard = false;
public bool bTokkunMode = false;
public int[] bJust = new int[4] { 0, 0, 0, 0 };
public int[] bJust = new int[5] { 0, 0, 0, 0, 0 };
public int[] nHitSounds = new int[4] { 0, 0, 0, 0 };
public int[] nHitSounds = new int[5] { 0, 0, 0, 0, 0 };
public bool bEndingAnime = false; // 2017.01.27 DD 「また遊んでね」画面の有効/無効オプション追加
@ -1490,15 +1803,15 @@ namespace TJAPlayer3
this.bSudden = new STDGBVALUE<bool>();
this.bHidden = new STDGBVALUE<bool>();
this.bReverse = new STDGBVALUE<bool>();
this.eRandom = new STDGBVALUE<Eランダムモード>();
this.eRandom = new Eランダムモード[5];
this.bLight = new STDGBVALUE<bool>();
this.bLeft = new STDGBVALUE<bool>();
this.e判定位置 = new STDGBVALUE<E判定位置>(); // #33891 2014.6.26 yyagi
this. = new STDGBVALUE<E判定文字表示位置>();
this.nScrollSpeed = new int[4] { 9, 9, 9, 9 };
this.nTimingZones = new int[4] { 2, 2, 2, 2 };
this.nGameType = new EGameType[4] { EGameType.TAIKO, EGameType.TAIKO, EGameType.TAIKO, EGameType.TAIKO };
this.nFunMods = new EFunMods[4] { EFunMods.NONE, EFunMods.NONE, EFunMods.NONE, EFunMods.NONE };
this.nScrollSpeed = new int[5] { 9, 9, 9, 9, 9 };
this.nTimingZones = new int[5] { 2, 2, 2, 2, 2 };
this.nGameType = new EGameType[5] { EGameType.TAIKO, EGameType.TAIKO, EGameType.TAIKO, EGameType.TAIKO, EGameType.TAIKO };
this.nFunMods = new EFunMods[5] { EFunMods.NONE, EFunMods.NONE, EFunMods.NONE, EFunMods.NONE, EFunMods.NONE };
this.nInputAdjustTimeMs = 0;
this.nGlobalOffsetMs = 0;
this.nJudgeLinePosOffset = new STDGBVALUE<int>(); // #31602 2013.6.23 yyagi
@ -1519,7 +1832,7 @@ namespace TJAPlayer3
}
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
{
this.eRandom[i] = Eランダムモード.OFF;
this.nScrollSpeed[i] = 9;
@ -1531,8 +1844,10 @@ namespace TJAPlayer3
#region [ AutoPlay ]
this.bAutoPlay = new STAUTOPLAY();
this.b太鼓パートAutoPlay = false;
this.b太鼓パートAutoPlay2P = false;
for (int i = 0; i < 5; i++)
{
this.b太鼓パートAutoPlay[i] = false;
}
this.bAuto先生の連打 = true;
#endregion
this.nヒット範囲ms = new STRANGE();
@ -1605,9 +1920,9 @@ namespace TJAPlayer3
ShowMob = true;
ShowPuchiChara = true;
this.eSTEALTH = new Eステルスモード[4];
this.eSTEALTH = new Eステルスモード[5];
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
this.eSTEALTH[i] = Eステルスモード.OFF;
this.bNoInfo = false;
@ -2008,8 +2323,11 @@ namespace TJAPlayer3
sw.WriteLine("[AutoPlay]");
sw.WriteLine();
sw.WriteLine("; 自動演奏(0:OFF, 1:ON)");
sw.WriteLine("Taiko={0}", this.b太鼓パートAutoPlay ? 1 : 0);
sw.WriteLine("Taiko2P={0}", this.b太鼓パートAutoPlay2P ? 1 : 0);
sw.WriteLine("Taiko={0}", this.b太鼓パートAutoPlay[0] ? 1 : 0);
sw.WriteLine("Taiko2P={0}", this.b太鼓パートAutoPlay[1] ? 1 : 0);
sw.WriteLine("Taiko3P={0}", this.b太鼓パートAutoPlay[2] ? 1 : 0);
sw.WriteLine("Taiko4P={0}", this.b太鼓パートAutoPlay[3] ? 1 : 0);
sw.WriteLine("Taiko5P={0}", this.b太鼓パートAutoPlay[4] ? 1 : 0);
sw.WriteLine("TaikoAutoRoll={0}", this.bAuto先生の連打 ? 1 : 0);
sw.WriteLine("RollsPerSec={0}", this.nRollsPerSec);
sw.WriteLine("AILevel={0}", this.nAILevel);
@ -2112,24 +2430,28 @@ namespace TJAPlayer3
sw.WriteLine("DrumsScrollSpeed2P={0}", this.nScrollSpeed[1]);
sw.WriteLine("DrumsScrollSpeed3P={0}", this.nScrollSpeed[2]);
sw.WriteLine("DrumsScrollSpeed4P={0}", this.nScrollSpeed[3]);
sw.WriteLine("DrumsScrollSpeed5P={0}", this.nScrollSpeed[4]);
sw.WriteLine();
sw.WriteLine("; Timing Zones (0-1 : Lenient, 2 : Regular, 3-4 : Strict)");
sw.WriteLine("TimingZones1P={0}", this.nTimingZones[0]);
sw.WriteLine("TimingZones2P={0}", this.nTimingZones[1]);
sw.WriteLine("TimingZones3P={0}", this.nTimingZones[2]);
sw.WriteLine("TimingZones4P={0}", this.nTimingZones[3]);
sw.WriteLine("TimingZones5P={0}", this.nTimingZones[4]);
sw.WriteLine();
sw.WriteLine("; Gametype (0 : Taiko, 1 : Konga)");
sw.WriteLine("Gametype1P={0}", (int)this.nGameType[0]);
sw.WriteLine("Gametype2P={0}", (int)this.nGameType[1]);
sw.WriteLine("Gametype3P={0}", (int)this.nGameType[2]);
sw.WriteLine("Gametype4P={0}", (int)this.nGameType[3]);
sw.WriteLine("Gametype5P={0}", (int)this.nGameType[4]);
sw.WriteLine();
sw.WriteLine("; Fun Mods (0 : None, 1 : Avalanche (random scroll speed per note/chip), 2 : Minesweeper (replace randomly notes by bombs))");
sw.WriteLine("FunMods1P={0}", (int)this.nFunMods[0]);
sw.WriteLine("FunMods2P={0}", (int)this.nFunMods[1]);
sw.WriteLine("FunMods3P={0}", (int)this.nFunMods[2]);
sw.WriteLine("FunMods4P={0}", (int)this.nFunMods[3]);
sw.WriteLine("FunMods5P={0}", (int)this.nFunMods[4]);
sw.WriteLine();
sw.WriteLine( "; 演奏速度(540)(→x5/20x40/20)" );
sw.WriteLine( "PlaySpeed={0}", this.n演奏速度 );
@ -2175,12 +2497,14 @@ namespace TJAPlayer3
sw.WriteLine("TaikoRandom2P={0}", (int)this.eRandom[1]);
sw.WriteLine("TaikoRandom3P={0}", (int)this.eRandom[2]);
sw.WriteLine("TaikoRandom4P={0}", (int)this.eRandom[3]);
sw.WriteLine("TaikoRandom5P={0}", (int)this.eRandom[4]);
sw.WriteLine();
sw.WriteLine( "; STEALTHモード(0:OFF, 1:ドロン, 2:ステルス)" );
sw.WriteLine( "TaikoStealth1P={0}", (int) this.eSTEALTH[0] );
sw.WriteLine("TaikoStealth2P={0}", (int)this.eSTEALTH[1]);
sw.WriteLine("TaikoStealth3P={0}", (int)this.eSTEALTH[2]);
sw.WriteLine("TaikoStealth4P={0}", (int)this.eSTEALTH[3]);
sw.WriteLine("TaikoStealth5P={0}", (int)this.eSTEALTH[4]);
sw.WriteLine();
sw.WriteLine( "; ゲーム(0:OFF, 1:完走!叩ききりまショー!, 2:完走!叩ききりまショー!(激辛) )" );
sw.WriteLine( "GameMode={0}", (int) this.eGameMode );
@ -2249,6 +2573,7 @@ namespace TJAPlayer3
sw.WriteLine();
sw.WriteLine( "[DrumsKeyAssign]" );
sw.WriteLine();
sw.Write( "LeftRed=" );
this.tキーの書き出し( sw, this.KeyAssign.Drums.LeftRed );
sw.WriteLine();
@ -2261,6 +2586,7 @@ namespace TJAPlayer3
sw.Write( "RightBlue=" ); // #27029 2012.1.4 from
this.tキーの書き出し( sw, this.KeyAssign.Drums.RightBlue ); //
sw.WriteLine();
sw.Write( "LeftRed2P=" );
this.tキーの書き出し( sw, this.KeyAssign.Drums.LeftRed2P );
sw.WriteLine();
@ -2273,12 +2599,62 @@ namespace TJAPlayer3
sw.Write( "RightBlue2P=" ); // #27029 2012.1.4 from
this.tキーの書き出し( sw, this.KeyAssign.Drums.RightBlue2P ); //
sw.WriteLine();
sw.Write("LeftRed3P=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.LeftRed3P);
sw.WriteLine();
sw.Write("RightRed3P=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.RightRed3P);
sw.WriteLine();
sw.Write("LeftBlue3P="); // #27029 2012.1.4 from
this.tキーの書き出し(sw, this.KeyAssign.Drums.LeftBlue3P); //
sw.WriteLine(); //
sw.Write("RightBlue3P="); // #27029 2012.1.4 from
this.tキーの書き出し(sw, this.KeyAssign.Drums.RightBlue3P); //
sw.WriteLine();
sw.Write("LeftRed4P=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.LeftRed4P);
sw.WriteLine();
sw.Write("RightRed4P=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.RightRed4P);
sw.WriteLine();
sw.Write("LeftBlue4P="); // #27029 2012.1.4 from
this.tキーの書き出し(sw, this.KeyAssign.Drums.LeftBlue4P); //
sw.WriteLine(); //
sw.Write("RightBlue4P="); // #27029 2012.1.4 from
this.tキーの書き出し(sw, this.KeyAssign.Drums.RightBlue4P); //
sw.WriteLine();
sw.Write("LeftRed5P=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.LeftRed5P);
sw.WriteLine();
sw.Write("RightRed5P=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.RightRed5P);
sw.WriteLine();
sw.Write("LeftBlue5P="); // #27029 2012.1.4 from
this.tキーの書き出し(sw, this.KeyAssign.Drums.LeftBlue5P); //
sw.WriteLine(); //
sw.Write("RightBlue5P="); // #27029 2012.1.4 from
this.tキーの書き出し(sw, this.KeyAssign.Drums.RightBlue5P); //
sw.WriteLine();
sw.Write("Clap=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.Clap);
sw.WriteLine();
sw.Write("Clap2P=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.Clap2P);
sw.WriteLine();
sw.Write("Clap3P=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.Clap3P);
sw.WriteLine();
sw.Write("Clap4P=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.Clap4P);
sw.WriteLine();
sw.Write("Clap5P=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.Clap5P);
sw.WriteLine();
sw.Write("Decide=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.Decide);
sw.WriteLine();
@ -2291,6 +2667,7 @@ namespace TJAPlayer3
sw.Write("RightChange=");
this.tキーの書き出し(sw, this.KeyAssign.Drums.RightChange);
sw.WriteLine();
sw.WriteLine();
#endregion
#region [ SystemkeyAssign ]
@ -2817,11 +3194,23 @@ namespace TJAPlayer3
case Eセクション種別.AutoPlay:
if (str3.Equals("Taiko"))
{
this.b太鼓パートAutoPlay = C変換.bONorOFF(str4[0]);
this.b太鼓パートAutoPlay[0] = C変換.bONorOFF(str4[0]);
}
else if (str3.Equals("Taiko2P"))
{
this.b太鼓パートAutoPlay2P = C変換.bONorOFF(str4[0]);
this.b太鼓パートAutoPlay[1] = C変換.bONorOFF(str4[0]);
}
else if (str3.Equals("Taiko3P"))
{
this.b太鼓パートAutoPlay[2] = C変換.bONorOFF(str4[0]);
}
else if (str3.Equals("Taiko4P"))
{
this.b太鼓パートAutoPlay[3] = C変換.bONorOFF(str4[0]);
}
else if (str3.Equals("Taiko5P"))
{
this.b太鼓パートAutoPlay[4] = C変換.bONorOFF(str4[0]);
}
else if (str3.Equals("TaikoAutoRoll"))
{
@ -2989,6 +3378,10 @@ namespace TJAPlayer3
{
this.nScrollSpeed[3] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x7cf, this.nScrollSpeed[3]);
}
else if (str3.Equals("DrumsScrollSpeed5P"))
{
this.nScrollSpeed[4] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 0x7cf, this.nScrollSpeed[4]);
}
#endregion
@ -3010,6 +3403,10 @@ namespace TJAPlayer3
{
this.nTimingZones[3] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 4, this.nTimingZones[3]);
}
else if (str3.Equals("TimingZones5P"))
{
this.nTimingZones[4] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 4, this.nTimingZones[4]);
}
#endregion
@ -3032,6 +3429,10 @@ namespace TJAPlayer3
{
this.bJust[3] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, this.bJust[3]);
}
else if (str3.Equals("Just5P"))
{
this.bJust[4] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 2, this.bJust[4]);
}
#endregion
@ -3053,6 +3454,10 @@ namespace TJAPlayer3
{
this.nHitSounds[3] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 9999999, this.nHitSounds[3]);
}
else if (str3.Equals("HitSounds5P"))
{
this.nHitSounds[4] = C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 9999999, this.nHitSounds[4]);
}
#endregion
@ -3074,6 +3479,10 @@ namespace TJAPlayer3
{
this.nGameType[3] = (EGameType)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 1, (int)this.nGameType[3]);
}
else if (str3.Equals("Gametype5P"))
{
this.nGameType[4] = (EGameType)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 1, (int)this.nGameType[4]);
}
#endregion
@ -3095,6 +3504,10 @@ namespace TJAPlayer3
{
this.nFunMods[3] = (EFunMods)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, (int)EFunMods.TOTAL - 1, (int)this.nFunMods[3]);
}
else if (str3.Equals("FunMods5P"))
{
this.nFunMods[4] = (EFunMods)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, (int)EFunMods.TOTAL - 1, (int)this.nFunMods[4]);
}
#endregion
@ -3116,6 +3529,10 @@ namespace TJAPlayer3
{
this.eSTEALTH[3] = (Eステルスモード)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 3, (int)this.eSTEALTH[3]);
}
else if (str3.Equals("TaikoStealth5P"))
{
this.eSTEALTH[4] = (Eステルスモード)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 3, (int)this.eSTEALTH[4]);
}
#endregion
@ -3137,6 +3554,10 @@ namespace TJAPlayer3
{
this.eRandom[3] = (Eランダムモード)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 4, (int)this.eRandom[3]);
}
else if (str3.Equals("TaikoRandom5P"))
{
this.eRandom[4] = (Eランダムモード)C変換.n値を文字列から取得して範囲内に丸めて返す(str4, 0, 4, (int)this.eRandom[4]);
}
#endregion
@ -3234,7 +3655,7 @@ namespace TJAPlayer3
else if ( str3.Equals( "PlayerCount" ) )
{
this.nPlayerCount = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 1, 2, this.nPlayerCount );
this.nPlayerCount = C変換.n値を文字列から取得して範囲内に丸めて返す( str4, 1, 5, this.nPlayerCount );
}
else if(str3.Equals(nameof(ShinuchiMode)))
{
@ -3337,6 +3758,57 @@ namespace TJAPlayer3
this.tキーの読み出しと設定( str4, this.KeyAssign.Drums.RightBlue2P ); //
}
else if (str3.Equals("LeftRed3P"))
{
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.LeftRed3P);
}
else if (str3.Equals("RightRed3P"))
{
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.RightRed3P);
}
else if (str3.Equals("LeftBlue3P")) // #27029 2012.1.4 from
{ //
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.LeftBlue3P); //
} //
else if (str3.Equals("RightBlue3P")) // #27029 2012.1.4 from
{ //
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.RightBlue3P); //
}
else if (str3.Equals("LeftRed4P"))
{
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.LeftRed4P);
}
else if (str3.Equals("RightRed4P"))
{
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.RightRed4P);
}
else if (str3.Equals("LeftBlue4P")) // #27029 2012.1.4 from
{ //
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.LeftBlue4P); //
} //
else if (str3.Equals("RightBlue4P")) // #27029 2012.1.4 from
{ //
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.RightBlue4P); //
}
else if (str3.Equals("LeftRed5P"))
{
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.LeftRed5P);
}
else if (str3.Equals("RightRed5P"))
{
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.RightRed5P);
}
else if (str3.Equals("LeftBlue5P")) // #27029 2012.1.4 from
{ //
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.LeftBlue5P); //
} //
else if (str3.Equals("RightBlue5P")) // #27029 2012.1.4 from
{ //
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.RightBlue5P); //
}
else if (str3.Equals("Clap"))
{
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.Clap);
@ -3345,6 +3817,18 @@ namespace TJAPlayer3
{
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.Clap2P);
}
else if (str3.Equals("Clap3P"))
{
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.Clap3P);
}
else if (str3.Equals("Clap4P"))
{
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.Clap4P);
}
else if (str3.Equals("Clap5P"))
{
this.tキーの読み出しと設定(str4, this.KeyAssign.Drums.Clap5P);
}
else if (str3.Equals("Decide"))
{
@ -3564,8 +4048,23 @@ LeftRed2P=K011
RightRed2P=K023
LeftBlue2P=K012
RightBlue2P=K047
LeftRed3P=
RightRed3P=
LeftBlue3P=
RightBlue3P=
LeftRed4P=
RightRed4P=
LeftBlue4P=
RightBlue4P=
LeftRed5P=
RightRed5P=
LeftBlue5P=
RightBlue5P=
Clap=K017
Clap2P=
Clap3P=
Clap4P=
Clap5P=
Decide=K015,K019
Cancel=
LeftChange=K013

View File

@ -11,7 +11,7 @@ namespace TJAPlayer3
public CHitSounds(string path)
{
tLoadFile(path);
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
{
tReloadHitSounds(TJAPlayer3.ConfigIni.nHitSounds[i], i);
}
@ -39,10 +39,10 @@ namespace TJAPlayer3
public string[] names;
public string[] don = new string[4];
public string[] ka = new string[4];
public string[] adlib = new string[4];
public string[] clap = new string[4];
public string[] don = new string[5];
public string[] ka = new string[5];
public string[] adlib = new string[5];
public string[] clap = new string[5];
#region [private]

File diff suppressed because it is too large Load Diff

View File

@ -12,8 +12,11 @@ namespace TJAPlayer3
private static Dictionary<string, C曲リストード> nodes = new Dictionary<string, C曲リストード>();
private static HashSet<string> urls = new HashSet<string>();
public static CActSelect曲リスト.CScorePad[][] ScorePads = new CActSelect曲リスト.CScorePad[2][]
public static CActSelect曲リスト.CScorePad[][] ScorePads = new CActSelect曲リスト.CScorePad[5][]
{
new CActSelect曲リスト.CScorePad[(int)Difficulty.Edit + 2] { new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad() },
new CActSelect曲リスト.CScorePad[(int)Difficulty.Edit + 2] { new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad() },
new CActSelect曲リスト.CScorePad[(int)Difficulty.Edit + 2] { new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad() },
new CActSelect曲リスト.CScorePad[(int)Difficulty.Edit + 2] { new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad() },
new CActSelect曲リスト.CScorePad[(int)Difficulty.Edit + 2] { new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad(), new CActSelect曲リスト.CScorePad() }
};
@ -274,7 +277,7 @@ namespace TJAPlayer3
{
#region [Reset nodes]
for (int pl = 0; pl < 2; pl++)
for (int pl = 0; pl < 5; pl++)
{
CActSelect曲リスト.CScorePad[] SPArrRef = ScorePads[pl];
@ -296,7 +299,7 @@ namespace TJAPlayer3
foreach (C曲リストード song in nodes.Values)
{
for (int pl = 0; pl < 2; pl++)
for (int pl = 0; pl < 5; pl++)
{
CActSelect曲リスト.CScorePad[] SPArrRef = ScorePads[pl];

View File

@ -90,18 +90,40 @@ namespace TJAPlayer3
LC = 9,
LP = 10, // #27029 2012.1.4 from
LBD = 11,
LRed = 12,
RRed = 13,
LBlue = 14,
RBlue = 15,
LRed2P = 16,
RRed2P = 17,
LBlue2P = 18,
RBlue2P = 19,
CLAP = 20,
CLAP2P = 21,
LeftChange = 22,
RightChange = 23,
LRed3P = 20,
RRed3P = 21,
LBlue3P = 22,
RBlue3P = 23,
LRed4P = 24,
RRed4P = 25,
LBlue4P = 26,
RBlue4P = 27,
LRed5P = 28,
RRed5P = 29,
LBlue5P = 30,
RBlue5P = 31,
CLAP = 32,
CLAP2P = 33,
CLAP3P = 34,
CLAP4P = 35,
CLAP5P = 36,
LeftChange = 37,
RightChange = 38,
MAX, // 門番用として定義
UNKNOWN = 99
}
@ -126,18 +148,40 @@ namespace TJAPlayer3
LC = Eパッド.LC,
LP = Eパッド.LP, // #27029 2012.1.4 from
LBD = Eパッド.LBD,
LRed = Eパッド.LRed,
RRed = Eパッド.RRed,
LBlue = Eパッド.LBlue,
RBlue = Eパッド.RBlue,
LRed2P = Eパッド.LRed2P,
RRed2P = Eパッド.RRed2P,
LBlue2P = Eパッド.LBlue2P,
RBlue2P = Eパッド.RBlue2P,
LRed3P = Eパッド.LRed3P,
RRed3P = Eパッド.RRed3P,
LBlue3P = Eパッド.LBlue3P,
RBlue3P = Eパッド.RBlue3P,
LRed4P = Eパッド.LRed4P,
RRed4P = Eパッド.RRed4P,
LBlue4P = Eパッド.LBlue4P,
RBlue4P = Eパッド.RBlue4P,
LRed5P = Eパッド.LRed5P,
RRed5P = Eパッド.RRed5P,
LBlue5P = Eパッド.LBlue5P,
RBlue5P = Eパッド.RBlue5P,
Clap = Eパッド.CLAP,
Clap2P = Eパッド.CLAP2P,
Clap3P = Eパッド.CLAP3P,
Clap4P = Eパッド.CLAP4P,
Clap5P = Eパッド.CLAP5P,
LeftChange = Eパッド.LeftChange,
RightChange = Eパッド.RightChange,
Capture,
UNKNOWN = Eパッド.UNKNOWN
}

View File

@ -25,6 +25,10 @@ namespace TJAPlayer3
if (modalFormat == EModalFormat.Half)
arrRef = TJAPlayer3.Tx.Modal_Half;
else if (modalFormat == EModalFormat.Half_4P)
arrRef = TJAPlayer3.Tx.Modal_Half_4P;
else if (modalFormat == EModalFormat.Half_5P)
arrRef = TJAPlayer3.Tx.Modal_Half_5P;
else
arrRef = TJAPlayer3.Tx.Modal_Full;
@ -36,6 +40,7 @@ namespace TJAPlayer3
_box = arrRef[usedTex];
}
/*
_boxRect = new Rectangle(
(modalFormat == EModalFormat.Full || player == 0)
? 0
@ -45,6 +50,13 @@ namespace TJAPlayer3
? _box.szテクスチャサイズ.Width
: _box.szテクスチャサイズ.Width / 2,
_box.szテクスチャサイズ.Height);
*/
_boxRect = new Rectangle(
(modalFormat == EModalFormat.Full || player == 0) ? 0 : _box.szテクスチャサイズ.Width / 2,
0,
(modalFormat == EModalFormat.Full) ? _box.szテクスチャサイズ.Width : _box.szテクスチャサイズ.Width / 2,
_box.szテクスチャサイズ.Height / (((TJAPlayer3.ConfigIni.nPlayerCount - 1) / 2) + 1));
tGenerateTextures();
@ -55,8 +67,61 @@ namespace TJAPlayer3
{
if (_isSet == true)
{
_box?.t2D描画(TJAPlayer3.app.Device, (_box.szテクスチャサイズ.Width / 2) * player, 0, _boxRect);
_box?.t2D描画(TJAPlayer3.app.Device, _boxRect.Width * (player % 2), _boxRect.Height * (player / 2), _boxRect);
int[] title_x;
int[] title_y;
int[] text_x;
int[] text_y;
int moveX;
int moveY;
if (modalFormat == EModalFormat.Full)
{
title_x = new int[] { TJAPlayer3.Skin.Modal_Title_Full[0] };
title_y = new int[] { TJAPlayer3.Skin.Modal_Title_Full[1] };
text_x = new int[] { TJAPlayer3.Skin.Modal_Text_Full[0] };
text_y = new int[] { TJAPlayer3.Skin.Modal_Text_Full[1] };
moveX = TJAPlayer3.Skin.Modal_Text_Full_Move[0];
moveY = TJAPlayer3.Skin.Modal_Text_Full_Move[1];
}
else if (modalFormat == EModalFormat.Half)
{
title_x = TJAPlayer3.Skin.Modal_Title_Half_X;
title_y = TJAPlayer3.Skin.Modal_Title_Half_Y;
text_x = TJAPlayer3.Skin.Modal_Text_Half_X;
text_y = TJAPlayer3.Skin.Modal_Text_Half_Y;
moveX = TJAPlayer3.Skin.Modal_Text_Half_Move[0];
moveY = TJAPlayer3.Skin.Modal_Text_Half_Move[1];
}
else if (modalFormat == EModalFormat.Half_4P)
{
title_x = TJAPlayer3.Skin.Modal_Title_Half_X_4P;
title_y = TJAPlayer3.Skin.Modal_Title_Half_Y_4P;
text_x = TJAPlayer3.Skin.Modal_Text_Half_X_4P;
text_y = TJAPlayer3.Skin.Modal_Text_Half_Y_4P;
moveX = TJAPlayer3.Skin.Modal_Text_Half_Move_4P[0];
moveY = TJAPlayer3.Skin.Modal_Text_Half_Move_4P[1];
}
else// 5P
{
title_x = TJAPlayer3.Skin.Modal_Title_Half_X_5P;
title_y = TJAPlayer3.Skin.Modal_Title_Half_Y_5P;
text_x = TJAPlayer3.Skin.Modal_Text_Half_X_5P;
text_y = TJAPlayer3.Skin.Modal_Text_Half_Y_5P;
moveX = TJAPlayer3.Skin.Modal_Text_Half_Move_5P[0];
moveY = TJAPlayer3.Skin.Modal_Text_Half_Move_5P[1];
}
/*
Point[] Pos = new Point[]
{
(modalFormat == EModalFormat.Full) ? new Point(TJAPlayer3.Skin.Modal_Title_Full[0], TJAPlayer3.Skin.Modal_Title_Full[1]) : new Point(TJAPlayer3.Skin.Modal_Title_Half_X[player], TJAPlayer3.Skin.Modal_Title_Half_Y[player]), // title
@ -67,6 +132,14 @@ namespace TJAPlayer3
new Point(TJAPlayer3.Skin.Modal_Text_Half_X[player] + (tTextCentered () ? TJAPlayer3.Skin.Modal_Text_Half_Move[0] : 0),
TJAPlayer3.Skin.Modal_Text_Half_Y[player] + (tTextCentered () ? TJAPlayer3.Skin.Modal_Text_Half_Move[1] : 0)), // content
};
*/
Point[] Pos = new Point[]
{
new Point(title_x[player], title_y[player]),
new Point(text_x[player] + (tTextCentered () ? moveX : 0),
text_y[player] + (tTextCentered () ? moveY : 0)), // content
};
_ModalTitle?.t2D中心基準描画(TJAPlayer3.app.Device, Pos[0].X, Pos[0].Y);
_ModalText?.t2D中心基準描画(TJAPlayer3.app.Device, Pos[1].X, Pos[1].Y);
@ -124,6 +197,8 @@ namespace TJAPlayer3
{
Full,
Half,
Half_4P,
Half_5P,
}
#endregion

View File

@ -10,24 +10,39 @@ namespace TJAPlayer3
{
public ModalQueue(Modal.EModalFormat mf)
{
_modalQueues = new Queue<Modal>[] { new Queue<Modal>(), new Queue<Modal>() };
_modalQueues = new Queue<Modal>[] { new Queue<Modal>(), new Queue<Modal>(), new Queue<Modal>(), new Queue<Modal>(), new Queue<Modal>() };
_modalFormat = mf;
}
// Add two modals (one per player) at the same time
public void tAddModal(Modal mp1, Modal mp2)
public void tAddModal(Modal mp1, Modal mp2, Modal mp3, Modal mp4, Modal mp5)
{
mp1.modalFormat = _modalFormat;
mp2.modalFormat = _modalFormat;
mp3.modalFormat = _modalFormat;
mp4.modalFormat = _modalFormat;
mp5.modalFormat = _modalFormat;
mp1.player = 0;
mp2.player = 1;
mp3.player = 2;
mp4.player = 3;
mp5.player = 4;
mp1.tSetupModal();
mp2.tSetupModal();
mp3.tSetupModal();
mp4.tSetupModal();
mp5.tSetupModal();
if (mp1 != null)
_modalQueues[0].Enqueue(mp1);
if (mp2 != null)
_modalQueues[1].Enqueue(mp2);
if (mp3 != null)
_modalQueues[2].Enqueue(mp3);
if (mp4 != null)
_modalQueues[3].Enqueue(mp4);
if (mp5 != null)
_modalQueues[4].Enqueue(mp5);
}
// Add a single modal
@ -58,7 +73,7 @@ namespace TJAPlayer3
public bool tAreBothQueuesEmpty()
{
return tIsQueueEmpty(0) && tIsQueueEmpty(1);
return tIsQueueEmpty(0) && tIsQueueEmpty(1) && tIsQueueEmpty(2) && tIsQueueEmpty(3) && tIsQueueEmpty(4);
}
private Modal.EModalFormat _modalFormat;

View File

@ -26,7 +26,7 @@ namespace TJAPlayer3
if (amounts.Length < 2)
return;
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
int p = TJAPlayer3.GetActualPlayer(i);
@ -154,44 +154,47 @@ namespace TJAPlayer3
public class Data
{
[JsonProperty("name")]
public string[] Name = { "プレイヤー1", "プレイヤー2" };
public string[] Name = { "プレイヤー1", "プレイヤー2", "プレイヤー3", "プレイヤー4", "プレイヤー5" };
[JsonProperty("title")]
public string[] Title = { "初心者", "初心者" };
public string[] Title = { "初心者", "初心者", "初心者", "初心者", "初心者" };
[JsonProperty("dan")]
public string[] Dan = { "新人", "新人" };
public string[] Dan = { "新人", "新人", "新人", "新人", "新人" };
[JsonProperty("danGold")]
public bool[] DanGold = { false, false };
public bool[] DanGold = { false, false, false, false, false };
[JsonProperty("danType")]
public int[] DanType = { 0, 0 };
public int[] DanType = { 0, 0, 0, 0, 0 };
[JsonProperty("titleType")]
public int[] TitleType = { 0, 0 };
public int[] TitleType = { 0, 0, 0, 0, 0 };
[JsonProperty("puchiChara")]
public string[] PuchiChara = { "0", "0" };
public string[] PuchiChara = { "0", "0", "0", "0", "0" };
[JsonProperty("medals")]
public int[] Medals = { 0, 0 };
public int[] Medals = { 0, 0, 0, 0, 0 };
[JsonProperty("character")]
public int[] Character = { 0, 0 };
public int[] Character = { 0, 0, 0, 0, 0 };
[JsonProperty("characterName")]
public string[] CharacterName = { "0", "0" };
public string[] CharacterName = { "0", "0", "0", "0", "0" };
[JsonProperty("danTitles")]
public Dictionary<string, CDanTitle>[] DanTitles = new Dictionary<string, CDanTitle>[2];
public Dictionary<string, CDanTitle>[] DanTitles = new Dictionary<string, CDanTitle>[5];
[JsonProperty("namePlateTitles")]
public Dictionary<string, CNamePlateTitle>[] NamePlateTitles = new Dictionary<string, CNamePlateTitle>[2];
public Dictionary<string, CNamePlateTitle>[] NamePlateTitles = new Dictionary<string, CNamePlateTitle>[5];
[JsonProperty("unlockedPuchicharas")]
public List<string>[] UnlockedPuchicharas = new List<string>[2]
public List<string>[] UnlockedPuchicharas = new List<string>[5]
{
new List<string>(),
new List<string>(),
new List<string>(),
new List<string>(),
new List<string>()
};

View File

@ -122,6 +122,66 @@ namespace TJAPlayer3
}
}
}
public static CDTX DTX_3P
{
get
{
return dtx[2];
}
set
{
if ((dtx[2] != null) && (app != null))
{
dtx[2].On非活性化();
app.listトップレベルActivities.Remove(dtx[2]);
}
dtx[2] = value;
if ((dtx[2] != null) && (app != null))
{
app.listトップレベルActivities.Add(dtx[2]);
}
}
}
public static CDTX DTX_4P
{
get
{
return dtx[3];
}
set
{
if ((dtx[3] != null) && (app != null))
{
dtx[3].On非活性化();
app.listトップレベルActivities.Remove(dtx[3]);
}
dtx[3] = value;
if ((dtx[3] != null) && (app != null))
{
app.listトップレベルActivities.Add(dtx[3]);
}
}
}
public static CDTX DTX_5P
{
get
{
return dtx[4];
}
set
{
if ((dtx[4] != null) && (app != null))
{
dtx[4].On非活性化();
app.listトップレベルActivities.Remove(dtx[4]);
}
dtx[4] = value;
if ((dtx[4] != null) && (app != null))
{
app.listトップレベルActivities.Add(dtx[4]);
}
}
}
public static bool IsPerformingCalibration;
@ -2094,7 +2154,7 @@ for (int i = 0; i < 3; i++) {
private bool b終了処理完了済み;
private bool bネットワークに接続中 = false;
private long ms = long.MinValue;
private static CDTX[] dtx = new CDTX[ 4 ];
private static CDTX[] dtx = new CDTX[ 5 ];
public static TextureLoader Tx = new TextureLoader();
@ -2304,7 +2364,9 @@ for (int i = 0; i < 3; i++) {
//---------------------
Trace.TraceInformation( "スキンの初期化を行います。" );
Trace.Indent();
#if !DEBUG
try
#endif
{
Skin = new CSkin( TJAPlayer3.ConfigIni.strSystemSkinSubfolderFullName, false);
TJAPlayer3.ConfigIni.strSystemSkinSubfolderFullName = TJAPlayer3.Skin.GetCurrentSkinSubfolderFullName( true ); // 旧指定のSkinフォルダが消滅していた場合に備える
@ -2313,6 +2375,7 @@ for (int i = 0; i < 3; i++) {
Trace.TraceInformation( "スキンの初期化を完了しました。" );
}
#if !DEBUG
catch (Exception e)
{
Trace.TraceInformation( "スキンの初期化に失敗しました。" );
@ -2322,6 +2385,7 @@ for (int i = 0; i < 3; i++) {
{
Trace.Unindent();
}
#endif
// Init Modal fonts once config.ini parsing is done
// Moved here to reference Skin values.

View File

@ -294,6 +294,40 @@ namespace TJAPlayer3
[10092] = "ドラムの演奏に関する項目を設定します。",
[10093] = "設定を保存し、コンフィグ画面を終了します。",
[10094] = "LeftRed3P",
[10095] = "左側の面へのキーの割り当てを設\n定します。",
[10096] = "RightRed3P",
[10097] = "右側の面へのキーの割り当て\nを設定します。",
[10098] = "LeftBlue3P",
[10099] = "左側のふちへのキーの\n割り当てを設定します。",
[10100] = "RightBlue3P",
[10101] = "右側のふちへのキーの\n割り当てを設定します。",
[10102] = "LeftRed4P",
[10103] = "左側の面へのキーの割り当てを設\n定します。",
[10104] = "RightRed4P",
[10105] = "右側の面へのキーの割り当て\nを設定します。",
[10106] = "LeftBlue4P",
[10107] = "左側のふちへのキーの\n割り当てを設定します。",
[10108] = "RightBlue4P",
[10109] = "右側のふちへのキーの\n割り当てを設定します。",
[10110] = "LeftRed5P",
[10111] = "左側の面へのキーの割り当てを設\n定します。",
[10112] = "RightRed5P",
[10113] = "右側の面へのキーの割り当て\nを設定します。",
[10114] = "LeftBlue5P",
[10115] = "左側のふちへのキーの\n割り当てを設定します。",
[10116] = "RightBlue5P",
[10117] = "右側のふちへのキーの\n割り当てを設定します。",
[10118] = "Clap3P",
[10119] = "コンガの拍手へのキーの割り当てを設\n定します。",
[10120] = "Clap4P",
[10121] = "コンガの拍手へのキーの割り当てを設\n定します。",
[10122] = "Clap5P",
[10123] = "コンガの拍手へのキーの割り当てを設\n定します。",
[100] = "演奏ゲーム",
[101] = "段位道場",
[102] = "太鼓タワー",

View File

@ -391,7 +391,7 @@ namespace TJAPlayer3
// relevant section/subsection combination.
private static void RankSheets(int seqNo, IList<Section> sections)
{
var sheetRanksBySectionKindAndSubSectionKind = SeqNoSheetRanksBySectionKindAndSubSectionKind[seqNo];
var sheetRanksBySectionKindAndSubSectionKind = SeqNoSheetRanksBySectionKindAndSubSectionKind[((seqNo - 1) % 2) + 1];
foreach (var section in sections)
{

View File

@ -1557,7 +1557,7 @@ namespace TJAPlayer3
}
internal static void t更新条件を取得する( out bool bDrumsを更新する, out bool bGuitarを更新する, out bool bBassを更新する )
{
bDrumsを更新する = !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay;
bDrumsを更新する = !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0];
bGuitarを更新する = false;
bBassを更新する = false;
}

View File

@ -50,7 +50,7 @@ namespace TJAPlayer3
public ST譜面情報 ;
// Smaller version of ST譜面情報 to keep the main info for each player (High scores, clear status, score ranks
public STGamePlayInformations[] GPInfo = new STGamePlayInformations[2];
public STGamePlayInformations[] GPInfo = new STGamePlayInformations[5];
[Serializable]
[StructLayout(LayoutKind.Sequential)]
@ -335,7 +335,7 @@ namespace TJAPlayer3
this..nクリア = new int[5];
this..nスコアランク = new int[5];
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
this.GPInfo[i].nHighScore = new int[(int)Difficulty.Total];
this.GPInfo[i].nClear = new int[5];

View File

@ -119,6 +119,7 @@ namespace TJAPlayer3
Readme = TxC(@"Readme.png");
NamePlate = new CTexture[2];
NamePlateBase = TxC(@"NamePlate.png");
NamePlate_Extension = TxC(@"NamePlate_Extension.png");
NamePlate[0] = TxC(@"1P_NamePlate.png");
NamePlate[1] = TxC(@"2P_NamePlate.png");
NamePlate_Effect[0] = TxC(@"9_NamePlateEffect\GoldMStar.png");
@ -202,7 +203,10 @@ namespace TJAPlayer3
#region 3_
SongSelect_Background = TxC(SONGSELECT + @"Background.png");
SongSelect_Header = TxC(SONGSELECT + @"Header.png");
SongSelect_Coin_Slot = TxC(SONGSELECT + @"Coin_Slot.png");
SongSelect_Coin_Slot[0] = TxC(SONGSELECT + @"Coin_Slot.png");
SongSelect_Coin_Slot[1] = TxC(SONGSELECT + @"Coin_Slot_3P.png");
SongSelect_Coin_Slot[2] = TxC(SONGSELECT + @"Coin_Slot_4P.png");
SongSelect_Coin_Slot[3] = TxC(SONGSELECT + @"Coin_Slot_5P.png");
SongSelect_Auto = TxC(SONGSELECT + @"Auto.png");
SongSelect_Level = TxC(SONGSELECT + @"Level.png");
@ -298,6 +302,9 @@ namespace TJAPlayer3
Difficulty_Select_Bar[0] = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Select_Bar.png");
Difficulty_Select_Bar[1] = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Select_Bar2.png");
Difficulty_Select_Bar[2] = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Select_Bar3.png");
Difficulty_Select_Bar[3] = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Select_Bar4.png");
Difficulty_Select_Bar[4] = TxC(SONGSELECT + @"Difficulty_Select\Difficulty_Select_Bar5.png");
TJAPlayer3.Skin.SongSelect_Difficulty_Background_Count = TJAPlayer3.t連番画像の枚数を数える(CSkin.Path(BASE + SONGSELECT + @"Difficulty_Select\Difficulty_Back\"), "Difficulty_Back_");
@ -391,7 +398,7 @@ namespace TJAPlayer3
#region Taiko
Taiko_Background = new CTexture[11];
Taiko_Background = new CTexture[12];
Taiko_Background[0] = TxC(GAME + TAIKO + @"1P_Background.png");
Taiko_Background[1] = TxC(GAME + TAIKO + @"2P_Background.png");
Taiko_Background[2] = TxC(GAME + TAIKO + @"Dan_Background.png");
@ -403,18 +410,23 @@ namespace TJAPlayer3
Taiko_Background[8] = TxC(GAME + TAIKO + @"4P_Background.png");
Taiko_Background[9] = TxC(GAME + TAIKO + @"AI_Background.png");
Taiko_Background[10] = TxC(GAME + TAIKO + @"Boss_Background.png");
Taiko_Background[11] = TxC(GAME + TAIKO + @"5P_Background.png");
Taiko_Frame = new CTexture[6];
Taiko_Frame = new CTexture[7];
Taiko_Frame[0] = TxC(GAME + TAIKO + @"1P_Frame.png");
Taiko_Frame[1] = TxC(GAME + TAIKO + @"2P_Frame.png");
Taiko_Frame[2] = TxC(GAME + TAIKO + @"Tower_Frame.png");
Taiko_Frame[3] = TxC(GAME + TAIKO + @"Tokkun_Frame.png");
Taiko_Frame[4] = TxC(GAME + TAIKO + @"2P_None_Frame.png");
Taiko_Frame[5] = TxC(GAME + TAIKO + @"AI_Frame.png");
Taiko_Frame[6] = TxC(GAME + TAIKO + @"4PPlay_Frame.png");
Taiko_PlayerNumber = new CTexture[2];
Taiko_PlayerNumber = new CTexture[5];
Taiko_PlayerNumber[0] = TxC(GAME + TAIKO + @"1P_PlayerNumber.png");
Taiko_PlayerNumber[1] = TxC(GAME + TAIKO + @"2P_PlayerNumber.png");
Taiko_PlayerNumber[2] = TxC(GAME + TAIKO + @"3P_PlayerNumber.png");
Taiko_PlayerNumber[3] = TxC(GAME + TAIKO + @"4P_PlayerNumber.png");
Taiko_PlayerNumber[4] = TxC(GAME + TAIKO + @"5P_PlayerNumber.png");
Taiko_Base = new CTexture[2];
@ -439,10 +451,13 @@ namespace TJAPlayer3
Couse_Symbol[i] = TxC(GAME + COURSESYMBOL + Couse_Symbols[i] + ".png");
}
Taiko_Score = new CTexture[3];
Taiko_Score = new CTexture[6];
Taiko_Score[0] = TxC(GAME + TAIKO + @"Score.png");
Taiko_Score[1] = TxC(GAME + TAIKO + @"Score_1P.png");
Taiko_Score[2] = TxC(GAME + TAIKO + @"Score_2P.png");
Taiko_Score[3] = TxC(GAME + TAIKO + @"Score_3P.png");
Taiko_Score[4] = TxC(GAME + TAIKO + @"Score_4P.png");
Taiko_Score[5] = TxC(GAME + TAIKO + @"Score_5P.png");
Taiko_Combo = new CTexture[4];
Taiko_Combo[0] = TxC(GAME + TAIKO + @"Combo.png");
Taiko_Combo[1] = TxC(GAME + TAIKO + @"Combo_Big.png");
@ -461,15 +476,25 @@ namespace TJAPlayer3
#region Gauge
Gauge = new CTexture[3];
Gauge = new CTexture[8];
Gauge[0] = TxC(GAME + GAUGE + @"1P.png");
Gauge[1] = TxC(GAME + GAUGE + @"2P.png");
Gauge[2] = TxC(GAME + GAUGE + @"1P_Right.png");
Gauge[3] = TxC(GAME + GAUGE + @"1P_4PGauge.png");
Gauge[4] = TxC(GAME + GAUGE + @"2P_4PGauge.png");
Gauge[5] = TxC(GAME + GAUGE + @"3P_4PGauge.png");
Gauge[6] = TxC(GAME + GAUGE + @"4P_4PGauge.png");
Gauge[7] = TxC(GAME + GAUGE + @"5P_4PGauge.png");
Gauge_Base = new CTexture[3];
Gauge_Base = new CTexture[8];
Gauge_Base[0] = TxC(GAME + GAUGE + @"1P_Base.png");
Gauge_Base[1] = TxC(GAME + GAUGE + @"2P_Base.png");
Gauge_Base[2] = TxC(GAME + GAUGE + @"1P_Base_Right.png");
Gauge_Base[3] = TxC(GAME + GAUGE + @"1P_Base_4PGauge.png");
Gauge_Base[4] = TxC(GAME + GAUGE + @"2P_Base_4PGauge.png");
Gauge_Base[5] = TxC(GAME + GAUGE + @"3P_Base_4PGauge.png");
Gauge_Base[6] = TxC(GAME + GAUGE + @"4P_Base_4PGauge.png");
Gauge_Base[7] = TxC(GAME + GAUGE + @"5P_Base_4PGauge.png");
Gauge_Line = new CTexture[2];
Gauge_Line[0] = TxC(GAME + GAUGE + @"1P_Line.png");
@ -891,6 +916,12 @@ namespace TJAPlayer3
Result_Gauge_Base[0] = TxC(RESULT + @"Gauge_Base.png");
Result_Gauge[1] = TxC(RESULT + @"Gauge_2.png");
Result_Gauge_Base[1] = TxC(RESULT + @"Gauge_Base_2.png");
Result_Gauge[2] = TxC(RESULT + @"Gauge_3.png");
Result_Gauge_Base[2] = TxC(RESULT + @"Gauge_Base_3.png");
Result_Gauge[3] = TxC(RESULT + @"Gauge_4.png");
Result_Gauge_Base[3] = TxC(RESULT + @"Gauge_Base_4.png");
Result_Gauge[4] = TxC(RESULT + @"Gauge_5.png");
Result_Gauge_Base[4] = TxC(RESULT + @"Gauge_Base_5.png");
Result_Header = TxC(RESULT + @"Header.png");
Result_Number = TxC(RESULT + @"Number.png");
@ -912,6 +943,12 @@ namespace TJAPlayer3
Result_Flower = TxC(RESULT + @"Flower\Flower.png");
for (int i = 0; i < 4; i++)
Result_Panel_4P[i] = TxC(RESULT + @"Panel_4P_" + (i + 1).ToString() + ".png");
for (int i = 0; i < 5; i++)
Result_Panel_5P[i] = TxC(RESULT + @"Panel_5P_" + (i + 1).ToString() + ".png");
for (int i = 1; i <= 5; i++)
Result_Flower_Rotate[i - 1] = TxC(RESULT + @"Flower\Rotate_" + i.ToString() + ".png");
@ -922,7 +959,7 @@ namespace TJAPlayer3
for (int i = 0; i < 41; i++)
Result_Rainbow[i] = TxC(RESULT + @"Rainbow\" + i.ToString() + ".png");
for (int i = 0; i < 3; i++)
for (int i = 0; i < 6; i++)
Result_Background[i] = TxC(RESULT + @"Background_" + i.ToString() + ".png");
for (int i = 0; i < 4; i++)
@ -1061,12 +1098,16 @@ namespace TJAPlayer3
TJAPlayer3.Skin.Characters_Menu_Y = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_X = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Y = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_4P = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_5P = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_X_AI = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Y_AI = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Result_X = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Result_Y = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Balloon_X = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Balloon_Y = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Balloon_4P = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Balloon_5P = new int[TJAPlayer3.Skin.Characters_Ptn][];
TJAPlayer3.Skin.Characters_Motion_Normal = new string[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Motion_Miss = new string[TJAPlayer3.Skin.Characters_Ptn];
TJAPlayer3.Skin.Characters_Motion_MissDown = new string[TJAPlayer3.Skin.Characters_Ptn];
@ -1088,10 +1129,10 @@ namespace TJAPlayer3
#endregion
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
TJAPlayer3.NamePlateConfig.tReindexCharacter(i, TJAPlayer3.Skin.Characters_DirName);
this.ReloadCharacter(-1, TJAPlayer3.NamePlateConfig.data.Character[i], i, i == 0);
this.ReloadCharacter(-1, TJAPlayer3.NamePlateConfig.data.Character[i], i, true);
}
@ -1108,13 +1149,19 @@ namespace TJAPlayer3
Modal_Full = new CTexture[6];
Modal_Half = new CTexture[6];
Modal_Half_4P = new CTexture[6];
Modal_Half_5P = new CTexture[6];
for (int i = 0; i < 5; i++)
{
Modal_Full[i] = TxC(MODALS + i.ToString() + @"_full.png");
Modal_Half[i] = TxC(MODALS + i.ToString() + @"_half.png");
Modal_Half_4P[i] = TxC(MODALS + i.ToString() + @"_half_4P.png");
Modal_Half_5P[i] = TxC(MODALS + i.ToString() + @"_half_5P.png");
}
Modal_Full[Modal_Full.Length - 1] = TxC(MODALS + @"Coin_full.png");
Modal_Half[Modal_Full.Length - 1] = TxC(MODALS + @"Coin_half.png");
Modal_Half_4P[Modal_Full.Length - 1] = TxC(MODALS + @"Coin_half_4P.png");
Modal_Half_5P[Modal_Full.Length - 1] = TxC(MODALS + @"Coin_half_5P.png");
#endregion
@ -1163,7 +1210,12 @@ namespace TJAPlayer3
int other = (player == 0) ? 1 : 0;
if (old >= 0 && TJAPlayer3.NamePlateConfig.data.Character[other] != old)
if (old >= 0 &&
(TJAPlayer3.NamePlateConfig.data.Character[0] != old || player == 0) &&
(TJAPlayer3.NamePlateConfig.data.Character[1] != old || player == 1) &&
(TJAPlayer3.NamePlateConfig.data.Character[2] != old || player == 2) &&
(TJAPlayer3.NamePlateConfig.data.Character[3] != old || player == 3) &&
(TJAPlayer3.NamePlateConfig.data.Character[4] != old || player == 4))
{
int i = old;
@ -1252,7 +1304,12 @@ namespace TJAPlayer3
string charaPath = TJAPlayer3.strEXEのあるフォルダ + GLOBAL + CHARACTERS + TJAPlayer3.Skin.Characters_DirName[newC];
if ((newC >= 0 && TJAPlayer3.NamePlateConfig.data.Character[other] != newC) || primary)
if ((newC >= 0 &&
TJAPlayer3.NamePlateConfig.data.Character[0] != newC &&
TJAPlayer3.NamePlateConfig.data.Character[1] != newC &&
TJAPlayer3.NamePlateConfig.data.Character[2] != newC &&
TJAPlayer3.NamePlateConfig.data.Character[3] != newC &&
TJAPlayer3.NamePlateConfig.data.Character[4] != newC) || primary)
{
int i = newC;
@ -1415,10 +1472,14 @@ namespace TJAPlayer3
TJAPlayer3.Skin.Characters_X[i] = new int[] { 0, 0 };
TJAPlayer3.Skin.Characters_Y[i] = new int[] { 0, 537 };
TJAPlayer3.Skin.Characters_4P[i] = new int[] { 165, 68 };
TJAPlayer3.Skin.Characters_5P[i] = new int[] { 165, 40 };
TJAPlayer3.Skin.Characters_X_AI[i] = new int[] { 472, 602 };
TJAPlayer3.Skin.Characters_Y_AI[i] = new int[] { 152, 152 };
TJAPlayer3.Skin.Characters_Balloon_X[i] = new int[] { 240, 240, 0, 0 };
TJAPlayer3.Skin.Characters_Balloon_Y[i] = new int[] { 0, 297, 0, 0 };
TJAPlayer3.Skin.Characters_Balloon_4P[i] = new int[] { 0, -176 };
TJAPlayer3.Skin.Characters_Balloon_5P[i] = new int[] { 0, -168 };
TJAPlayer3.Skin.Characters_Motion_Normal[i] = "0";
TJAPlayer3.Skin.Characters_Motion_Miss[i] = "0";
TJAPlayer3.Skin.Characters_Motion_MissDown[i] = "0";
@ -1534,6 +1595,22 @@ namespace TJAPlayer3
TJAPlayer3.Skin.Characters_Y[i][k] = int.Parse(strSplit[k]);
}
}
else if (strCommand == "Game_Chara_4P")
{
string[] strSplit = strParam.Split(',');
for (int k = 0; k < 2; k++)
{
TJAPlayer3.Skin.Characters_4P[i][k] = int.Parse(strSplit[k]);
}
}
else if (strCommand == "Game_Chara_5P")
{
string[] strSplit = strParam.Split(',');
for (int k = 0; k < 2; k++)
{
TJAPlayer3.Skin.Characters_5P[i][k] = int.Parse(strSplit[k]);
}
}
else if (strCommand == "Game_Chara_X_AI")
{
string[] strSplit = strParam.Split(',');
@ -1566,6 +1643,22 @@ namespace TJAPlayer3
TJAPlayer3.Skin.Characters_Balloon_Y[i][k] = int.Parse(strSplit[k]);
}
}
else if (strCommand == "Game_Chara_Balloon_4P")
{
string[] strSplit = strParam.Split(',');
for (int k = 0; k < 2; k++)
{
TJAPlayer3.Skin.Characters_Balloon_4P[i][k] = int.Parse(strSplit[k]);
}
}
else if (strCommand == "Game_Chara_Balloon_5P")
{
string[] strSplit = strParam.Split(',');
for (int k = 0; k < 2; k++)
{
TJAPlayer3.Skin.Characters_Balloon_5P[i][k] = int.Parse(strSplit[k]);
}
}
else if (strCommand == "Game_Chara_Balloon_Timer")
{
if (int.Parse(strParam) > 0)
@ -1729,6 +1822,7 @@ namespace TJAPlayer3
Loading,
Scanning_Loudness,
NamePlateBase,
NamePlate_Extension,
Overlay,
Readme,
Network_Connection;
@ -1775,7 +1869,6 @@ namespace TJAPlayer3
public CTexture SongSelect_Background,
SongSelect_Header,
SongSelect_Coin_Slot,
SongSelect_Auto,
SongSelect_Level,
SongSelect_Branch,
@ -1815,6 +1908,7 @@ namespace TJAPlayer3
SongSelect_Frame_Score = new CTexture[2],
SongSelect_NamePlate = new CTexture[1],
SongSelect_Song_Panel = new CTexture[4],
SongSelect_Coin_Slot = new CTexture[4],
SongSelect_Table = new CTexture[6];
#region [ ]
@ -1825,7 +1919,7 @@ namespace TJAPlayer3
public CTexture Difficulty_Option;
public CTexture Difficulty_Option_Select;
public CTexture[] Difficulty_Select_Bar = new CTexture[2];
public CTexture[] Difficulty_Select_Bar = new CTexture[5];
public CTexture[] Difficulty_Back;
#endregion
@ -2095,15 +2189,17 @@ namespace TJAPlayer3
Result_Dan;
public CTexture[]
Result_Panel_5P = new CTexture[5],
Result_Panel_4P = new CTexture[4],
Result_Rainbow = new CTexture[41],
Result_Background = new CTexture[3],
Result_Background = new CTexture[6],
Result_Crown = new CTexture[3],
Result_Flower_Rotate = new CTexture[5],
Result_Work = new CTexture[3],
Result_Gauge = new CTexture[2],
Result_Gauge_Base = new CTexture[2],
Result_Gauge = new CTexture[5],
Result_Gauge_Base = new CTexture[5],
Result_Speech_Bubble = new CTexture[2],
Result_Mountain = new CTexture[4];
@ -2193,7 +2289,9 @@ namespace TJAPlayer3
#region [11_Modals]
public CTexture[] Modal_Full,
Modal_Half;
Modal_Half,
Modal_Half_4P,
Modal_Half_5P;
#endregion

View File

@ -352,7 +352,7 @@ namespace TJAPlayer3
if (CMainMenuTab.__Menus[usedMenus[this.n現在の選択行モード選択]].rp == E戻り値.DANGAMESTART)
{
if (TJAPlayer3.Songs管理.list曲ルート_Dan.Count > 0 && TJAPlayer3.ConfigIni.nPlayerCount != 2)
if (TJAPlayer3.Songs管理.list曲ルート_Dan.Count > 0 && TJAPlayer3.ConfigIni.nPlayerCount == 1)
operationSucceded = true;
}
else if (CMainMenuTab.__Menus[usedMenus[this.n現在の選択行モード選択]].implemented == true
@ -687,6 +687,8 @@ namespace TJAPlayer3
for (int player = 0; player < TJAPlayer3.ConfigIni.nPlayerCount; player++)
{
if (player >= 2) continue;
float DonchanX = 0f, DonchanY = 0f;
DonchanX = -200 + ((float)Math.Sin(ctどんちゃんイン.n現在の値 / 2 * (Math.PI / 180)) * 200f);
@ -895,6 +897,8 @@ namespace TJAPlayer3
for (int player = 0; player < TJAPlayer3.ConfigIni.nPlayerCount; player++)
{
if (player >= 2) continue;
TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.SongSelect_NamePlate_X[player], TJAPlayer3.Skin.SongSelect_NamePlate_Y[player], player, false, 255);
}
}

View File

@ -86,7 +86,7 @@ namespace TJAPlayer3
CLangManager.LangInstance.GetString(17));
this.list項目リスト.Add(this.iLayoutType);
this.iTaikoPlayerCount = new CItemInteger(CLangManager.LangInstance.GetString(6), 1, 2, TJAPlayer3.ConfigIni.nPlayerCount,
this.iTaikoPlayerCount = new CItemInteger(CLangManager.LangInstance.GetString(6), 1, 5, TJAPlayer3.ConfigIni.nPlayerCount,
CLangManager.LangInstance.GetString(7));
this.list項目リスト.Add( this.iTaikoPlayerCount );
@ -493,6 +493,60 @@ namespace TJAPlayer3
TJAPlayer3.stageコンフィグ.tパッド選択通知( EKeyConfigPart.DRUMS, EKeyConfigPad.RBlue2P );
}
//太鼓のキー設定。3P
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoLRed3P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.LRed3P);
}
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoRRed3P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.RRed3P);
}
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoLBlue3P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.LBlue3P);
}
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoRBlue3P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.RBlue3P);
}
//太鼓のキー設定。4P
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoLRed4P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.LRed4P);
}
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoRRed4P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.RRed4P);
}
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoLBlue4P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.LBlue4P);
}
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoRBlue4P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.RBlue4P);
}
//太鼓のキー設定。5P
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoLRed5P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.LRed5P);
}
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoRRed5P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.RRed5P);
}
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoLBlue5P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.LBlue5P);
}
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignTaikoRBlue5P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.RBlue5P);
}
// Konga claps
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignKongaClap)
{
@ -502,6 +556,18 @@ namespace TJAPlayer3
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.Clap2P);
}
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignKongaClap3P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.Clap3P);
}
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignKongaClap4P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.Clap4P);
}
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignKongaClap5P)
{
TJAPlayer3.stageコンフィグ.tパッド選択通知(EKeyConfigPart.DRUMS, EKeyConfigPad.Clap5P);
}
else if (this.list項目リスト[this.n現在の選択項目] == this.iKeyAssignDecide)
{
@ -696,6 +762,45 @@ namespace TJAPlayer3
CLangManager.LangInstance.GetString(10014));
this.list項目リスト.Add( this.iKeyAssignTaikoRBlue2P );
this.iKeyAssignTaikoLRed3P = new CItemBase(CLangManager.LangInstance.GetString(10094),
CLangManager.LangInstance.GetString(10095));
this.list項目リスト.Add(this.iKeyAssignTaikoLRed3P);
this.iKeyAssignTaikoRRed3P = new CItemBase(CLangManager.LangInstance.GetString(10096),
CLangManager.LangInstance.GetString(10097));
this.list項目リスト.Add(this.iKeyAssignTaikoRRed3P);
this.iKeyAssignTaikoLBlue3P = new CItemBase(CLangManager.LangInstance.GetString(10098),
CLangManager.LangInstance.GetString(10099));
this.list項目リスト.Add(this.iKeyAssignTaikoLBlue3P);
this.iKeyAssignTaikoRBlue3P = new CItemBase(CLangManager.LangInstance.GetString(10100),
CLangManager.LangInstance.GetString(10101));
this.list項目リスト.Add(this.iKeyAssignTaikoRBlue3P);
this.iKeyAssignTaikoLRed4P = new CItemBase(CLangManager.LangInstance.GetString(10102),
CLangManager.LangInstance.GetString(10103));
this.list項目リスト.Add(this.iKeyAssignTaikoLRed4P);
this.iKeyAssignTaikoRRed4P = new CItemBase(CLangManager.LangInstance.GetString(10104),
CLangManager.LangInstance.GetString(10105));
this.list項目リスト.Add(this.iKeyAssignTaikoRRed4P);
this.iKeyAssignTaikoLBlue4P = new CItemBase(CLangManager.LangInstance.GetString(10106),
CLangManager.LangInstance.GetString(10107));
this.list項目リスト.Add(this.iKeyAssignTaikoLBlue4P);
this.iKeyAssignTaikoRBlue4P = new CItemBase(CLangManager.LangInstance.GetString(10108),
CLangManager.LangInstance.GetString(10109));
this.list項目リスト.Add(this.iKeyAssignTaikoRBlue4P);
this.iKeyAssignTaikoLRed5P = new CItemBase(CLangManager.LangInstance.GetString(10110),
CLangManager.LangInstance.GetString(10111));
this.list項目リスト.Add(this.iKeyAssignTaikoLRed5P);
this.iKeyAssignTaikoRRed5P = new CItemBase(CLangManager.LangInstance.GetString(10112),
CLangManager.LangInstance.GetString(10113));
this.list項目リスト.Add(this.iKeyAssignTaikoRRed5P);
this.iKeyAssignTaikoLBlue5P = new CItemBase(CLangManager.LangInstance.GetString(10114),
CLangManager.LangInstance.GetString(10115));
this.list項目リスト.Add(this.iKeyAssignTaikoLBlue5P);
this.iKeyAssignTaikoRBlue5P = new CItemBase(CLangManager.LangInstance.GetString(10116),
CLangManager.LangInstance.GetString(10117));
this.list項目リスト.Add(this.iKeyAssignTaikoRBlue5P);
this.iKeyAssignKongaClap = new CItemBase(CLangManager.LangInstance.GetString(10060),
CLangManager.LangInstance.GetString(10061));
this.list項目リスト.Add(this.iKeyAssignKongaClap);
@ -704,6 +809,18 @@ namespace TJAPlayer3
CLangManager.LangInstance.GetString(10063));
this.list項目リスト.Add(this.iKeyAssignKongaClap2P);
this.iKeyAssignKongaClap3P = new CItemBase(CLangManager.LangInstance.GetString(10118),
CLangManager.LangInstance.GetString(10119));
this.list項目リスト.Add(this.iKeyAssignKongaClap3P);
this.iKeyAssignKongaClap4P = new CItemBase(CLangManager.LangInstance.GetString(10120),
CLangManager.LangInstance.GetString(10121));
this.list項目リスト.Add(this.iKeyAssignKongaClap4P);
this.iKeyAssignKongaClap5P = new CItemBase(CLangManager.LangInstance.GetString(10122),
CLangManager.LangInstance.GetString(10123));
this.list項目リスト.Add(this.iKeyAssignKongaClap5P);
this.iKeyAssignDecide = new CItemBase(CLangManager.LangInstance.GetString(10064),
CLangManager.LangInstance.GetString(10065));
this.list項目リスト.Add(this.iKeyAssignDecide);
@ -1293,13 +1410,32 @@ namespace TJAPlayer3
private CItemBase iKeyAssignTaikoRRed;
private CItemBase iKeyAssignTaikoLBlue;
private CItemBase iKeyAssignTaikoRBlue;
private CItemBase iKeyAssignTaikoLRed2P;
private CItemBase iKeyAssignTaikoRRed2P;
private CItemBase iKeyAssignTaikoLBlue2P;
private CItemBase iKeyAssignTaikoRBlue2P;
private CItemBase iKeyAssignTaikoLRed3P;
private CItemBase iKeyAssignTaikoRRed3P;
private CItemBase iKeyAssignTaikoLBlue3P;
private CItemBase iKeyAssignTaikoRBlue3P;
private CItemBase iKeyAssignTaikoLRed4P;
private CItemBase iKeyAssignTaikoRRed4P;
private CItemBase iKeyAssignTaikoLBlue4P;
private CItemBase iKeyAssignTaikoRBlue4P;
private CItemBase iKeyAssignTaikoLRed5P;
private CItemBase iKeyAssignTaikoRRed5P;
private CItemBase iKeyAssignTaikoLBlue5P;
private CItemBase iKeyAssignTaikoRBlue5P;
private CItemBase iKeyAssignKongaClap;
private CItemBase iKeyAssignKongaClap2P;
private CItemBase iKeyAssignKongaClap3P;
private CItemBase iKeyAssignKongaClap4P;
private CItemBase iKeyAssignKongaClap5P;
private CItemBase iKeyAssignDecide;
private CItemBase iKeyAssignCancel;

View File

@ -200,7 +200,8 @@ namespace TJAPlayer3
txFunMods[nFunMods],
};
var _shift = player == 1 ? (TJAPlayer3.Tx.Difficulty_Option.szテクスチャサイズ.Width / 2) : 0;
var pos = player % 2;
var _shift = pos == 1 ? (TJAPlayer3.Tx.Difficulty_Option.szテクスチャサイズ.Width / 2) : 0;
var _rect = new Rectangle(_shift, 0, TJAPlayer3.Tx.Difficulty_Option.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Difficulty_Option.szテクスチャサイズ.Height);
TJAPlayer3.Tx.Difficulty_Option.t2D描画(TJAPlayer3.app.Device, _shift, y, _rect);
@ -209,17 +210,17 @@ namespace TJAPlayer3
for (int i = 0; i < OptionType.Length; i++)
{
OptionType[i].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_Option_OptionType_X[player] + i * TJAPlayer3.Skin.SongSelect_Option_Interval[0],
TJAPlayer3.Skin.SongSelect_Option_OptionType_Y[player] + y + i * TJAPlayer3.Skin.SongSelect_Option_Interval[1]);
OptionType[i].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_Option_OptionType_X[pos] + i * TJAPlayer3.Skin.SongSelect_Option_Interval[0],
TJAPlayer3.Skin.SongSelect_Option_OptionType_Y[pos] + y + i * TJAPlayer3.Skin.SongSelect_Option_Interval[1]);
}
txModMults[0]?.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, TJAPlayer3.Skin.SongSelect_Option_ModMults1_X[player], TJAPlayer3.Skin.SongSelect_Option_ModMults1_Y[player] + y);
txModMults[1]?.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, TJAPlayer3.Skin.SongSelect_Option_ModMults2_X[player], TJAPlayer3.Skin.SongSelect_Option_ModMults2_Y[player] + y);
txModMults[0]?.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, TJAPlayer3.Skin.SongSelect_Option_ModMults1_X[pos], TJAPlayer3.Skin.SongSelect_Option_ModMults1_Y[pos] + y);
txModMults[1]?.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, TJAPlayer3.Skin.SongSelect_Option_ModMults2_X[pos], TJAPlayer3.Skin.SongSelect_Option_ModMults2_Y[pos] + y);
for (int i = 0; i < _textures.Length; i++)
{
_textures[i]?.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, TJAPlayer3.Skin.SongSelect_Option_Value_X[player] + i * TJAPlayer3.Skin.SongSelect_Option_Interval[0],
TJAPlayer3.Skin.SongSelect_Option_Value_Y[player] + y + i * TJAPlayer3.Skin.SongSelect_Option_Interval[1]);
_textures[i]?.t2D拡大率考慮描画(TJAPlayer3.app.Device, CTexture.RefPnt.Up, TJAPlayer3.Skin.SongSelect_Option_Value_X[pos] + i * TJAPlayer3.Skin.SongSelect_Option_Interval[0],
TJAPlayer3.Skin.SongSelect_Option_Value_Y[pos] + y + i * TJAPlayer3.Skin.SongSelect_Option_Interval[1]);
}
if (ctClose.n現在の値 >= 50)
@ -239,17 +240,44 @@ namespace TJAPlayer3
if (!ctClose.b進行中)
{
bool _leftDrum = (player == 0)
? TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LeftChange)
: TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue2P);
bool _leftDrum = false;
bool _rightDrum = (player == 0)
? TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RightChange)
: TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue2P);
bool _rightDrum = false;
bool _centerDrum = (player == 0)
? (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.Decide))
: (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed2P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed2P));
bool _centerDrum = false;
bool _cancel = false;
switch (player)
{
case 0:
_rightDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RightChange) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow));
_leftDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LeftChange) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow));
_centerDrum = (TJAPlayer3.Pad.b押されたDGB(Eパッド.Decide) ||
(TJAPlayer3.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return)));
_cancel = (TJAPlayer3.Pad.b押されたDGB(Eパッド.Cancel) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape));
break;
case 1:
_rightDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue2P));
_leftDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue2P));
_centerDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed2P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed2P));
break;
case 2:
_rightDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue3P));
_leftDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue3P));
_centerDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed3P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed3P));
break;
case 3:
_rightDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue4P));
_leftDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue4P));
_centerDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed4P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed4P));
break;
case 4:
_rightDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue5P));
_leftDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue5P));
_centerDrum = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed5P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed5P));
break;
}
if (_leftDrum || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow))
@ -521,9 +549,7 @@ namespace TJAPlayer3
#region [ AutoMode ]
bool _auto = (player == 0)
? TJAPlayer3.ConfigIni.b太鼓パートAutoPlay
: TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P;
bool _auto = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player];
if (_auto == true)
nAutoMode = 1;
@ -657,17 +683,11 @@ namespace TJAPlayer3
if (nAutoMode == 1)
{
if (player == 0)
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = true;
else
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = true;
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player] = true;
}
else
{
if (player == 0)
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = false;
else
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = false;
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player] = false;
}
#endregion

View File

@ -95,7 +95,7 @@ namespace TJAPlayer3
#endregion
#region [ SET切り替え/More/Return ]
l.Add(new CItemInteger("PlayerCount", 1, 2, TJAPlayer3.ConfigIni.nPlayerCount, "プレイヤーの人数を指定します。" ,"Set a player count."));
l.Add(new CItemInteger("PlayerCount", 1, 5, TJAPlayer3.ConfigIni.nPlayerCount, "プレイヤーの人数を指定します。" ,"Set a player count."));
l.Add( new CSwitchItemList( "More...", CItemBase.Eパネル種別., 0, "", "", new string[] { "" } ) );
l.Add( new CSwitchItemList( "戻る", CItemBase.Eパネル種別., 0, "", "", new string[] { "", "" } ) );
#endregion

View File

@ -1569,6 +1569,8 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (i >= 2) continue;
int ap = TJAPlayer3.GetActualPlayer(i);
int[] clear = this.r現在選択中の曲.arスコア[(int)Difficulty.Dan].GPInfo[ap].nClear;
@ -1588,6 +1590,8 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (i >= 2) continue;
int ap = TJAPlayer3.GetActualPlayer(i);
int[] clear = this.r現在選択中の曲.arスコア[(int)Difficulty.Tower].GPInfo[ap].nClear;
@ -1606,6 +1610,8 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (i >= 2) continue;
int ap = TJAPlayer3.GetActualPlayer(i);
int[] = sr.GPInfo[ap].nClear;
@ -2690,6 +2696,8 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (i >= 2) continue;
displayDanStatus(x + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_X[i], y + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_Y[i], Math.Min([i][0], 6) - 1, 0.2f);
}
}
@ -2699,6 +2707,8 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (i >= 2) continue;
displayTowerStatus(x + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_X[i], y + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_Y[i], Math.Min([i][0], 7) - 1, 0.3f);
}
}
@ -2708,6 +2718,8 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (i >= 2) continue;
displayRegularCrowns(x + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_X[i], y + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_Y[i], [i], [i], 0.8f);
}
}

View File

@ -71,7 +71,7 @@ namespace TJAPlayer3
}
else if (nスイッチカウント == 0)
{
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
if(!bSelect[i])
{
@ -121,9 +121,12 @@ namespace TJAPlayer3
this.txTitle = TJAPlayer3.tテクスチャの生成(pfTitle.DrawPrivateFont(TJAPlayer3.stage選曲.r現在選択中の曲.strタイトル, Color.White, Color.Black ));
this.txSubTitle = TJAPlayer3.tテクスチャの生成(pfSubTitle.DrawPrivateFont(TJAPlayer3.stage選曲.r現在選択中の曲.strサブタイトル, Color.White, Color.Black));
this.n現在の選択行 = new int[2];
this.n現在の選択行 = new int[5];
this.bSelect[0] = false;
this.bSelect[1] = false;
this.bSelect[2] = false;
this.bSelect[3] = false;
this.bSelect[4] = false;
this.b裏譜面 = (TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[(int)Difficulty.Edit] >= 0 && TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[(int)Difficulty.Oni] < 0);
@ -136,9 +139,12 @@ namespace TJAPlayer3
{
if( this.b活性化してる )
return;
ctBarAnime = new CCounter[2];
ctBarAnime = new CCounter[5];
ctBarAnime[0] = new CCounter();
ctBarAnime[1] = new CCounter();
ctBarAnime[2] = new CCounter();
ctBarAnime[3] = new CCounter();
ctBarAnime[4] = new CCounter();
base.On活性化();
}
@ -188,8 +194,10 @@ namespace TJAPlayer3
#endregion
ctBarAnimeIn.t進行();
ctBarAnime[0].t進行();
ctBarAnime[1].t進行();
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
ctBarAnime[i].t進行();
}
bool uraExists = TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[(int)Difficulty.Edit] >= 0;
bool omoteExists = TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[(int)Difficulty.Oni] >= 0;
@ -202,19 +210,42 @@ namespace TJAPlayer3
{
if (!bSelect[i] && !isOnOption())
{
bool right = i == 0 ?
(TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RightChange) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow)) :
(TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue2P));
bool right = false;
bool left = false;
bool decide = false;
bool left = i == 0 ?
(TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LeftChange) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow)) :
(TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue2P));
bool cancel = false;
bool decide = i == 0 ?
(TJAPlayer3.Pad.b押されたDGB(Eパッド.Decide) || (TJAPlayer3.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return))) :
(TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed2P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed2P));
bool cancel = i == 0 ? (TJAPlayer3.Pad.b押されたDGB(Eパッド.Cancel) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape)) : false;
switch (i)
{
case 0:
right = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RightChange) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.RightArrow));
left = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LeftChange) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.LeftArrow));
decide = (TJAPlayer3.Pad.b押されたDGB(Eパッド.Decide) ||
(TJAPlayer3.ConfigIni.bEnterがキー割り当てのどこにも使用されていない && TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Return)));
cancel = (TJAPlayer3.Pad.b押されたDGB(Eパッド.Cancel) || TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.Escape));
break;
case 1:
right = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue2P));
left = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue2P));
decide = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed2P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed2P));
break;
case 2:
right = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue3P));
left = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue3P));
decide = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed3P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed3P));
break;
case 3:
right = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue4P));
left = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue4P));
decide = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed4P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed4P));
break;
case 4:
right = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RBlue5P));
left = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LBlue5P));
decide = (TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.LRed5P) || TJAPlayer3.Pad.b押された(E楽器パート.DRUMS, Eパッド.RRed5P));
break;
}
if (right)
{
@ -248,7 +279,6 @@ namespace TJAPlayer3
this.bSelect[i] = true;
TJAPlayer3.Skin.sound決定音.t再生する();
TJAPlayer3.Skin.voiceMenuSongDecide[TJAPlayer3.SaveFile]?.t再生する();
bool allPlayerSelected = true;
@ -267,6 +297,7 @@ namespace TJAPlayer3
{
for (int i2 = 0; i2 < TJAPlayer3.ConfigIni.nPlayerCount; i2++)
{
TJAPlayer3.Skin.voiceMenuSongDecide[TJAPlayer3.SaveFile]?.t再生する();
CMenuCharacter.tMenuResetTimer(i2, CMenuCharacter.ECharacterAnimation.START);
if (TJAPlayer3.ConfigIni.bAIBattleMode)
{
@ -380,6 +411,8 @@ namespace TJAPlayer3
for (int j = 0; j < TJAPlayer3.ConfigIni.nPlayerCount; j++)
{
if (j >= 2) continue;
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break;
int p = TJAPlayer3.GetActualPlayer(j);
@ -447,15 +480,44 @@ namespace TJAPlayer3
new RectangleF(0, 0, 259, 114));
*/
bool overlap = n現在の選択行[0] == n現在の選択行[1] && consideMultiPlay;
//bool overlap = n現在の選択行[0] == n現在の選択行[1] && consideMultiPlay;
float moveX = overlap ? (i == 0 ? -TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[0] : TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[0]) : 0;
int overlapCount = 0;
int nowOverlapIndex = 0;
for (int j = 0; j < TJAPlayer3.ConfigIni.nPlayerCount; j++)
{
if (n現在の選択行[i] == n現在の選択行[j] && j != i) overlapCount++;
if (j == i)
{
nowOverlapIndex = overlapCount;
}
}
/*float moveX = overlap ? (i == 0 ? -TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[0] : TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[0]) : 0;
moveX += (((float)Math.Sin((float)ctBarAnime[i].n現在の値 * (Math.PI / 180)) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Anime[0]) -
(((float)Math.Cos((float)ctBarAnimeIn.n現在の値 * (Math.PI / 170)) + 1.0f) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_AnimeIn[0]));
float moveY = overlap ? (i == 0 ? -TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[1] : TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[1]) : 0;
moveY += (((float)Math.Sin((float)ctBarAnime[i].n現在の値 * (Math.PI / 180)) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Anime[1]) -
(((float)Math.Cos((float)ctBarAnimeIn.n現在の値 * (Math.PI / 170)) + 1.0f) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Anime[1]));
*/
float moveX = TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[0] * (nowOverlapIndex - (overlapCount / 2.0f)) * (2.0f / Math.Max(overlapCount, 1));
float moveY = TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Move[1] * (nowOverlapIndex - (overlapCount / 2.0f)) * (2.0f / Math.Max(overlapCount, 1));
if (!consideMultiPlay)
{
moveX = 0;
moveY = 0;
}
moveX += (((float)Math.Sin((float)ctBarAnime[i].n現在の値 * (Math.PI / 180)) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Anime[0]) -
(((float)Math.Cos((float)ctBarAnimeIn.n現在の値 * (Math.PI / 170)) + 1.0f) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_AnimeIn[0]));
moveY += (((float)Math.Sin((float)ctBarAnime[i].n現在の値 * (Math.PI / 180)) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Anime[1]) -
(((float)Math.Cos((float)ctBarAnimeIn.n現在の値 * (Math.PI / 170)) + 1.0f) * TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_Anime[1]));
TJAPlayer3.Tx.Difficulty_Select_Bar[i].t2D描画(TJAPlayer3.app.Device,
TJAPlayer3.Skin.SongSelect_Difficulty_Select_Bar_X[n現在の選択行[i]] + moveX,
@ -476,8 +538,8 @@ namespace TJAPlayer3
#region [ private ]
//-----------------
public bool[] bSelect = new bool[2];
public bool[] bOption = new bool[2];
public bool[] bSelect = new bool[5];
public bool[] bOption = new bool[5];
private CPrivateFastFont pfTitle;
private CPrivateFastFont pfSubTitle;
@ -523,7 +585,7 @@ namespace TJAPlayer3
private bool isOnOption()
{
return bOption[1] || bOption[0];
return bOption[0] || bOption[1] || bOption[2] || bOption[3] || bOption[4];
}
public int nStrジャンルtoNum(string strジャンル)

View File

@ -107,7 +107,7 @@ namespace TJAPlayer3
return this.act曲リスト.bスクロール中;
}
}
public int[] n確定された曲の難易度 = new int[2];
public int[] n確定された曲の難易度 = new int[5];
public string str確定された曲のジャンル
{
@ -240,7 +240,7 @@ namespace TJAPlayer3
Trace.Indent();
try
{
n確定された曲の難易度 = new int[2];
n確定された曲の難易度 = new int[5];
this.eフェードアウト完了時の戻り値 = E戻り値.;
// BGM played
@ -461,6 +461,8 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (i >= 2) continue;
ModIcons.tDisplayModsMenu(TJAPlayer3.Skin.SongSelect_ModIcons_X[i], TJAPlayer3.Skin.SongSelect_ModIcons_Y[i], i);
}
@ -521,8 +523,8 @@ namespace TJAPlayer3
//int puchi_x = player == 0 ? 0 + 100 : 981 + 250;
//int puchi_y = player == 0 ? 330 + 230 : 330 + 230;
int puchi_x = chara_x + TJAPlayer3.Skin.Adjustments_MenuPuchichara_X[player];
int puchi_y = chara_y + TJAPlayer3.Skin.Adjustments_MenuPuchichara_Y[player];
int puchi_x = chara_x + TJAPlayer3.Skin.Adjustments_MenuPuchichara_X[player % 2];
int puchi_y = chara_y + TJAPlayer3.Skin.Adjustments_MenuPuchichara_Y[player % 2];
if (___cc != null && ___cc.b終了値に達してない)
{
@ -564,7 +566,10 @@ namespace TJAPlayer3
int defaultTable = Math.Max(0, Math.Min((int)Difficulty.Edit + 1, TJAPlayer3.ConfigIni.nDefaultCourse));
int[] currentPads = new int[2] {
int[] currentPads = new int[5] {
defaultTable,
defaultTable,
defaultTable,
defaultTable,
defaultTable };
@ -575,6 +580,12 @@ namespace TJAPlayer3
currentPads[0] = TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[0] - 2;
if (TJAPlayer3.ConfigIni.nPlayerCount > 1 && TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[1] >= 2)
currentPads[1] = TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[1] - 2;
if (TJAPlayer3.ConfigIni.nPlayerCount > 1 && TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[2] >= 2)
currentPads[2] = TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[2] - 2;
if (TJAPlayer3.ConfigIni.nPlayerCount > 1 && TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[3] >= 2)
currentPads[3] = TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[3] - 2;
if (TJAPlayer3.ConfigIni.nPlayerCount > 1 && TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[4] >= 2)
currentPads[4] = TJAPlayer3.stage選曲.act難易度選択画面.n現在の選択行[4] - 2;
}
@ -599,8 +610,15 @@ namespace TJAPlayer3
}
TJAPlayer3.Tx.SongSelect_Coin_Slot?.t2D描画(TJAPlayer3.app.Device, 0, 0,
new Rectangle(0, 0, (TJAPlayer3.Tx.SongSelect_Coin_Slot.sz画像サイズ.Width / 2) + ((TJAPlayer3.ConfigIni.nPlayerCount > 1 && !TJAPlayer3.ConfigIni.bAIBattleMode) ? (TJAPlayer3.Tx.SongSelect_Coin_Slot.sz画像サイズ.Width / 2) : 0), TJAPlayer3.Tx.SongSelect_Coin_Slot.sz画像サイズ.Height));
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
TJAPlayer3.Tx.SongSelect_Coin_Slot[0]?.t2D描画(TJAPlayer3.app.Device, 0, 0,
new Rectangle(0, 0, (TJAPlayer3.Tx.SongSelect_Coin_Slot[0].sz画像サイズ.Width / 2) + ((TJAPlayer3.ConfigIni.nPlayerCount > 1 && !TJAPlayer3.ConfigIni.bAIBattleMode) ? (TJAPlayer3.Tx.SongSelect_Coin_Slot[0].sz画像サイズ.Width / 2) : 0), TJAPlayer3.Tx.SongSelect_Coin_Slot[0].sz画像サイズ.Height));
}
else
{
TJAPlayer3.Tx.SongSelect_Coin_Slot[TJAPlayer3.ConfigIni.nPlayerCount - 2]?.t2D描画(TJAPlayer3.app.Device, 0, 0);
}
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
@ -773,7 +791,7 @@ namespace TJAPlayer3
if (TJAPlayer3.Input管理.Keyboard.bキーが押された((int)SlimDXKeys.Key.F3))
{
TJAPlayer3.Skin.sound変更音.t再生する();
C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.b太鼓パートAutoPlay);
C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0]);
}
#endregion
#region [ F4 2PオートON/OFF ]
@ -782,7 +800,7 @@ namespace TJAPlayer3
if (TJAPlayer3.ConfigIni.nPlayerCount > 1)
{
TJAPlayer3.Skin.sound変更音.t再生する();
C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P);
C共通.bToggleBoolian(ref TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1]);
}
}
#endregion
@ -1099,7 +1117,7 @@ namespace TJAPlayer3
TJAPlayer3.Tx.SongSelect_Credit.t2D描画(TJAPlayer3.app.Device, 0, 0);
}
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
CCounter ___cs = CMenuCharacter._getReferenceCounter(CMenuCharacter.ECharacterAnimation.START)[i];
@ -1119,6 +1137,9 @@ namespace TJAPlayer3
if (act難易度選択画面.bOption[0]) actPlayOption.On進行描画(0);
if (act難易度選択画面.bOption[1]) actPlayOption.On進行描画(1);
if (act難易度選択画面.bOption[2]) actPlayOption.On進行描画(2);
if (act難易度選択画面.bOption[3]) actPlayOption.On進行描画(3);
if (act難易度選択画面.bOption[4]) actPlayOption.On進行描画(4);
switch (base.eフェーズID)
{

View File

@ -97,7 +97,7 @@ namespace TJAPlayer3
// player and the special song title and subtitle
// of the .tja used to perform input calibration
TJAPlayer3.IsPerformingCalibration =
!TJAPlayer3.ConfigIni.b太鼓パートAutoPlay &&
!TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] &&
TJAPlayer3.ConfigIni.nPlayerCount == 1 &&
str曲タイトル == "Input Calibration" &&
strサブタイトル == "TJAPlayer3 Developers";
@ -423,13 +423,19 @@ namespace TJAPlayer3
//if( CDTXMania.DTX == null )
{
TJAPlayer3.DTX = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 0, true, TJAPlayer3.stage選曲.n確定された曲の難易度[0]);
if ( TJAPlayer3.ConfigIni.nPlayerCount == 2 )
if ( TJAPlayer3.ConfigIni.nPlayerCount >= 2 )
TJAPlayer3.DTX_2P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true, TJAPlayer3.stage選曲.n確定された曲の難易度[1]);
if (TJAPlayer3.ConfigIni.nPlayerCount >= 3)
TJAPlayer3.DTX_3P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 2, true, TJAPlayer3.stage選曲.n確定された曲の難易度[2]);
if (TJAPlayer3.ConfigIni.nPlayerCount >= 4)
TJAPlayer3.DTX_4P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 3, true, TJAPlayer3.stage選曲.n確定された曲の難易度[3]);
if (TJAPlayer3.ConfigIni.nPlayerCount >= 5)
TJAPlayer3.DTX_5P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 4, true, TJAPlayer3.stage選曲.n確定された曲の難易度[4]);
if ( File.Exists( TJAPlayer3.DTX.strフォルダ名 + @"\\set.def" ) )
{
TJAPlayer3.DTX_2P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true, TJAPlayer3.stage選曲.n確定された曲の難易度[0]);
if ( TJAPlayer3.ConfigIni.nPlayerCount == 2 )
TJAPlayer3.DTX_2P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true, TJAPlayer3.stage選曲.n確定された曲の難易度[1]);
//TJAPlayer3.DTX_2P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true, TJAPlayer3.stage選曲.n確定された曲の難易度[0]);
//if ( TJAPlayer3.ConfigIni.nPlayerCount == 2 )
//TJAPlayer3.DTX_2P = new CDTX(str, false, 1.0, ini.stファイル.BGMAdjust, 0, 1, true, TJAPlayer3.stage選曲.n確定された曲の難易度[1]);
}
Trace.TraceInformation( "----曲情報-----------------" );
@ -532,7 +538,7 @@ namespace TJAPlayer3
TJAPlayer3.DTX.PlanToAddMixerChannel();
}
var _dtx = new CDTX[4]{ TJAPlayer3.DTX, TJAPlayer3.DTX_2P, null, null };
var _dtx = new CDTX[5]{ TJAPlayer3.DTX, TJAPlayer3.DTX_2P, TJAPlayer3.DTX_3P, TJAPlayer3.DTX_4P, TJAPlayer3.DTX_5P };
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{

View File

@ -33,6 +33,9 @@ namespace TJAPlayer3
case 3:
return this.P4;
case 4:
return this.P5;
}
throw new IndexOutOfRangeException();
}
@ -55,6 +58,10 @@ namespace TJAPlayer3
case 3:
this.P4 = value;
return;
case 4:
this.P5 = value;
return;
}
throw new IndexOutOfRangeException();
}
@ -127,12 +134,30 @@ namespace TJAPlayer3
this.act.status.P4.n最高COMBO値 = this.[3];
}
}
public int P5
{
get
{
return this.p5;
}
set
{
this.p5 = value;
if (this.p5 > this.[4])
{
this.[4] = this.p5;
}
this.act.status.P5.nCOMBO値 = this.p5;
this.act.status.P5.n最高COMBO値 = this.[4];
}
}
public int[] { get; set; }
private int p1;
private int p2;
private int p3;
private int p4;
private int p5;
}
public C演奏判定ライン座標共通
{
@ -230,6 +255,7 @@ namespace TJAPlayer3
public CSTAT P2 = new CSTAT();
public CSTAT P3 = new CSTAT();
public CSTAT P4 = new CSTAT();
public CSTAT P5 = new CSTAT();
public CSTAT this[int index]
{
get
@ -247,6 +273,9 @@ namespace TJAPlayer3
case 3:
return this.P4;
case 4:
return this.P5;
}
throw new IndexOutOfRangeException();
}
@ -269,6 +298,10 @@ namespace TJAPlayer3
case 3:
this.P4 = value;
return;
case 4:
this.P5 = value;
return;
}
throw new IndexOutOfRangeException();
}
@ -307,14 +340,14 @@ namespace TJAPlayer3
{
}
private void showComboEffect(int cat, int i, int rightX, int nPlayer)
private void showComboEffect(int cat, int i, int rightX, int y, int nPlayer)
{
if (TJAPlayer3.Tx.Taiko_Combo_Effect != null)
{
int a = rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[cat] * i;
float b = (TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[cat];
float c = (TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1] / 4) * TJAPlayer3.Skin.Game_Taiko_Combo_Scale[cat];
float d = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer];
float d = y;
if (ctコンボラメ.n現在の値 < 13) // First
{
@ -376,6 +409,51 @@ namespace TJAPlayer3
//X右座標を元にして、右座標 - ( コンボの幅 * 桁数 ) でX座標を求めていく?
int combo_text_x;
int combo_text_y;
int combo_x;
int combo_y;
int combo_ex_x;
int combo_ex_y;
int combo_ex4_x;
int combo_ex4_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
combo_text_x = TJAPlayer3.Skin.Game_Taiko_Combo_Text_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * nPlayer);
combo_text_y = TJAPlayer3.Skin.Game_Taiko_Combo_Text_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * nPlayer);
combo_x = TJAPlayer3.Skin.Game_Taiko_Combo_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * nPlayer);
combo_y = TJAPlayer3.Skin.Game_Taiko_Combo_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * nPlayer);
combo_ex_x = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * nPlayer);
combo_ex_y = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * nPlayer);
combo_ex4_x = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * nPlayer);
combo_ex4_y = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * nPlayer);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
combo_text_x = TJAPlayer3.Skin.Game_Taiko_Combo_Text_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * nPlayer);
combo_text_y = TJAPlayer3.Skin.Game_Taiko_Combo_Text_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * nPlayer);
combo_x = TJAPlayer3.Skin.Game_Taiko_Combo_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * nPlayer);
combo_y = TJAPlayer3.Skin.Game_Taiko_Combo_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * nPlayer);
combo_ex_x = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * nPlayer);
combo_ex_y = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * nPlayer);
combo_ex4_x = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * nPlayer);
combo_ex4_y = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * nPlayer);
}
else
{
combo_text_x = TJAPlayer3.Skin.Game_Taiko_Combo_Text_X[nPlayer];
combo_text_y = TJAPlayer3.Skin.Game_Taiko_Combo_Text_Y[nPlayer];
combo_x = TJAPlayer3.Skin.Game_Taiko_Combo_X[nPlayer];
combo_y = TJAPlayer3.Skin.Game_Taiko_Combo_Y[nPlayer];
combo_ex_x = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_X[nPlayer];
combo_ex_y = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer];
combo_ex4_x = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_X[nPlayer];
combo_ex4_y = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_Y[nPlayer];
}
int nY上辺位置px = TJAPlayer3.ConfigIni.bReverse.Drums ? 350 : 10;
int n数字とCOMBOを合わせた画像の全長px = ((44) * n桁数);
int x = 245 + (n数字とCOMBOを合わせた画像の全長px / 2);
@ -384,7 +462,7 @@ namespace TJAPlayer3
#region[ Combo text & Combo guides ]
TJAPlayer3.Tx.Taiko_Combo_Text?.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Combo_Text_X[nPlayer], TJAPlayer3.Skin.Game_Taiko_Combo_Text_Y[nPlayer]);
TJAPlayer3.Tx.Taiko_Combo_Text?.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, combo_text_x, combo_text_y);
int guide = 2;
var ccf = TJAPlayer3.stage演奏ドラム画面.CChartScore[nPlayer];
@ -394,7 +472,7 @@ namespace TJAPlayer3
if (ccf.nMiss > 0 || ccf.nMine > 0)
guide = 0;
TJAPlayer3.Tx.Taiko_Combo_Guide[guide]?.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Combo_Text_X[nPlayer], TJAPlayer3.Skin.Game_Taiko_Combo_Text_Y[nPlayer]);
TJAPlayer3.Tx.Taiko_Combo_Guide[guide]?.t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, combo_text_x, combo_text_y);
#endregion
@ -403,22 +481,22 @@ namespace TJAPlayer3
if (n桁数 == 1)
{
// 一桁ならそのままSkinConfigの座標を使用する。
rightX = TJAPlayer3.Skin.Game_Taiko_Combo_X[nPlayer];
rightX = combo_x;
}
else if (n桁数 == 2)
{
// 二桁ならSkinConfigの座標+パディング/2を使用する
rightX = TJAPlayer3.Skin.Game_Taiko_Combo_X[nPlayer] + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] / 2;
rightX = combo_x + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] / 2;
}
else if (n桁数 == 3)
{
// 三桁ならSkinConfigの座標+パディングを使用する
rightX = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_X[nPlayer] + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1];
rightX = combo_ex_x + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1];
}
else if (n桁数 == 4)
{
// 四桁ならSkinconfigの座標+パディング/2 + パディングを使用する
rightX = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_X[nPlayer] + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] / 2 + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2];
rightX = combo_ex4_x + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] / 2 + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2];
}
else
{
@ -431,14 +509,14 @@ namespace TJAPlayer3
// パディング/2を足す必要がある
// 右に表示される桁数を求め、-1する
rightDigit = n桁数 / 2 - 1;
rightX = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_X[nPlayer] + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] / 2 + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * rightDigit;
rightX = combo_ex4_x + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] / 2 + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * rightDigit;
break;
case 1:
// 2で割るとあまりが出る
// そのままパディングを足していく
// 右に表示される桁数を求める(中央除く -1)
rightDigit = (n桁数 - 1) / 2;
rightX = TJAPlayer3.Skin.Game_Taiko_Combo_Ex4_X[nPlayer] + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * rightDigit;
rightX = combo_ex4_x + TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * rightDigit;
break;
default:
break;
@ -460,7 +538,7 @@ namespace TJAPlayer3
var yScalling = ComboScale[this.ctコンボ加算[nPlayer].n現在の値];
TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0] + yScalling;
TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0];
TJAPlayer3.Tx.Taiko_Combo[0].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX, TJAPlayer3.Skin.Game_Taiko_Combo_Y[nPlayer], new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1]));
TJAPlayer3.Tx.Taiko_Combo[0].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX, combo_y, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1]));
}
}
else if (n桁数 <= 2)
@ -473,7 +551,7 @@ namespace TJAPlayer3
var yScalling = ComboScale[this.ctコンボ加算[nPlayer].n現在の値];
TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0] + yScalling;
TJAPlayer3.Tx.Taiko_Combo[0].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0];
TJAPlayer3.Tx.Taiko_Combo[0].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Y[nPlayer], new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1]));
TJAPlayer3.Tx.Taiko_Combo[0].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] * i, combo_y, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1]));
}
}
else
@ -483,10 +561,10 @@ namespace TJAPlayer3
var yScalling = ComboScale[this.ctコンボ加算[nPlayer].n現在の値];
TJAPlayer3.Tx.Taiko_Combo[2].vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0] + yScalling;
TJAPlayer3.Tx.Taiko_Combo[2].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[0];
TJAPlayer3.Tx.Taiko_Combo[2].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Y[nPlayer], new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1]));
TJAPlayer3.Tx.Taiko_Combo[2].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[0] * i, combo_y, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size[1]));
}
showComboEffect(0, i, rightX, nPlayer);
showComboEffect(0, i, rightX, combo_ex_y, nPlayer);
}
}
else if (n桁数 == 3)
@ -497,7 +575,7 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Taiko_Combo[3].vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1] + yScalling;
TJAPlayer3.Tx.Taiko_Combo[3].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1];
var yJumping = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctコンボ加算[nPlayer].n現在の値, 1] : 0;
TJAPlayer3.Tx.Taiko_Combo[3].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1]));
TJAPlayer3.Tx.Taiko_Combo[3].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1] * i, combo_ex_y + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1]));
}
else if (TJAPlayer3.Tx.Taiko_Combo[1] != null)
{
@ -505,10 +583,10 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Taiko_Combo[1].vc拡大縮小倍率.Y = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1] + yScalling;
TJAPlayer3.Tx.Taiko_Combo[1].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[1];
var yJumping = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctコンボ加算[nPlayer].n現在の値, 1] : 0;
TJAPlayer3.Tx.Taiko_Combo[1].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1]));
TJAPlayer3.Tx.Taiko_Combo[1].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[1] * i, combo_ex_y + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1]));
}
showComboEffect(1, i, rightX, nPlayer);
showComboEffect(1, i, rightX, combo_ex_y, nPlayer);
}
else
{
@ -518,7 +596,7 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Taiko_Combo[3].vc拡大縮小倍率.Y = 1.0f + yScalling;
TJAPlayer3.Tx.Taiko_Combo[3].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[2];
var yJumping = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctコンボ加算[nPlayer].n現在の値, 1] : 0;
TJAPlayer3.Tx.Taiko_Combo[3].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1]));
TJAPlayer3.Tx.Taiko_Combo[3].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * i, combo_ex_y + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1]));
}
else if (TJAPlayer3.Tx.Taiko_Combo[1] != null)
{
@ -526,10 +604,10 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Taiko_Combo[1].vc拡大縮小倍率.Y = 1.0f + yScalling;
TJAPlayer3.Tx.Taiko_Combo[1].vc拡大縮小倍率.X = TJAPlayer3.Skin.Game_Taiko_Combo_Scale[2];
var yJumping = TJAPlayer3.Skin.Game_Taiko_Combo_Ex_IsJumping ? (int)ComboScale_Ex[this.ctコンボ加算[nPlayer].n現在の値, 1] : 0;
TJAPlayer3.Tx.Taiko_Combo[1].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * i, TJAPlayer3.Skin.Game_Taiko_Combo_Ex_Y[nPlayer] + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1]));
TJAPlayer3.Tx.Taiko_Combo[1].t2D拡大率考慮下中心基準描画(TJAPlayer3.app.Device, rightX - TJAPlayer3.Skin.Game_Taiko_Combo_Padding[2] * i, combo_ex_y + yJumping, new Rectangle(n位の数[i] * TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], 0, TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[0], TJAPlayer3.Skin.Game_Taiko_Combo_Size_Ex[1]));
}
showComboEffect(2, i, rightX, nPlayer);
showComboEffect(2, i, rightX, combo_ex_y, nPlayer);
}
}
@ -562,10 +640,10 @@ namespace TJAPlayer3
public override void On活性化()
{
this.n現在のコンボ数 = new STCOMBO() { act = this };
this.n現在のコンボ数. = new int[4];
this.n現在のコンボ数. = new int[5];
this.status = new CSTATUS();
this.ctコンボ加算 = new CCounter[4];
for (int i = 0; i < 4; i++)
this.ctコンボ加算 = new CCounter[5];
for (int i = 0; i < 5; i++)
{
this.status[i].e現在のモード = EMode.;
this.status[i].nCOMBO値 = 0;
@ -604,7 +682,7 @@ namespace TJAPlayer3
if (this.b活性化してない)
return 0;
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
{
EEvent e今回の状態遷移イベント;
@ -701,11 +779,15 @@ namespace TJAPlayer3
break;
case 2:
this.tコンボ表示_ベース(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値);
this.tコンボ表示_太鼓(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値, 2);
break;
case 3:
this.tコンボ表示_ドラム(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値);
this.tコンボ表示_太鼓(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値, 3);
break;
case 4:
this.tコンボ表示_太鼓(this.status[i].nCOMBO値, this.status[i].nジャンプインデックス値, 4);
break;
}
break;

View File

@ -60,13 +60,13 @@ namespace TJAPlayer3
public override void On活性化()
{
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
ListCombo[i] = new List<CComboVoice>();
ListFloor[i] = new List<CComboVoice>();
}
VoiceIndex = new int[] { 0, 0 };
FloorIndex = new int[] { 0, 0 };
VoiceIndex = new int[] { 0, 0, 0, 0, 0 };
FloorIndex = new int[] { 0, 0, 0, 0, 0 };
base.On活性化();
}
public override void OnManagedリソースの作成()
@ -142,7 +142,7 @@ namespace TJAPlayer3
{
if( !base.b活性化してない )
{
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
foreach (var item in ListCombo[i])
{
@ -166,8 +166,8 @@ namespace TJAPlayer3
int[] VoiceIndex;
int[] FloorIndex;
readonly List<CComboVoice>[] ListCombo = new List<CComboVoice>[2];
readonly List<CComboVoice>[] ListFloor = new List<CComboVoice>[2];
readonly List<CComboVoice>[] ListCombo = new List<CComboVoice>[5];
readonly List<CComboVoice>[] ListFloor = new List<CComboVoice>[5];
//-----------------
#endregion
}

View File

@ -33,14 +33,17 @@ namespace TJAPlayer3
{
for (int i = 0; i < 3; i++)
{
dbゲージ増加量[i] = new float[2];
dbゲージ増加量[i] = new float[5];
for (int n = 0; n < 3; n++)
{
dbゲージ増加量_Branch[i, n] = new float[2];
dbゲージ増加量_Branch[i, n] = new float[5];
}
}
this.DTX[0] = TJAPlayer3.DTX;
this.DTX[1] = TJAPlayer3.DTX_2P;
this.DTX[2] = TJAPlayer3.DTX_3P;
this.DTX[3] = TJAPlayer3.DTX_4P;
this.DTX[4] = TJAPlayer3.DTX_5P;
actLVLNFont = new CActLVLNFont();
actLVLNFont.On活性化();
base.On活性化();
@ -107,7 +110,7 @@ namespace TJAPlayer3
{
//ダメージ値の計算は太鼓の達人譜面Wikiのものを参考にしました。
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
{
this.db現在のゲージ値[i] = 0;
}
@ -519,8 +522,8 @@ namespace TJAPlayer3
//-----------------
#endregion
private CDTX[] DTX = new CDTX[2];
public double[] db現在のゲージ値 = new double[4];
private CDTX[] DTX = new CDTX[5];
public double[] db現在のゲージ値 = new double[5];
protected CCounter ct炎;
protected CCounter ct虹アニメ;
protected CCounter ct虹透明度;

View File

@ -9,7 +9,7 @@ namespace TJAPlayer3
{
// プロパティ
public STDGBVALUE<double> db現在の譜面スクロール速度;
public double[] db現在の譜面スクロール速度 = new double[5];
// コンストラクタ
@ -24,7 +24,7 @@ namespace TJAPlayer3
public override void On活性化()
{
for( int i = 0; i < 4; i++ )
for( int i = 0; i < 5; i++ )
{
this.db現在の譜面スクロール速度[ i ] = (double) TJAPlayer3.ConfigIni.nScrollSpeed[ TJAPlayer3.GetActualPlayer(i) ];
this.n速度変更制御タイマ[ i ] = -1;
@ -41,7 +41,7 @@ namespace TJAPlayer3
if( base.b初めての進行描画 )
{
//this.n速度変更制御タイマ.Drums = this.n速度変更制御タイマ.Guitar = this.n速度変更制御タイマ.Bass = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
{
this.n速度変更制御タイマ[i] = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
@ -50,7 +50,7 @@ namespace TJAPlayer3
base.b初めての進行描画 = false;
}
long n現在時刻 = CSound管理.rc演奏用タイマ.n現在時刻;
for( int i = 0; i < 4; i++ )
for( int i = 0; i < 5; i++ )
{
double db譜面スクロールスピード = (double) TJAPlayer3.ConfigIni.nScrollSpeed[ TJAPlayer3.GetActualPlayer(i) ];
if( n現在時刻 < this.n速度変更制御タイマ[ i ] )
@ -89,7 +89,7 @@ namespace TJAPlayer3
#region [ private ]
//-----------------
private STDGBVALUE<long> n速度変更制御タイマ;
private long[] n速度変更制御タイマ = new long[5];
//-----------------
#endregion
}

View File

@ -287,14 +287,17 @@ namespace TJAPlayer3
public override void On活性化()
{
this.n現在表示中のスコア = new STDGBVALUE<long>[ 4 ];
this.n現在の本当のスコア = new STDGBVALUE<double>[ 4 ];
this.nスコアの増分 = new STDGBVALUE<long>[ 4 ];
for( int i = 0; i < 4; i++ )
this.n現在表示中のスコア = new STDGBVALUE<long>[ 5 ];
this.n現在の本当のスコア = new STDGBVALUE<double>[ 5 ];
this.nスコアの増分 = new STDGBVALUE<long>[ 5 ];
for( int i = 0; i < 5; i++ )
{
this.n現在表示中のスコア[ i ][ i ] = 0L;
this.n現在の本当のスコア[ i ][ i ] = 0L;
this.nスコアの増分[ i ][ i ] = 0L;
for (int j = 0; j < 4; j++)
{
this.n現在表示中のスコア[i][j] = 0L;
this.n現在の本当のスコア[i][j] = 0L;
this.nスコアの増分[i][j] = 0L;
}
}
for( int sc = 0; sc < 256; sc++ )
{
@ -309,13 +312,13 @@ namespace TJAPlayer3
this.ctTimer = new CCounter();
this.ct点数アニメタイマ = new CCounter[4];
for (int i = 0; i < 4; i++)
this.ct点数アニメタイマ = new CCounter[5];
for (int i = 0; i < 5; i++)
{
this.ct点数アニメタイマ[i] = new CCounter();
}
this.ctボーナス加算タイマ = new CCounter[4];
for (int i = 0; i < 4; i++)
this.ctボーナス加算タイマ = new CCounter[5];
for (int i = 0; i < 5; i++)
{
this.ctボーナス加算タイマ[i] = new CCounter();
}
@ -381,6 +384,36 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Taiko_Score[2].t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, x, y, rectangle);
}
break;
case 3:
if (TJAPlayer3.Tx.Taiko_Score[3] != null)
{
//this.txScore.color4 = new SlimDX.Color4( 0.4f, 0.5f, 1.0f );
//this.txScore.color4 = CDTXMania.Skin.cScoreColor2P;
TJAPlayer3.Tx.Taiko_Score[3].Opacity = alpha;
TJAPlayer3.Tx.Taiko_Score[3].vc拡大縮小倍率.Y = 1;
TJAPlayer3.Tx.Taiko_Score[3].t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, x, y, rectangle);
}
break;
case 4:
if (TJAPlayer3.Tx.Taiko_Score[4] != null)
{
//this.txScore.color4 = new SlimDX.Color4( 0.4f, 0.5f, 1.0f );
//this.txScore.color4 = CDTXMania.Skin.cScoreColor2P;
TJAPlayer3.Tx.Taiko_Score[4].Opacity = alpha;
TJAPlayer3.Tx.Taiko_Score[4].vc拡大縮小倍率.Y = 1;
TJAPlayer3.Tx.Taiko_Score[4].t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, x, y, rectangle);
}
break;
case 5:
if (TJAPlayer3.Tx.Taiko_Score[5] != null)
{
//this.txScore.color4 = new SlimDX.Color4( 0.4f, 0.5f, 1.0f );
//this.txScore.color4 = CDTXMania.Skin.cScoreColor2P;
TJAPlayer3.Tx.Taiko_Score[5].Opacity = alpha;
TJAPlayer3.Tx.Taiko_Score[5].vc拡大縮小倍率.Y = 1;
TJAPlayer3.Tx.Taiko_Score[5].t2D拡大率考慮下基準描画(TJAPlayer3.app.Device, x, y, rectangle);
}
break;
}
break;
}

View File

@ -252,7 +252,7 @@ namespace TJAPlayer3
}
public int t進行描画( int x, int y )
{
if (TJAPlayer3.stage演奏ドラム画面.actDan.IsAnimating) return 0;
if (TJAPlayer3.stage演奏ドラム画面.actDan.IsAnimating || TJAPlayer3.ConfigIni.nPlayerCount > 2) return 0;
if( !base.b活性化してない && !this.bMute )
{
this.ct進行用.t進行Loop();

View File

@ -12,7 +12,7 @@ namespace TJAPlayer3
// プロパティ
public double dbBPM;
public readonly int[] NowMeasure = new int[2];
public readonly int[] NowMeasure = new int[5];
public double dbSCROLL;
public int[] _chipCounts = new int[2];
@ -28,7 +28,7 @@ namespace TJAPlayer3
public override void On活性化()
{
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
NowMeasure[i] = 0;
}

View File

@ -52,7 +52,7 @@ namespace TJAPlayer3
/// </summary>
public void Reset()
{
for ( int i = 0; i < 4; i++ )
for ( int i = 0; i < 5; i++ )
{
ccounter[ i ] = new CCounter();
b演奏チップがつでもバーを通過した[ i ] = false;
@ -170,7 +170,7 @@ namespace TJAPlayer3
if( disposeManagedObjects )
{
// (A) Managed リソースの解放
for ( int i = 0; i < 4; i++ )
for ( int i = 0; i < 5; i++ )
{
// ctInvisibleTimer[ i ].Dispose();
ccounter[ i ].t停止();
@ -189,8 +189,8 @@ namespace TJAPlayer3
//-----------------
#endregion
private STDGBVALUE<CCounter> ccounter;
private CCounter[] ccounter = new CCounter[5];
private bool bDispose完了済み = false;
private STDGBVALUE<bool> b演奏チップがつでもバーを通過した;
private bool[] b演奏チップがつでもバーを通過した = new bool[5];
}
}

View File

@ -29,11 +29,11 @@ namespace TJAPlayer3
Drums.nスコア = (long) this.actScore.Get( E楽器パート.DRUMS, 0 );
Drums.dbゲーム型スキル値 = CScoreIni.tゲーム型スキルを計算して返す(TJAPlayer3.DTX.LEVEL.Drums, TJAPlayer3.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.actCombo.n現在のコンボ数.[0], E楽器パート.DRUMS, bIsAutoPlay);
Drums.db演奏型スキル値 = CScoreIni.t演奏型スキルを計算して返す( TJAPlayer3.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.nヒット数_Auto含まない.Drums.Great, this.nヒット数_Auto含まない.Drums.Good, this.nヒット数_Auto含まない.Drums.Poor, this.nヒット数_Auto含まない.Drums.Miss, E楽器パート.DRUMS, bIsAutoPlay );
Drums.nPerfect数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? this.nヒット数_Auto含む.Drums.Perfect : this.nヒット数_Auto含まない.Drums.Perfect;
Drums.nGreat数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? this.nヒット数_Auto含む.Drums.Great : this.nヒット数_Auto含まない.Drums.Great;
Drums.nGood数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? this.nヒット数_Auto含む.Drums.Good : this.nヒット数_Auto含まない.Drums.Good;
Drums.nPoor数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? this.nヒット数_Auto含む.Drums.Poor : this.nヒット数_Auto含まない.Drums.Poor;
Drums.nMiss数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay ? this.nヒット数_Auto含む.Drums.Miss : this.nヒット数_Auto含まない.Drums.Miss;
Drums.nPerfect数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] ? this.nヒット数_Auto含む.Drums.Perfect : this.nヒット数_Auto含まない.Drums.Perfect;
Drums.nGreat数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] ? this.nヒット数_Auto含む.Drums.Great : this.nヒット数_Auto含まない.Drums.Great;
Drums.nGood数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] ? this.nヒット数_Auto含む.Drums.Good : this.nヒット数_Auto含まない.Drums.Good;
Drums.nPoor数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] ? this.nヒット数_Auto含む.Drums.Poor : this.nヒット数_Auto含まない.Drums.Poor;
Drums.nMiss数 = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] ? this.nヒット数_Auto含む.Drums.Miss : this.nヒット数_Auto含まない.Drums.Miss;
Drums.nPerfect数_Auto含まない = this.nヒット数_Auto含まない.Drums.Perfect;
Drums.nGreat数_Auto含まない = this.nヒット数_Auto含まない.Drums.Great;
Drums.nGood数_Auto含まない = this.nヒット数_Auto含まない.Drums.Good;
@ -75,7 +75,7 @@ namespace TJAPlayer3
Drums. = DateTime.Now.ToString();
Drums.Hash = CScoreIni.t演奏セクションのMD5を求めて返す( Drums );
Drums.fゲージ = (float)this.actGauge.db現在のゲージ値[ 0 ];
if( !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay )
if( !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0])
{
Drums.nハイスコア = TJAPlayer3.stage選曲.r確定されたスコア..nハイスコア; //2015.06.16 kairera0467 他難易度の上書き防止。
if( TJAPlayer3.stage選曲.r確定されたスコア..nハイスコア[ TJAPlayer3.stage選曲.n確定された曲の難易度[0]] < (int)this.actScore.Get( E楽器パート.DRUMS, 0 ) )
@ -92,14 +92,14 @@ namespace TJAPlayer3
// CStage 実装
public int[] nNoteCount = new int[4];
public int[] nBalloonCount = new int[4];
public double[] nRollTimeMs = new double[4];
public double[] nAddScoreNiji = new double[4];
public int[] nNoteCount = new int[5];
public int[] nBalloonCount = new int[5];
public double[] nRollTimeMs = new double[5];
public double[] nAddScoreNiji = new double[5];
public override void On活性化()
{
listChip = new List<CDTX.CChip>[ 4 ];
listChip = new List<CDTX.CChip>[ 5 ];
for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
{
nNoteCount[i] = 0;
@ -115,6 +115,15 @@ namespace TJAPlayer3
case 1:
listChip[i] = TJAPlayer3.DTX_2P.listChip;
break;
case 2:
listChip[i] = TJAPlayer3.DTX_3P.listChip;
break;
case 3:
listChip[i] = TJAPlayer3.DTX_4P.listChip;
break;
case 4:
listChip[i] = TJAPlayer3.DTX_5P.listChip;
break;
}
int n整数値管理 = 0;
@ -138,8 +147,26 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
var _dtx = (i == 0) ? TJAPlayer3.DTX : TJAPlayer3.DTX_2P;
CDTX _dtx = TJAPlayer3.DTX;
switch (i) //2017.08.11 kairera0467
{
case 0:
break;
case 1:
_dtx = TJAPlayer3.DTX_2P;
break;
case 2:
_dtx = TJAPlayer3.DTX_3P;
break;
case 3:
_dtx = TJAPlayer3.DTX_4P;
break;
case 4:
_dtx = TJAPlayer3.DTX_5P;
break;
default:
break;
}
int _totalNotes = 0;
int _totalBalloons = 0;
@ -269,9 +296,9 @@ namespace TJAPlayer3
NowAIBattleSectionCount = 0;
ctChipAnime = new CCounter[2];
ctChipAnimeLag = new CCounter[2];
for (int i = 0; i < 2; i++)
ctChipAnime = new CCounter[5];
ctChipAnimeLag = new CCounter[5];
for (int i = 0; i < 5; i++)
{
ctChipAnime[i] = new CCounter();
ctChipAnimeLag[i] = new CCounter();
@ -329,13 +356,13 @@ namespace TJAPlayer3
this.tステータスパネルの選択();
this.tパネル文字列の設定();
//this.演奏判定ライン座標();
this.bIsGOGOTIME = new bool[] { false, false, false, false };
this.bIsMiss = new bool[] { false, false, false, false };
this.bUseBranch = new bool[]{ false, false, false, false };
this.n現在のコース = new CDTX.ECourse[4];
this.n次回のコース = new CDTX.ECourse[4];
this.bIsGOGOTIME = new bool[] { false, false, false, false, false };
this.bIsMiss = new bool[] { false, false, false, false, false };
this.bUseBranch = new bool[]{ false, false, false, false, false };
this.n現在のコース = new CDTX.ECourse[5];
this.n次回のコース = new CDTX.ECourse[5];
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
this.b強制的に分岐させた[i] = false;
@ -356,18 +383,18 @@ namespace TJAPlayer3
}
this.nレーン用表示コース = new CDTX.ECourse[4];
this.b連打中 = new bool[] { false, false, false, false };
this.n現在の連打数 = new int[]{ 0, 0, 0, 0 };
this.n合計連打数 = new int[]{ 0, 0, 0, 0 };
this.n分岐した回数 = new int[ 4 ];
this.Chara_MissCount = new int[4];
this.nレーン用表示コース = new CDTX.ECourse[5];
this.b連打中 = new bool[] { false, false, false, false, false };
this.n現在の連打数 = new int[]{ 0, 0, 0, 0, 0 };
this.n合計連打数 = new int[]{ 0, 0, 0, 0, 0 };
this.n分岐した回数 = new int[ 5 ];
this.Chara_MissCount = new int[5];
for (int i = 0; i < 2; i++)
{
ShownLyric[i] = 0;
}
this.nJPOSSCROLL = new int[ 4 ];
this.bLEVELHOLD = new bool[]{ false, false, false, false };
this.nJPOSSCROLL = new int[ 5 ];
this.bLEVELHOLD = new bool[]{ false, false, false, false, false };
// Double play set here
@ -382,8 +409,11 @@ namespace TJAPlayer3
//this.bIsAutoPlay.Guitar = CDTXMania.ConfigIni.bギターが全部オートプレイである;
//this.bIsAutoPlay.Bass = CDTXMania.ConfigIni.bベースが全部オートプレイである;
// this.nRisky = CDTXMania.ConfigIni.nRisky; // #23559 2011.7.28 yyagi
actGauge.Init( TJAPlayer3.ConfigIni.nRisky, 0 ); // #23559 2011.7.28 yyagi
if(bDoublePlay) actGauge.Init( TJAPlayer3.ConfigIni.nRisky, 1 ); // #23559 2011.7.28 yyagi
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
actGauge.Init(TJAPlayer3.ConfigIni.nRisky, i); // #23559 2011.7.28 yyagi
}
this.nPolyphonicSounds = TJAPlayer3.ConfigIni.nPoliphonicSounds;
e判定表示優先度 = TJAPlayer3.ConfigIni.e判定表示優先度;
@ -452,8 +482,8 @@ namespace TJAPlayer3
// this.sw2 = new Stopwatch();
// this.gclatencymode = GCSettings.LatencyMode;
// GCSettings.LatencyMode = GCLatencyMode.Batch; // 演奏画面中はGCを抑止する
this.bIsAlreadyCleared = new bool[2];
this.bIsAlreadyMaxed = new bool[2];
this.bIsAlreadyCleared = new bool[5];
this.bIsAlreadyMaxed = new bool[5];
this.ListDan_Number = 0;
this.IsDanFailed = false;
@ -493,7 +523,7 @@ namespace TJAPlayer3
this.ctチップ模様アニメ.Bass = null;
this.ctチップ模様アニメ.Taiko = null;
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
ctChipAnime[i] = null;
ctChipAnimeLag[i] = null;
@ -630,6 +660,66 @@ namespace TJAPlayer3
public int nMine;
}
public int[] NoteOriginX
{
get
{
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
return new int[] {
TJAPlayer3.Skin.nScrollField_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * 0),
TJAPlayer3.Skin.nScrollField_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * 1),
TJAPlayer3.Skin.nScrollField_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * 2),
TJAPlayer3.Skin.nScrollField_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * 3),
TJAPlayer3.Skin.nScrollField_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * 4)
};
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
return new int[] {
TJAPlayer3.Skin.nScrollField_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * 0),
TJAPlayer3.Skin.nScrollField_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * 1),
TJAPlayer3.Skin.nScrollField_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * 2),
TJAPlayer3.Skin.nScrollField_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * 3)
};
}
else
{
return TJAPlayer3.Skin.nScrollFieldX;
}
}
}
public int[] NoteOriginY
{
get
{
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
return new int[] {
TJAPlayer3.Skin.nScrollField_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * 0),
TJAPlayer3.Skin.nScrollField_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * 1),
TJAPlayer3.Skin.nScrollField_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * 2),
TJAPlayer3.Skin.nScrollField_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * 3),
TJAPlayer3.Skin.nScrollField_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * 4)
};
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
return new int[] {
TJAPlayer3.Skin.nScrollField_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * 0),
TJAPlayer3.Skin.nScrollField_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * 1),
TJAPlayer3.Skin.nScrollField_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * 2),
TJAPlayer3.Skin.nScrollField_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * 3)
};
}
else
{
return TJAPlayer3.Skin.nScrollFieldY;
}
}
}
public CAct演奏AVI actAVI;
public Rainbow Rainbow;
protected CAct演奏チップファイアGB actChipFireGB;
@ -723,34 +813,34 @@ namespace TJAPlayer3
protected STAUTOPLAY bIsAutoPlay; // #24239 2011.1.23 yyagi
// protected int nRisky_InitialVar, nRiskyTime; // #23559 2011.7.28 yyagi → CAct演奏ゲージ共通クラスに隠蔽
protected int nPolyphonicSounds;
protected List<CDTX.CChip>[] listChip = new List<CDTX.CChip>[4];
protected List<CDTX.CChip>[] listChip = new List<CDTX.CChip>[5];
protected Dictionary<int, CDTX.CWAV> listWAV;
protected CInvisibleChip cInvisibleChip;
protected bool bUseOSTimer;
protected E判定表示優先度 e判定表示優先度;
public CBRANCHSCORE[] CBranchScore = new CBRANCHSCORE[6];
public CBRANCHSCORE[] CChartScore = new CBRANCHSCORE[2];
public CBRANCHSCORE[] CChartScore = new CBRANCHSCORE[5];
public bool[] bIsGOGOTIME = new bool[4];
public bool[] bIsMiss = new bool[4];
public bool[] bUseBranch = new bool[ 4 ];
public CDTX.ECourse[] n現在のコース = new CDTX.ECourse[4]; //0:普通譜面 1:玄人譜面 2:達人譜面
public CDTX.ECourse[] n次回のコース = new CDTX.ECourse[4];
public CDTX.ECourse[] nレーン用表示コース = new CDTX.ECourse[4];
protected bool[] b譜面分岐中 = new bool[] { false, false, false, false };
protected int[] n分岐した回数 = new int[ 4 ];
protected int[] nJPOSSCROLL = new int[ 4 ];
public bool[] bIsGOGOTIME = new bool[5];
public bool[] bIsMiss = new bool[5];
public bool[] bUseBranch = new bool[ 5 ];
public CDTX.ECourse[] n現在のコース = new CDTX.ECourse[5]; //0:普通譜面 1:玄人譜面 2:達人譜面
public CDTX.ECourse[] n次回のコース = new CDTX.ECourse[5];
public CDTX.ECourse[] nレーン用表示コース = new CDTX.ECourse[5];
protected bool[] b譜面分岐中 = new bool[] { false, false, false, false, false };
protected int[] n分岐した回数 = new int[ 5 ];
protected int[] nJPOSSCROLL = new int[ 5 ];
public bool[] b強制的に分岐させた = new bool[] { false, false, false, false };
public bool[] bLEVELHOLD = new bool[] { false, false, false, false };
public bool[] b強制的に分岐させた = new bool[] { false, false, false, false, false };
public bool[] bLEVELHOLD = new bool[] { false, false, false, false, false };
protected int nListCount;
private readonly int[] ShownLyric = new int[] { 0, 0 };
public bool[] b連打中 = new bool[]{ false, false, false, false }; //奥の手
private int[] n合計連打数 = new int[ 4 ];
protected int[] n風船残り = new int[ 4 ];
protected int[] n現在の連打数 = new int[ 4 ];
public bool[] b連打中 = new bool[]{ false, false, false, false, false }; //奥の手
private int[] n合計連打数 = new int[ 5 ];
protected int[] n風船残り = new int[ 5 ];
protected int[] n現在の連打数 = new int[ 5 ];
public int[] Chara_MissCount;
protected E連打State eRollState;
@ -762,29 +852,25 @@ namespace TJAPlayer3
protected int[] nStoredHit;
public CDTX.CChip[] chip現在処理中の連打チップ = new CDTX.CChip[ 4 ];
public CDTX.CChip[] chip現在処理中の連打チップ = new CDTX.CChip[ 5 ];
protected const int NOTE_GAP = 25;
public int nLoopCount_Clear;
protected int[] nScore = new int[11];
protected int[] nHand = new int[4];
protected CSound soundRed;
protected CSound soundBlue;
protected CSound soundAdlib;
protected CSound soundClap;
protected CSound soundRed2;
protected CSound soundBlue2;
protected CSound soundAdlib2;
protected CSound soundClap2;
protected int[] nHand = new int[5];
protected CSound[] soundRed = new CSound[5];
protected CSound[] soundBlue = new CSound[5];
protected CSound[] soundAdlib = new CSound[5];
protected CSound[] soundClap = new CSound[5];
public bool bDoublePlay; // 2016.08.21 kairera0467 表示だけ。
protected Stopwatch sw; // 2011.6.13 最適化検討用のストップウォッチ
public int ListDan_Number;
private bool IsDanFailed;
private bool[] b強制分岐譜面 = new bool[4];
private bool[] b強制分岐譜面 = new bool[5];
private CDTX.E分岐種類 eBranch種類;
public double nBranch条件数値A;
public double nBranch条件数値B;
private readonly int[] NowProcessingChip = new int[] { 0, 0 };
private readonly int[] NowProcessingChip = new int[] { 0, 0, 0, 0, 0 };
public int AIBattleState;
@ -1105,63 +1191,28 @@ namespace TJAPlayer3
if (index == 0x11 || index == 0x13 || index == 0x1A || index == 0x101)
{
if (pChip.nPlayerSide == 0)
{
this.soundRed?.t再生を開始する();
}
else
{
this.soundRed2?.t再生を開始する();
}
this.soundRed[pChip.nPlayerSide]?.t再生を開始する();
if ((index == 0x13 && _gt == EGameType.KONGA) || index == 0x101)
{
if (pChip.nPlayerSide == 0)
{
this.soundBlue?.t再生を開始する();
}
else
{
this.soundBlue2?.t再生を開始する();
}
this.soundBlue[pChip.nPlayerSide]?.t再生を開始する();
}
}
else if (index == 0x12 || index == 0x14 || index == 0x1B)
{
if (index == 0x14 && _gt == EGameType.KONGA)
{
if (pChip.nPlayerSide == 0)
{
this.soundClap?.t再生を開始する();
this.soundClap[pChip.nPlayerSide]?.t再生を開始する();
}
else
{
this.soundClap2?.t再生を開始する();
}
}
else
{
if (pChip.nPlayerSide == 0)
{
this.soundBlue?.t再生を開始する();
}
else
{
this.soundBlue2?.t再生を開始する();
}
this.soundBlue[pChip.nPlayerSide]?.t再生を開始する();
}
}
else if (index == 0x1F)
{
if (pChip.nPlayerSide == 0)
{
this.soundAdlib?.t再生を開始する();
}
else
{
this.soundAdlib2?.t再生を開始する();
}
this.soundAdlib[pChip.nPlayerSide]?.t再生を開始する();
}
if (this.nHand[nPlayer] == 0)
@ -1305,10 +1356,7 @@ namespace TJAPlayer3
//赤か青かの分岐
if ( sort == 0|| sort == 2 )
{
if (pChip.nPlayerSide == 0)
this.soundRed?.t再生を開始する();
else
this.soundRed2?.t再生を開始する();
this.soundRed[pChip.nPlayerSide]?.t再生を開始する();
if (pChip.nチャンネル番号 == 0x15 || _gt == EGameType.KONGA || (_gt == EGameType.TAIKO && pChip.nチャンネル番号 == 0x21))
{
@ -1325,10 +1373,7 @@ namespace TJAPlayer3
}
else if (sort == 1 || sort == 3)
{
if (pChip.nPlayerSide == 0)
this.soundBlue?.t再生を開始する();
else
this.soundBlue2?.t再生を開始する();
this.soundBlue[pChip.nPlayerSide]?.t再生を開始する();
if (pChip.nチャンネル番号 == 0x15 || _gt == EGameType.KONGA || (_gt == EGameType.TAIKO && pChip.nチャンネル番号 == 0x21))
{
@ -1345,10 +1390,7 @@ namespace TJAPlayer3
}
else if (sort == 4)
{
if (pChip.nPlayerSide == 0)
this.soundClap?.t再生を開始する();
else
this.soundClap2?.t再生を開始する();
this.soundClap[pChip.nPlayerSide]?.t再生を開始する();
TJAPlayer3.stage演奏ドラム画面.FlyingNotes.Start(4, nPlayer, true);
}
@ -1432,10 +1474,7 @@ namespace TJAPlayer3
this.actScore.Add(E楽器パート.TAIKO, this.bIsAutoPlay, 100L, player);
}
//CDTXMania.Skin.soundRed.t再生する();
if (pChip.nPlayerSide == 0)
this.soundRed?.t再生を開始する();
else
this.soundRed2?.t再生を開始する();
this.soundRed[pChip.nPlayerSide]?.t再生を開始する();
if ( pChip.nBalloon == pChip.nRollCount )
@ -1494,16 +1533,13 @@ namespace TJAPlayer3
{
//unsafeコードにつき、デバッグ中の変更厳禁!
bool bAutoPlay = false;
bool bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer];
bool bBombHit = false;
switch (nPlayer)
{
case 0:
bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay;
break;
case 1:
bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode;
bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode;
break;
}
@ -2070,7 +2106,7 @@ namespace TJAPlayer3
//CDTXMania.act文字コンソール.tPrint(620, 80, C文字コンソール.Eフォント種別.白, "BPM: " + dbUnit.ToString());
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
if (this.actCombo.n現在のコンボ数[i] == 50 || this.actCombo.n現在のコンボ数[i] == 300)
{
@ -2339,6 +2375,9 @@ namespace TJAPlayer3
case E楽器パート.TAIKO:
this.actCombo.n現在のコンボ数.P1 = 0;
this.actCombo.n現在のコンボ数.P2 = 0;
this.actCombo.n現在のコンボ数.P3 = 0;
this.actCombo.n現在のコンボ数.P4 = 0;
this.actCombo.n現在のコンボ数.P5 = 0;
break;
default:
@ -2988,10 +3027,10 @@ namespace TJAPlayer3
{
if (keyboard.bキーが押された((int)SlimDXKeys.Key.F6))
{
if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay == false)
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = true;
if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] == false)
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] = true;
else
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay = false;
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] = false;
}
}
}
@ -3000,10 +3039,10 @@ namespace TJAPlayer3
if (keyboard.bキーが押された((int)SlimDXKeys.Key.F7))
{
if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P == false)
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = true;
if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1] == false)
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1] = true;
else
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P = false;
TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1] = false;
}
#endif
if ( !this.actPauseMenu.bIsActivePopupMenu && this.bPAUSE && ( ( base.eフェーズID != CStage.Eフェーズ._STAGE_FAILED ) ) && ( base.eフェーズID != CStage.Eフェーズ._STAGE_FAILED_フェードアウト ) )
@ -3166,16 +3205,22 @@ namespace TJAPlayer3
CConfigIni configIni = TJAPlayer3.ConfigIni;
CDTX dTX = TJAPlayer3.DTX;
bool bAutoPlay = false;
bool bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer];
switch ( nPlayer ) //2017.08.11 kairera0467
{
case 0:
bAutoPlay = configIni.b太鼓パートAutoPlay;
break;
case 1:
bAutoPlay = configIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode;
bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode;
dTX = TJAPlayer3.DTX_2P;
break;
case 2:
dTX = TJAPlayer3.DTX_3P;
break;
case 3:
dTX = TJAPlayer3.DTX_4P;
break;
case 4:
dTX = TJAPlayer3.DTX_5P;
break;
default:
break;
}
@ -3472,7 +3517,7 @@ namespace TJAPlayer3
this.actChara.b演奏中[nPlayer] = true;
if( this.actPlayInfo.NowMeasure[nPlayer] == 0 )
{
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
ctChipAnime[i] = new CCounter(0, 3, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * 1 / 4 / (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0), CSound管理.rc演奏用タイマ);
}
@ -3699,7 +3744,7 @@ namespace TJAPlayer3
}
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
ctChipAnime[i] = new CCounter(0, 3, 60.0 / TJAPlayer3.stage演奏ドラム画面.actPlayInfo.dbBPM * 1 / 4, CSound管理.rc演奏用タイマ);
}
@ -4090,16 +4135,22 @@ namespace TJAPlayer3
CConfigIni configIni = TJAPlayer3.ConfigIni;
CDTX dTX = TJAPlayer3.DTX;
bool bAutoPlay = false;
bool bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer];
switch ( nPlayer ) //2017.08.11 kairera0467
{
case 0:
bAutoPlay = configIni.b太鼓パートAutoPlay;
break;
case 1:
bAutoPlay = configIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode;
bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode;
dTX = TJAPlayer3.DTX_2P;
break;
case 2:
dTX = TJAPlayer3.DTX_3P;
break;
case 3:
dTX = TJAPlayer3.DTX_4P;
break;
case 4:
dTX = TJAPlayer3.DTX_5P;
break;
default:
break;
}
@ -4310,6 +4361,15 @@ namespace TJAPlayer3
case 1:
dTX = TJAPlayer3.DTX_2P;
break;
case 2:
dTX = TJAPlayer3.DTX_3P;
break;
case 3:
dTX = TJAPlayer3.DTX_4P;
break;
case 4:
dTX = TJAPlayer3.DTX_5P;
break;
default:
break;
}
@ -4450,7 +4510,7 @@ namespace TJAPlayer3
this.t数値の初期化( true, true );
this.actAVI.tReset();
this.actPanel.t歌詞テクスチャを削除する();
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
this.t演奏位置の変更(0, i);
this.actPlayInfo.NowMeasure[i] = 0;
@ -4496,8 +4556,10 @@ namespace TJAPlayer3
this.actCombo.On活性化();
this.actScore.On活性化();
this.actGauge.Init( TJAPlayer3.ConfigIni.nRisky, 0 );
if (bDoublePlay) this.actGauge.Init( TJAPlayer3.ConfigIni.nRisky, 1 );
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
this.actGauge.Init(TJAPlayer3.ConfigIni.nRisky, i);
}
}
if( b演奏状態 )
{
@ -4515,7 +4577,7 @@ namespace TJAPlayer3
this.n合計連打数[ i ] = 0;
this.n分岐した回数[ i ] = 0;
}
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
this.actComboVoice.tReset(i);
NowProcessingChip[i] = 0;
@ -4523,7 +4585,7 @@ namespace TJAPlayer3
}
this.ReSetScore(TJAPlayer3.DTX.nScoreInit[0, TJAPlayer3.stage選曲.n確定された曲の難易度[0]], TJAPlayer3.DTX.nScoreDiff[TJAPlayer3.stage選曲.n確定された曲の難易度[0]]);
this.nHand = new int[]{ 0, 0, 0, 0 };
this.nHand = new int[]{ 0, 0, 0, 0, 0 };
}
public void t演奏位置の変更( int nStartBar, int nPlayer )
@ -4537,6 +4599,15 @@ namespace TJAPlayer3
case 1:
dTX = TJAPlayer3.DTX_2P;
break;
case 2:
dTX = TJAPlayer3.DTX_3P;
break;
case 3:
dTX = TJAPlayer3.DTX_4P;
break;
case 4:
dTX = TJAPlayer3.DTX_5P;
break;
default:
break;
}
@ -4748,7 +4819,7 @@ namespace TJAPlayer3
protected abstract void t進行描画_チップ_小節線( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, int nPlayer );
protected void t進行描画_チップアニメ()
{
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
ctChipAnime[i].t進行LoopDb();
ctChipAnimeLag[i].t進行();

View File

@ -23,7 +23,7 @@ namespace TJAPlayer3
public override void On活性化()
{
for( int i = 0; i < 16; i++ )
for( int i = 0; i < 25; i++ )
{
STパッド状態 stパッド状態 = new STパッド状態();
stパッド状態.n明るさ = 0;
@ -39,10 +39,10 @@ namespace TJAPlayer3
public override void OnManagedリソースの作成()
{
this.ctレベルアップダウン = new CCounter[ 4 ];
this.After = new CDTX.ECourse[ 4 ];
this.Before = new CDTX.ECourse[ 4 ];
for ( int i = 0; i < 4; i++ )
this.ctレベルアップダウン = new CCounter[ 5 ];
this.After = new CDTX.ECourse[ 5 ];
this.Before = new CDTX.ECourse[ 5 ];
for ( int i = 0; i < 5; i++ )
{
this.ctレベルアップダウン[ i ] = new CCounter();
}
@ -73,7 +73,7 @@ namespace TJAPlayer3
}
while( ( num - this.nフラッシュ制御タイマ ) >= 20 )
{
for( int j = 0; j < 16; j++ )
for( int j = 0; j < 25; j++ )
{
if( this.stパッド状態[ j ].n明るさ > 0 )
{
@ -86,45 +86,151 @@ namespace TJAPlayer3
//this.nHS = TJAPlayer3.ConfigIni.nScrollSpeed.Drums < 8 ? TJAPlayer3.ConfigIni.nScrollSpeed.Drums : 7;
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
int bg_x;
int bg_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
bg_x = TJAPlayer3.Skin.Game_Taiko_Background_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
bg_y = TJAPlayer3.Skin.Game_Taiko_Background_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
bg_x = TJAPlayer3.Skin.Game_Taiko_Background_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
bg_y = TJAPlayer3.Skin.Game_Taiko_Background_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
}
else
{
bg_x = TJAPlayer3.Skin.Game_Taiko_Background_X[i];
bg_y = TJAPlayer3.Skin.Game_Taiko_Background_Y[i];
}
CTexture tex = null;
switch (i)
{
case 0:
{
if (TJAPlayer3.ConfigIni.bTokkunMode)
{
if (TJAPlayer3.P1IsBlue())
tex = TJAPlayer3.Tx.Taiko_Background[6];
else
tex = TJAPlayer3.Tx.Taiko_Background[5];
}
else
{
if (TJAPlayer3.P1IsBlue())
tex = TJAPlayer3.Tx.Taiko_Background[4];
else
tex = TJAPlayer3.Tx.Taiko_Background[0];
}
}
break;
case 1:
{
if (TJAPlayer3.ConfigIni.bAIBattleMode)
{
tex = TJAPlayer3.Tx.Taiko_Background[9];
}
else
{
if (TJAPlayer3.ConfigIni.nPlayerCount == 2)
tex = TJAPlayer3.Tx.Taiko_Background[1];
else
tex = TJAPlayer3.Tx.Taiko_Background[4];
}
}
break;
case 2:
tex = TJAPlayer3.Tx.Taiko_Background[7];
break;
case 3:
tex = TJAPlayer3.Tx.Taiko_Background[8];
break;
case 4:
tex = TJAPlayer3.Tx.Taiko_Background[11];
break;
}
tex?.t2D描画(TJAPlayer3.app.Device, bg_x, bg_y);
}
/*
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan) // Dan-i Dojo
TJAPlayer3.Tx.Taiko_Background[2]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[0], TJAPlayer3.Skin.Game_Taiko_Background_Y[0]);
TJAPlayer3.Tx.Taiko_Background[2]?.t2D描画(TJAPlayer3.app.Device, bg_x[0], bg_y[0]);
else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower) // Taiko Towers
TJAPlayer3.Tx.Taiko_Background[3]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[0], TJAPlayer3.Skin.Game_Taiko_Background_Y[0]);
TJAPlayer3.Tx.Taiko_Background[3]?.t2D描画(TJAPlayer3.app.Device, bg_x[0], bg_y[0]);
else if (!TJAPlayer3.ConfigIni.bTokkunMode
|| TJAPlayer3.Tx.Taiko_Background[5] == null
|| TJAPlayer3.Tx.Taiko_Background[6] == null)
{
// Taiko Mode
if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay)
{
if (TJAPlayer3.ConfigIni.nPlayerCount == 2)
{
// 2P
if (!TJAPlayer3.ConfigIni.bAIBattleMode || TJAPlayer3.Tx.Taiko_Background[9] == null)
TJAPlayer3.Tx.Taiko_Background[1]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[1], TJAPlayer3.Skin.Game_Taiko_Background_Y[1]);
TJAPlayer3.Tx.Taiko_Background[1]?.t2D描画(TJAPlayer3.app.Device, bg_x[1], bg_y[1]);
else
TJAPlayer3.Tx.Taiko_Background[9]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[1], TJAPlayer3.Skin.Game_Taiko_Background_Y[1]);
TJAPlayer3.Tx.Taiko_Background[9]?.t2D描画(TJAPlayer3.app.Device, bg_x[1], bg_y[1]);
}
else
{
if (TJAPlayer3.ConfigIni.nPlayerCount >= 2)
TJAPlayer3.Tx.Taiko_Background[4]?.t2D描画(TJAPlayer3.app.Device, bg_x[1], bg_y[1]);
if (TJAPlayer3.ConfigIni.nPlayerCount >= 3)
TJAPlayer3.Tx.Taiko_Background[7]?.t2D描画(TJAPlayer3.app.Device, bg_x[2], bg_y[2]);
if (TJAPlayer3.ConfigIni.nPlayerCount >= 4)
TJAPlayer3.Tx.Taiko_Background[8]?.t2D描画(TJAPlayer3.app.Device, bg_x[3], bg_y[3]);
if (TJAPlayer3.ConfigIni.nPlayerCount >= 5)
TJAPlayer3.Tx.Taiko_Background[11]?.t2D描画(TJAPlayer3.app.Device, bg_x[4], bg_y[4]);
}
}
if (TJAPlayer3.P1IsBlue())
TJAPlayer3.Tx.Taiko_Background[4]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[0], TJAPlayer3.Skin.Game_Taiko_Background_Y[0]);
TJAPlayer3.Tx.Taiko_Background[4]?.t2D描画(TJAPlayer3.app.Device, bg_x[0], bg_y[0]);
else
TJAPlayer3.Tx.Taiko_Background[0]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[0], TJAPlayer3.Skin.Game_Taiko_Background_Y[0]);
TJAPlayer3.Tx.Taiko_Background[0]?.t2D描画(TJAPlayer3.app.Device, bg_x[0], bg_y[0]);
}
else
{
// Training Mode
if (TJAPlayer3.P1IsBlue())
TJAPlayer3.Tx.Taiko_Background[6]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[0], TJAPlayer3.Skin.Game_Taiko_Background_Y[0]);
TJAPlayer3.Tx.Taiko_Background[6]?.t2D描画(TJAPlayer3.app.Device, bg_x[0], bg_y[0]);
else
TJAPlayer3.Tx.Taiko_Background[5]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Background_X[0], TJAPlayer3.Skin.Game_Taiko_Background_Y[0]);
TJAPlayer3.Tx.Taiko_Background[5]?.t2D描画(TJAPlayer3.app.Device, bg_x[0], bg_y[0]);
}
*/
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
int taiko_x;
int taiko_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
taiko_x = TJAPlayer3.Skin.Game_Taiko_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
taiko_y = TJAPlayer3.Skin.Game_Taiko_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
taiko_x = TJAPlayer3.Skin.Game_Taiko_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
taiko_y = TJAPlayer3.Skin.Game_Taiko_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
}
else
{
taiko_x = TJAPlayer3.Skin.Game_Taiko_X[i];
taiko_y = TJAPlayer3.Skin.Game_Taiko_Y[i];
}
int _actual = TJAPlayer3.GetActualPlayer(i);
EGameType _gt = TJAPlayer3.ConfigIni.nGameType[_actual];
int playerShift = i * 5;
// Drum base
TJAPlayer3.Tx.Taiko_Base[(int)_gt]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i]);
TJAPlayer3.Tx.Taiko_Base[(int)_gt]?.t2D描画(TJAPlayer3.app.Device, taiko_x, taiko_y);
// Taiko hits
if (_gt == EGameType.TAIKO)
@ -136,10 +242,10 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Taiko_Don_Left.Opacity = this.stパッド状態[2 + playerShift].n明るさ * 73;
TJAPlayer3.Tx.Taiko_Don_Right.Opacity = this.stパッド状態[3 + playerShift].n明るさ * 73;
TJAPlayer3.Tx.Taiko_Ka_Left.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i], new Rectangle(0, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height));
TJAPlayer3.Tx.Taiko_Ka_Right.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i] + TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Skin.Game_Taiko_Y[i], new Rectangle(TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height));
TJAPlayer3.Tx.Taiko_Don_Left.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i], new Rectangle(0, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height));
TJAPlayer3.Tx.Taiko_Don_Right.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i] + TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Skin.Game_Taiko_Y[i], new Rectangle(TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height));
TJAPlayer3.Tx.Taiko_Ka_Left.t2D描画(TJAPlayer3.app.Device, taiko_x, taiko_y, new Rectangle(0, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height));
TJAPlayer3.Tx.Taiko_Ka_Right.t2D描画(TJAPlayer3.app.Device, taiko_x + TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, taiko_y, new Rectangle(TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height));
TJAPlayer3.Tx.Taiko_Don_Left.t2D描画(TJAPlayer3.app.Device, taiko_x, taiko_y, new Rectangle(0, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height));
TJAPlayer3.Tx.Taiko_Don_Right.t2D描画(TJAPlayer3.app.Device, taiko_x + TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, taiko_y, new Rectangle(TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, 0, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Width / 2, TJAPlayer3.Tx.Taiko_Ka_Right.szテクスチャサイズ.Height));
}
}
else if (_gt == EGameType.KONGA)
@ -150,9 +256,9 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Taiko_Konga_Don.Opacity = Math.Max(this.stパッド状態[2 + playerShift].n明るさ, this.stパッド状態[3 + playerShift].n明るさ) * 73;
TJAPlayer3.Tx.Taiko_Konga_Ka.Opacity = Math.Max(this.stパッド状態[playerShift].n明るさ, this.stパッド状態[1 + playerShift].n明るさ) * 73;
TJAPlayer3.Tx.Taiko_Konga_Ka.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i]);
TJAPlayer3.Tx.Taiko_Konga_Don.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i]);
TJAPlayer3.Tx.Taiko_Konga_Clap.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_X[i], TJAPlayer3.Skin.Game_Taiko_Y[i]);
TJAPlayer3.Tx.Taiko_Konga_Ka.t2D描画(TJAPlayer3.app.Device, taiko_x, taiko_y);
TJAPlayer3.Tx.Taiko_Konga_Don.t2D描画(TJAPlayer3.app.Device, taiko_x, taiko_y);
TJAPlayer3.Tx.Taiko_Konga_Clap.t2D描画(TJAPlayer3.app.Device, taiko_x, taiko_y);
}
}
@ -163,6 +269,8 @@ namespace TJAPlayer3
for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
{
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) break;
if ( !this.ctレベルアップダウン[ i ].b停止中 )
{
this.ctレベルアップダウン[ i ].t進行();
@ -214,22 +322,27 @@ namespace TJAPlayer3
fScale = 1.0f;
}
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) continue;
int levelChange_x = TJAPlayer3.Skin.Game_Taiko_LevelChange_X[i];
int levelChange_y = TJAPlayer3.Skin.Game_Taiko_LevelChange_Y[i];
if ( this.After[ i ] - this.Before[ i ] >= 0 )
{
//レベルアップ
TJAPlayer3.Tx.Taiko_LevelUp.vc拡大縮小倍率.X = fScale;
TJAPlayer3.Tx.Taiko_LevelUp.vc拡大縮小倍率.Y = fScale;
TJAPlayer3.Tx.Taiko_LevelUp.Opacity = nAlpha;
TJAPlayer3.Tx.Taiko_LevelUp.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_LevelChange_X[i],
TJAPlayer3.Skin.Game_Taiko_LevelChange_Y[i]);
TJAPlayer3.Tx.Taiko_LevelUp.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, levelChange_x,
levelChange_y);
}
else
{
TJAPlayer3.Tx.Taiko_LevelDown.vc拡大縮小倍率.X = fScale;
TJAPlayer3.Tx.Taiko_LevelDown.vc拡大縮小倍率.Y = fScale;
TJAPlayer3.Tx.Taiko_LevelDown.Opacity = nAlpha;
TJAPlayer3.Tx.Taiko_LevelDown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_LevelChange_X[i],
TJAPlayer3.Skin.Game_Taiko_LevelChange_Y[i]);
TJAPlayer3.Tx.Taiko_LevelDown.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, levelChange_x,
levelChange_y);
}
}
}
@ -238,13 +351,43 @@ namespace TJAPlayer3
{
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break;
ModIcons.tDisplayMods(TJAPlayer3.Skin.Game_Taiko_ModIcons_X[i], TJAPlayer3.Skin.Game_Taiko_ModIcons_Y[i], i);
int modIcons_x;
int modIcons_y;
int couse_symbol_x;
int couse_symbol_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
modIcons_x = TJAPlayer3.Skin.Game_Taiko_ModIcons_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
modIcons_y = TJAPlayer3.Skin.Game_Taiko_ModIcons_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
couse_symbol_x = TJAPlayer3.Skin.Game_CourseSymbol_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
couse_symbol_y = TJAPlayer3.Skin.Game_CourseSymbol_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
modIcons_x = TJAPlayer3.Skin.Game_Taiko_ModIcons_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
modIcons_y = TJAPlayer3.Skin.Game_Taiko_ModIcons_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
couse_symbol_x = TJAPlayer3.Skin.Game_CourseSymbol_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
couse_symbol_y = TJAPlayer3.Skin.Game_CourseSymbol_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
}
else
{
modIcons_x = TJAPlayer3.Skin.Game_Taiko_ModIcons_X[i];
modIcons_y = TJAPlayer3.Skin.Game_Taiko_ModIcons_Y[i];
couse_symbol_x = TJAPlayer3.Skin.Game_CourseSymbol_X[i];
couse_symbol_y = TJAPlayer3.Skin.Game_CourseSymbol_Y[i];
}
ModIcons.tDisplayMods(modIcons_x, modIcons_y, i);
if (TJAPlayer3.Tx.Couse_Symbol[TJAPlayer3.stage選曲.n確定された曲の難易度[i]] != null)
{
TJAPlayer3.Tx.Couse_Symbol[TJAPlayer3.stage選曲.n確定された曲の難易度[i]].t2D描画(TJAPlayer3.app.Device,
TJAPlayer3.Skin.Game_CourseSymbol_X[i],
TJAPlayer3.Skin.Game_CourseSymbol_Y[i]
couse_symbol_x,
couse_symbol_y
);
}
@ -254,28 +397,51 @@ namespace TJAPlayer3
if (TJAPlayer3.Tx.Couse_Symbol[(int)Difficulty.Total] != null)
{
TJAPlayer3.Tx.Couse_Symbol[(int)Difficulty.Total].t2D描画(TJAPlayer3.app.Device,
TJAPlayer3.Skin.Game_CourseSymbol_X[i],
TJAPlayer3.Skin.Game_CourseSymbol_Y[i]
couse_symbol_x,
couse_symbol_y
);
}
}
}
TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.Game_Taiko_NamePlate_X[0], TJAPlayer3.Skin.Game_Taiko_NamePlate_Y[0], 0);
if(TJAPlayer3.stage演奏ドラム画面.bDoublePlay)
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.Game_Taiko_NamePlate_X[1], TJAPlayer3.Skin.Game_Taiko_NamePlate_Y[1], 1);
int namePlate_x;
int namePlate_y;
int playerNumber_x;
int playerNumber_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
namePlate_x = TJAPlayer3.Skin.Game_Taiko_NamePlate_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
namePlate_y = TJAPlayer3.Skin.Game_Taiko_NamePlate_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
playerNumber_x = TJAPlayer3.Skin.Game_Taiko_PlayerNumber_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
playerNumber_y = TJAPlayer3.Skin.Game_Taiko_PlayerNumber_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
namePlate_x = TJAPlayer3.Skin.Game_Taiko_NamePlate_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
namePlate_y = TJAPlayer3.Skin.Game_Taiko_NamePlate_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
playerNumber_x = TJAPlayer3.Skin.Game_Taiko_PlayerNumber_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
playerNumber_y = TJAPlayer3.Skin.Game_Taiko_PlayerNumber_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
}
else
{
namePlate_x = TJAPlayer3.Skin.Game_Taiko_NamePlate_X[i];
namePlate_y = TJAPlayer3.Skin.Game_Taiko_NamePlate_Y[i];
playerNumber_x = TJAPlayer3.Skin.Game_Taiko_PlayerNumber_X[i];
playerNumber_y = TJAPlayer3.Skin.Game_Taiko_PlayerNumber_Y[i];
}
if (TJAPlayer3.Tx.Taiko_PlayerNumber[0] != null)
TJAPlayer3.NamePlate.tNamePlateDraw(namePlate_x, namePlate_y, i);
if (TJAPlayer3.Tx.Taiko_PlayerNumber[i] != null)
{
TJAPlayer3.Tx.Taiko_PlayerNumber[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_PlayerNumber_X[0], TJAPlayer3.Skin.Game_Taiko_PlayerNumber_Y[0]);
TJAPlayer3.Tx.Taiko_PlayerNumber[i].t2D描画(TJAPlayer3.app.Device, playerNumber_x, playerNumber_y);
}
if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay && TJAPlayer3.Tx.Taiko_PlayerNumber[1] != null)
{
TJAPlayer3.Tx.Taiko_PlayerNumber[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_PlayerNumber_X[1], TJAPlayer3.Skin.Game_Taiko_PlayerNumber_Y[1]);
}
return base.On進行描画();
}
@ -283,19 +449,14 @@ namespace TJAPlayer3
public void tMtaikoEvent( int nChannel, int nHand, int nPlayer )
{
CConfigIni configIni = TJAPlayer3.ConfigIni;
bool bAutoPlay = false;
bool bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer];
int playerShift = 5 * nPlayer;
var _gt = configIni.nGameType[TJAPlayer3.GetActualPlayer(nPlayer)];
switch (nPlayer)
{
case 0:
bAutoPlay = configIni.b太鼓パートAutoPlay;
break;
case 1:
bAutoPlay = configIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode;
break;
default:
bAutoPlay = configIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode;
break;
}
@ -415,7 +576,7 @@ namespace TJAPlayer3
}
//太鼓
private STパッド状態[] stパッド状態 = new STパッド状態[ 4 * 5 ];
private STパッド状態[] stパッド状態 = new STパッド状態[ 5 * 5 ];
private long nフラッシュ制御タイマ;
//private CTexture[] txコースシンボル = new CTexture[ 6 ];

View File

@ -27,7 +27,7 @@ namespace TJAPlayer3
public override void On活性化()
{
for(int i = 0; i < 2; i++)
for(int i = 0; i < 5; i++)
{
ctChara_Normal[i] = new CCounter();
ctChara_Miss[i] = new CCounter();
@ -81,7 +81,7 @@ namespace TJAPlayer3
public override void On非活性化()
{
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
ctChara_Normal[i] = null;
ctChara_Miss[i] = null;
@ -109,7 +109,7 @@ namespace TJAPlayer3
public override void OnManagedリソースの作成()
{
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
this.arモーション番号[i] = C変換.ar配列形式のstringをint配列に変換して返す(TJAPlayer3.Skin.Characters_Motion_Normal[this.iCurrentCharacter[i]]);
this.arMissモーション番号[i] = C変換.ar配列形式のstringをint配列に変換して返す(TJAPlayer3.Skin.Characters_Motion_Miss[this.iCurrentCharacter[i]]);
@ -335,10 +335,37 @@ namespace TJAPlayer3
float charaScale = 1.0f;
if (nowChara != null)
{
bool flipX = TJAPlayer3.ConfigIni.bAIBattleMode ? (i == 1) : false;
float resolutionScaleX = TJAPlayer3.Skin.Resolution[0] / (float)TJAPlayer3.Skin.Characters_Resolution[Character][0];
float resolutionScaleY = TJAPlayer3.Skin.Resolution[1] / (float)TJAPlayer3.Skin.Characters_Resolution[Character][1];
if (TJAPlayer3.ConfigIni.bAIBattleMode)
{
chara_x = TJAPlayer3.Skin.Characters_X_AI[Character][i];
chara_y = TJAPlayer3.Skin.Characters_Y_AI[Character][i];
chara_x = (TJAPlayer3.Skin.Characters_X_AI[Character][i] * resolutionScaleX);
chara_y = (TJAPlayer3.Skin.Characters_Y_AI[Character][i] * resolutionScaleY);
if (nowChara != null)
{
charaScale = 0.58f;
}
}
else if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
chara_x = (TJAPlayer3.Skin.Characters_X[Character][i] * resolutionScaleX);
chara_y = (TJAPlayer3.Skin.Characters_Y[Character][i] * resolutionScaleY);
if (nowChara != null)
{
charaScale = 1.0f;
}
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
chara_x = (TJAPlayer3.Skin.Characters_5P[Character][0] * resolutionScaleX) + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
chara_y = (TJAPlayer3.Skin.Characters_5P[Character][1] * resolutionScaleY) + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
if (nowChara != null)
{
@ -347,25 +374,18 @@ namespace TJAPlayer3
}
else
{
chara_x = TJAPlayer3.Skin.Characters_X[Character][i];
chara_y = TJAPlayer3.Skin.Characters_Y[Character][i];
chara_x = (TJAPlayer3.Skin.Characters_4P[Character][0] * resolutionScaleX) + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
chara_y = (TJAPlayer3.Skin.Characters_4P[Character][1] * resolutionScaleY) + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
if (nowChara != null)
{
charaScale = 1.0f;
charaScale = 0.58f;
}
}
if (nowChara != null)
{
bool flipX = TJAPlayer3.ConfigIni.bAIBattleMode ? (i == 1) : false;
float resolutionScaleX = TJAPlayer3.Skin.Resolution[0] / (float)TJAPlayer3.Skin.Characters_Resolution[Character][0];
float resolutionScaleY = TJAPlayer3.Skin.Resolution[1] / (float)TJAPlayer3.Skin.Characters_Resolution[Character][1];
charaScale *= resolutionScaleY;
chara_x *= resolutionScaleX;
chara_y *= resolutionScaleY;
//chara_x *= resolutionScaleX;
//chara_y *= resolutionScaleY;
if (TJAPlayer3.ConfigIni.bAIBattleMode)
{
@ -389,10 +409,21 @@ namespace TJAPlayer3
nowChara.vc拡大縮小倍率.Y = 1.0f;
}
if (this.b風船連打中[i] != true && CharaAction_Balloon_Delay[i].b終了値に達した)
if ((this.b風船連打中[i] != true && CharaAction_Balloon_Delay[i].b終了値に達した) || TJAPlayer3.ConfigIni.nPlayerCount > 2)
{
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画(TJAPlayer3.Skin.Game_PuchiChara_X[i], TJAPlayer3.Skin.Game_PuchiChara_Y[i], TJAPlayer3.stage演奏ドラム画面.bIsAlreadyMaxed[i], player: i);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画(TJAPlayer3.Skin.Game_PuchiChara_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i), TJAPlayer3.Skin.Game_PuchiChara_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i), TJAPlayer3.stage演奏ドラム画面.bIsAlreadyMaxed[i], player: i, scale: 0.5f);
}
else
{
TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画(TJAPlayer3.Skin.Game_PuchiChara_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i), TJAPlayer3.Skin.Game_PuchiChara_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i), TJAPlayer3.stage演奏ドラム画面.bIsAlreadyMaxed[i], player: i, scale: 0.5f);
}
}
}
return base.On進行描画();
}
@ -414,8 +445,28 @@ namespace TJAPlayer3
float resolutionScaleX = TJAPlayer3.Skin.Resolution[0] / (float)TJAPlayer3.Skin.Characters_Resolution[this.iCurrentCharacter[i]][0];
float resolutionScaleY = TJAPlayer3.Skin.Resolution[1] / (float)TJAPlayer3.Skin.Characters_Resolution[this.iCurrentCharacter[i]][1];
float chara_x = TJAPlayer3.Skin.Characters_Balloon_X[this.iCurrentCharacter[i]][i];
float chara_y = TJAPlayer3.Skin.Characters_Balloon_Y[this.iCurrentCharacter[i]][i];
float chara_x = 0;
float chara_y = 0;
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
chara_x = TJAPlayer3.Skin.Characters_Balloon_X[this.iCurrentCharacter[i]][i];
chara_y = TJAPlayer3.Skin.Characters_Balloon_Y[this.iCurrentCharacter[i]][i];
}
else
{
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
chara_x = TJAPlayer3.Skin.Characters_Balloon_5P[this.iCurrentCharacter[i]][0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
chara_y = TJAPlayer3.Skin.Characters_Balloon_5P[this.iCurrentCharacter[i]][1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
}
else
{
chara_x = TJAPlayer3.Skin.Characters_Balloon_4P[this.iCurrentCharacter[i]][0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
chara_y = TJAPlayer3.Skin.Characters_Balloon_4P[this.iCurrentCharacter[i]][1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
}
}
chara_x *= resolutionScaleX;
chara_y *= resolutionScaleY;
@ -440,6 +491,7 @@ namespace TJAPlayer3
chara_y);
}
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画((TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0], TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, nowOpacity, true, player : i);
if (CharaAction_Balloon_Broke[i].b終了値に達した)
@ -467,6 +519,7 @@ namespace TJAPlayer3
chara_y);
}
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画((TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0], TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, nowOpacity, true, player : i);
if (CharaAction_Balloon_Miss[i].b終了値に達した)
@ -488,9 +541,9 @@ namespace TJAPlayer3
chara_y);
}
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画((TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0], TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, 255, true, player : i);
}
}
}
}
@ -521,39 +574,39 @@ namespace TJAPlayer3
//CharaAction_Balloon_Delay.n現在の値 = 0;
}
public int[][] arモーション番号 = new int[2][];
public int[][] arMissモーション番号 = new int[2][];
public int[][] arMissDownモーション番号 = new int[2][];
public int[][] arゴーゴーモーション番号 = new int[2][];
public int[][] arクリアモーション番号 = new int[2][];
public int[][] arモーション番号 = new int[5][];
public int[][] arMissモーション番号 = new int[5][];
public int[][] arMissDownモーション番号 = new int[5][];
public int[][] arゴーゴーモーション番号 = new int[5][];
public int[][] arクリアモーション番号 = new int[5][];
public CCounter[] ctキャラクターアクション_10コンボ = new CCounter[2];
public CCounter[] ctキャラクターアクション_10コンボMAX = new CCounter[2];
public CCounter[] ctキャラクターアクション_ゴーゴースタート = new CCounter[2];
public CCounter[] ctキャラクターアクション_ゴーゴースタートMAX = new CCounter[2];
public CCounter[] ctキャラクターアクション_ルマ = new CCounter[2];
public CCounter[] ctキャラクターアクション_魂MAX = new CCounter[2];
public CCounter[] ctキャラクターアクション_Return = new CCounter[2];
public CCounter[] CharaAction_Balloon_Breaking = new CCounter[2];
public CCounter[] CharaAction_Balloon_Broke = new CCounter[2];
public CCounter[] CharaAction_Balloon_Miss = new CCounter[2];
public CCounter[] CharaAction_Balloon_Delay = new CCounter[2];
public CCounter[] ctキャラクターアクション_10コンボ = new CCounter[5];
public CCounter[] ctキャラクターアクション_10コンボMAX = new CCounter[5];
public CCounter[] ctキャラクターアクション_ゴーゴースタート = new CCounter[5];
public CCounter[] ctキャラクターアクション_ゴーゴースタートMAX = new CCounter[5];
public CCounter[] ctキャラクターアクション_ルマ = new CCounter[5];
public CCounter[] ctキャラクターアクション_魂MAX = new CCounter[5];
public CCounter[] ctキャラクターアクション_Return = new CCounter[5];
public CCounter[] CharaAction_Balloon_Breaking = new CCounter[5];
public CCounter[] CharaAction_Balloon_Broke = new CCounter[5];
public CCounter[] CharaAction_Balloon_Miss = new CCounter[5];
public CCounter[] CharaAction_Balloon_Delay = new CCounter[5];
public CCounter[] ctChara_Normal = new CCounter[2];
public CCounter[] ctChara_Miss = new CCounter[2];
public CCounter[] ctChara_MissDown = new CCounter[2];
public CCounter[] ctChara_GoGo = new CCounter[2];
public CCounter[] ctChara_Clear = new CCounter[2];
public CCounter[] ctChara_Normal = new CCounter[5];
public CCounter[] ctChara_Miss = new CCounter[5];
public CCounter[] ctChara_MissDown = new CCounter[5];
public CCounter[] ctChara_GoGo = new CCounter[5];
public CCounter[] ctChara_Clear = new CCounter[5];
public Animations.FadeOut[] CharaAction_Balloon_FadeOut = new Animations.FadeOut[2];
//private readonly int[] CharaAction_Balloon_FadeOut_StartMs = new int[2];
private readonly int[][] CharaAction_Balloon_FadeOut_StartMs = new int[2][];
public Animations.FadeOut[] CharaAction_Balloon_FadeOut = new Animations.FadeOut[5];
//private readonly int[] CharaAction_Balloon_FadeOut_StartMs = new int[5];
private readonly int[][] CharaAction_Balloon_FadeOut_StartMs = new int[5][];
public bool[] bマイどんアクション中 = new bool[2];
public bool[] bマイどんアクション中 = new bool[5];
public bool[] b風船連打中 = new bool[2];
public bool[] b演奏中 = new bool[2];
public bool[] b風船連打中 = new bool[5];
public bool[] b演奏中 = new bool[5];
public int[] iCurrentCharacter = new int[2] { 0, 0 };
public int[] iCurrentCharacter = new int[5] { 0, 0, 0, 0, 0 };
}
}

View File

@ -49,54 +49,28 @@ namespace TJAPlayer3
{
if( player == 0 )
{
if( !this.st花火状態[ j ].b使用中 )
if( !this.st花火状態[player][ j ].b使用中 )
{
this.st花火状態[j].ct進行 = new CCounter(0, 10, 20, TJAPlayer3.Timer);
this.st花火状態[j].nPlayer = player;
this.st花火状態[player][j].ct進行 = new CCounter(0, 10, 20, TJAPlayer3.Timer);
this.st花火状態[player][j].nPlayer = player;
switch (nLane)
{
case 0x11:
case 0x12:
case 0x15:
this.st花火状態[j].isBig = false;
this.st花火状態[player][j].isBig = false;
break;
case 0x13:
case 0x14:
case 0x16:
case 0x17:
this.st花火状態[j].isBig = true;
this.st花火状態[player][j].isBig = true;
break;
}
this.st花火状態[j].nLane = nLane;
this.st花火状態[player][j].nLane = nLane;
this.st花火状態[j].b使用中 = true;
break;
}
}
if( player == 1 )
{
if( !this.st花火状態2P[ j ].b使用中 )
{
this.st花火状態2P[ j ].ct進行 = new CCounter(0, 10, 20, TJAPlayer3.Timer);
this.st花火状態2P[ j ].nPlayer = player;
switch (nLane)
{
case 0x11:
case 0x12:
case 0x15:
this.st花火状態2P[ j ].isBig = false;
break;
case 0x13:
case 0x14:
case 0x16:
case 0x17:
this.st花火状態2P[ j ].isBig = true;
break;
}
this.st花火状態2P[j].nLane = nLane;
this.st花火状態2P[ j ].b使用中 = true;
this.st花火状態[player][j].b使用中 = true;
break;
}
}
@ -109,19 +83,23 @@ namespace TJAPlayer3
{
this.ct炎 = new CCounter( 0, 6, 50, TJAPlayer3.Timer );
for (int player = 0; player < 5; player++)
{
for (int i = 0; i < 32; i++)
{
this.st花火状態[i].ct進行 = new CCounter();
this.st花火状態2P[i].ct進行 = new CCounter();
this.st花火状態[player][i].ct進行 = new CCounter();
}
}
base.On活性化();
}
public override void On非活性化()
{
for (int player = 0; player < 5; player++)
{
for (int i = 0; i < 32; i++)
{
this.st花火状態[i].ct進行 = null;
this.st花火状態2P[i].ct進行 = null;
this.st花火状態[player][i].ct進行 = null;
}
}
this.ct炎 = null;
}
@ -166,8 +144,13 @@ namespace TJAPlayer3
this.ctGaugeFlash.t進行Loop();
int nWidth = (TJAPlayer3.Skin.Game_Gauge_Rect[2] / 50);
int nRectX2P = (int)(this.db現在のゲージ値[1] / 2) * nWidth;
int nRectX = (int)( this.db現在のゲージ値[ 0 ] / 2 ) * nWidth;
int[] nRectX = new int[] {
(int)( this.db現在のゲージ値[ 0 ] / 2 ) * nWidth,
(int)( this.db現在のゲージ値[ 1 ] / 2 ) * nWidth,
(int)( this.db現在のゲージ値[ 2 ] / 2 ) * nWidth,
(int)( this.db現在のゲージ値[ 3 ] / 2 ) * nWidth,
(int)( this.db現在のゲージ値[ 4 ] / 2 ) * nWidth
};
int = ct虹アニメ.n現在の値 + 1;
if ( == ct虹アニメ.n終了値+1) = 0;
/*
@ -193,18 +176,40 @@ namespace TJAPlayer3
scale = 0.8f;
}
int[] gauge_x = new int[5];
int[] gauge_y = new int[5];
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
gauge_x[i] = TJAPlayer3.Skin.Game_Gauge_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
gauge_y[i] = TJAPlayer3.Skin.Game_Gauge_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
gauge_x[i] = TJAPlayer3.Skin.Game_Gauge_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
gauge_y[i] = TJAPlayer3.Skin.Game_Gauge_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
}
else
{
gauge_x[i] = TJAPlayer3.Skin.Game_Gauge_X[i];
gauge_y[i] = TJAPlayer3.Skin.Game_Gauge_Y[i];
}
}
#region [Gauge base]
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
{
if (TJAPlayer3.P1IsBlue())
{
TJAPlayer3.Tx.Gauge_Dan[4]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_Gauge_Y[0],
TJAPlayer3.Tx.Gauge_Dan[4]?.t2D描画(TJAPlayer3.app.Device, gauge_x[0], gauge_y[0],
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
}
else
{
TJAPlayer3.Tx.Gauge_Dan[0]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_Gauge_Y[0],
TJAPlayer3.Tx.Gauge_Dan[0]?.t2D描画(TJAPlayer3.app.Device, gauge_x[0], gauge_y[0],
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
}
@ -216,7 +221,7 @@ namespace TJAPlayer3
{
if (TJAPlayer3.DTX.Dan_C[i].GetExamType() == Exam.Type.Gauge)
{
TJAPlayer3.Tx.Gauge_Dan[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[0] + (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), TJAPlayer3.Skin.Game_Gauge_Y[0],
TJAPlayer3.Tx.Gauge_Dan[2].t2D描画(TJAPlayer3.app.Device, gauge_x[0] + (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), gauge_y[0],
new Rectangle((TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), 0, TJAPlayer3.Skin.Game_Gauge_Rect[2] - (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), TJAPlayer3.Skin.Game_Gauge_Rect[3]));
}
}
@ -227,16 +232,22 @@ namespace TJAPlayer3
{
if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay && !TJAPlayer3.ConfigIni.bAIBattleMode)
{
TJAPlayer3.Tx.Gauge_Base[1]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[1], TJAPlayer3.Skin.Game_Gauge_Y[1],
for (int i = 1; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
int index = TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? 1 : 3 + i;
TJAPlayer3.Tx.Gauge_Base[index]?.t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i],
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
}
}
if (TJAPlayer3.P1IsBlue())
{
TJAPlayer3.Tx.Gauge_Base[2]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[0], TJAPlayer3.Skin.Game_Gauge_Y[0],
TJAPlayer3.Tx.Gauge_Base[2]?.t2D描画(TJAPlayer3.app.Device, gauge_x[0], gauge_y[0],
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
}
else
{
int index = TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? 0 : 3;
int x;
int y;
if (TJAPlayer3.ConfigIni.bAIBattleMode)
@ -246,16 +257,16 @@ namespace TJAPlayer3
}
else
{
x = TJAPlayer3.Skin.Game_Gauge_X[0];
y = TJAPlayer3.Skin.Game_Gauge_Y[0];
x = gauge_x[0];
y = gauge_y[0];
}
if (TJAPlayer3.Tx.Gauge_Base[0] != null)
if (TJAPlayer3.Tx.Gauge_Base[index] != null)
{
TJAPlayer3.Tx.Gauge_Base[0].vc拡大縮小倍率.X = scale;
TJAPlayer3.Tx.Gauge_Base[0].vc拡大縮小倍率.Y = scale;
TJAPlayer3.Tx.Gauge_Base[index].vc拡大縮小倍率.X = scale;
TJAPlayer3.Tx.Gauge_Base[index].vc拡大縮小倍率.Y = scale;
TJAPlayer3.Tx.Gauge_Base[0].t2D描画(TJAPlayer3.app.Device, x, y,
TJAPlayer3.Tx.Gauge_Base[index].t2D描画(TJAPlayer3.app.Device, x, y,
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
}
}
@ -276,23 +287,23 @@ namespace TJAPlayer3
}
else
{
x = TJAPlayer3.Skin.Game_Gauge_X[0];
y = TJAPlayer3.Skin.Game_Gauge_Y[0];
x = gauge_x[0];
y = gauge_y[0];
}
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan)
{
if (TJAPlayer3.P1IsBlue())
TJAPlayer3.Tx.Gauge_Dan[5]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX, TJAPlayer3.Skin.Game_Gauge_Rect[3]));
TJAPlayer3.Tx.Gauge_Dan[5]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX[0], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
else
TJAPlayer3.Tx.Gauge_Dan[1]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX, TJAPlayer3.Skin.Game_Gauge_Rect[3]));
TJAPlayer3.Tx.Gauge_Dan[1]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX[0], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
for (int i = 0; i < TJAPlayer3.DTX.Dan_C.Length; i++)
{
if (TJAPlayer3.DTX.Dan_C[i] != null && TJAPlayer3.DTX.Dan_C[i].GetExamType() == Exam.Type.Gauge && db現在のゲージ値[0] >= TJAPlayer3.DTX.Dan_C[i].GetValue(false))
{
TJAPlayer3.Tx.Gauge_Dan[3].Opacity = 255;
TJAPlayer3.Tx.Gauge_Dan[3]?.t2D描画(TJAPlayer3.app.Device, x + (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), y, new Rectangle(0, 0, nRectX - (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), TJAPlayer3.Skin.Game_Gauge_Rect[3]));
TJAPlayer3.Tx.Gauge_Dan[3]?.t2D描画(TJAPlayer3.app.Device, x + (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), y, new Rectangle(0, 0, nRectX[0] - (TJAPlayer3.DTX.Dan_C[i].GetValue(false) / 2 * nWidth), TJAPlayer3.Skin.Game_Gauge_Rect[3]));
int Opacity = 0;
if (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0;
@ -309,15 +320,17 @@ namespace TJAPlayer3
else
{
if (TJAPlayer3.P1IsBlue())
TJAPlayer3.Tx.Gauge[2]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX, TJAPlayer3.Skin.Game_Gauge_Rect[3]));
TJAPlayer3.Tx.Gauge[2]?.t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX[0], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
else
{
if (TJAPlayer3.Tx.Gauge[0] != null)
{
TJAPlayer3.Tx.Gauge[0].vc拡大縮小倍率.X = scale;
TJAPlayer3.Tx.Gauge[0].vc拡大縮小倍率.Y = scale;
int index = TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? 0 : 3;
TJAPlayer3.Tx.Gauge[0].t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX, TJAPlayer3.Skin.Game_Gauge_Rect[3]));
if (TJAPlayer3.Tx.Gauge[index] != null)
{
TJAPlayer3.Tx.Gauge[index].vc拡大縮小倍率.X = scale;
TJAPlayer3.Tx.Gauge[index].vc拡大縮小倍率.Y = scale;
TJAPlayer3.Tx.Gauge[index].t2D描画(TJAPlayer3.app.Device, x, y, new Rectangle(0, 0, nRectX[0], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
}
}
}
@ -358,18 +371,20 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Gauge_Rainbow[].vc拡大縮小倍率.X = scale;
TJAPlayer3.Tx.Gauge_Rainbow[].vc拡大縮小倍率.Y = scale;
bool smart = TJAPlayer3.ConfigIni.nPlayerCount > 2 || TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan;
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].Opacity = 255;
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, x, y + (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : 0),
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, x, y + (smart ? (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : 0),
new RectangleF(0,
TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 22 : 0,
smart ? 22 : 0,
TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Width,
TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height));
smart ? TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値].szテクスチャサイズ.Height));
TJAPlayer3.Tx.Gauge_Rainbow[].Opacity = (ct虹透明度.n現在の値 * 255 / (int)ct虹透明度.n終了値)/1;
TJAPlayer3.Tx.Gauge_Rainbow[].t2D描画(TJAPlayer3.app.Device, x, y + (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 22 : 0),
TJAPlayer3.Tx.Gauge_Rainbow[].t2D描画(TJAPlayer3.app.Device, x, y + (smart ? 22 : 0),
new RectangleF(0,
TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? 22 : 0,
smart ? 22 : 0,
TJAPlayer3.Tx.Gauge_Rainbow[].szテクスチャサイズ.Width,
TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Dan ? TJAPlayer3.Tx.Gauge_Rainbow[].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : TJAPlayer3.Tx.Gauge_Rainbow[].szテクスチャサイズ.Height));
smart ? TJAPlayer3.Tx.Gauge_Rainbow[].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2) : TJAPlayer3.Tx.Gauge_Rainbow[].szテクスチャサイズ.Height));
}
}
@ -383,7 +398,7 @@ namespace TJAPlayer3
}
#region[ Clearicon ]
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan)
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
int text_x;
int text_y;
@ -417,37 +432,71 @@ namespace TJAPlayer3
#region [ Gauge 2P ]
if( TJAPlayer3.stage演奏ドラム画面.bDoublePlay && !TJAPlayer3.ConfigIni.bAIBattleMode && TJAPlayer3.Tx.Gauge[1] != null )
for (int i = 1; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
TJAPlayer3.Tx.Gauge[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[1], TJAPlayer3.Skin.Game_Gauge_Y[1], new Rectangle( 0, 0, nRectX2P, TJAPlayer3.Skin.Game_Gauge_Rect[3]) );
if (db現在のゲージ値[1] >= 80.0 && db現在のゲージ値[1] < 100.0)
int index = TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? 1 : i + 3;
if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay && !TJAPlayer3.ConfigIni.bAIBattleMode && TJAPlayer3.Tx.Gauge[index] != null)
{
TJAPlayer3.Tx.Gauge[index].t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i], new Rectangle(0, 0, nRectX[i], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
if (db現在のゲージ値[i] >= 80.0 && db現在のゲージ値[i] < 100.0)
{
int Opacity = 0;
if (this.ctGaugeFlash.n現在の値 <= 365) Opacity = 0;
else if (this.ctGaugeFlash.n現在の値 <= 448) Opacity = (int)((this.ctGaugeFlash.n現在の値 - 365) / 83f * 255f);
else if (this.ctGaugeFlash.n現在の値 <= 531) Opacity = 255 - (int)((this.ctGaugeFlash.n現在の値 - 448) / 83f * 255f);
TJAPlayer3.Tx.Gauge_Flash.Opacity = Opacity;
TJAPlayer3.Tx.Gauge_Flash.t2D上下反転描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[1], TJAPlayer3.Skin.Game_Gauge_Y[1],
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
TJAPlayer3.Tx.Gauge_Flash.t2D上下反転描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i],
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
}
if (TJAPlayer3.Tx.Gauge[1] != null )
else
{
if (this.db現在のゲージ値[1] >= 100.0)
TJAPlayer3.Tx.Gauge_Flash.t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i],
new Rectangle(TJAPlayer3.Skin.Game_Gauge_Rect[0], TJAPlayer3.Skin.Game_Gauge_Rect[1], TJAPlayer3.Skin.Game_Gauge_Rect[2], TJAPlayer3.Skin.Game_Gauge_Rect[3]));
}
}
if (TJAPlayer3.Tx.Gauge[index] != null)
{
if (this.db現在のゲージ値[i] >= 100.0)
{
this.ct虹アニメ.t進行Loop();
this.ct虹透明度.t進行Loop();
if (TJAPlayer3.Tx.Gauge_Rainbow[this.ct虹アニメ.n現在の値] != null)
{
TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].Opacity = 255;
TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].t2D上下反転描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[1], TJAPlayer3.Skin.Game_Gauge_Y[1]);
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].t2D上下反転描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i]);
}
else
{
TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i] + 22,
new RectangleF(0, 22,
TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].szテクスチャサイズ.Width,
TJAPlayer3.Tx.Gauge_Rainbow[ct虹アニメ.n現在の値].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2)));
}
TJAPlayer3.Tx.Gauge_Rainbow[].Opacity = (int)(ct虹透明度.n現在の値 * 255 / ct虹透明度.n終了値) / 1;
TJAPlayer3.Tx.Gauge_Rainbow[].t2D上下反転描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[1], TJAPlayer3.Skin.Game_Gauge_Y[1]);
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
TJAPlayer3.Tx.Gauge_Rainbow[].t2D上下反転描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i]);
}
else
{
TJAPlayer3.Tx.Gauge_Rainbow[].t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i] + 22,
new RectangleF(0, 22,
TJAPlayer3.Tx.Gauge_Rainbow[].szテクスチャサイズ.Width,
TJAPlayer3.Tx.Gauge_Rainbow[].szテクスチャサイズ.Height - (TJAPlayer3.Skin.Game_Gauge_Rect[3] / 2)));
}
}
TJAPlayer3.Tx.Gauge_Line[1]?.t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_X[1], TJAPlayer3.Skin.Game_Gauge_Y[1]);
}
TJAPlayer3.Tx.Gauge_Line[1]?.t2D描画(TJAPlayer3.app.Device, gauge_x[i], gauge_y[i]);
}
#region[ ]
if( this.db現在のゲージ値[ 1 ] >= 80.0 )
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
if (this.db現在のゲージ値[i] >= 80.0)
{
TJAPlayer3.Tx.Gauge[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_ClearText_X[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Y[1],
new Rectangle(TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[0], TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[2], TJAPlayer3.Skin.Game_Gauge_ClearText_Rect[3]));
@ -457,8 +506,10 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Gauge[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Gauge_ClearText_X[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Y[1],
new Rectangle(TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[0], TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[1], TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[2], TJAPlayer3.Skin.Game_Gauge_ClearText_Clear_Rect[3]));
}
}
#endregion
}
}
#endregion
// Soul fire here
@ -479,10 +530,23 @@ namespace TJAPlayer3
y = TJAPlayer3.Skin.Gauge_Soul_Fire_Y_AI;
}
else
{
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
x = TJAPlayer3.Skin.Gauge_Soul_Fire_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
y = TJAPlayer3.Skin.Gauge_Soul_Fire_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
x = TJAPlayer3.Skin.Gauge_Soul_Fire_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
y = TJAPlayer3.Skin.Gauge_Soul_Fire_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
}
else
{
x = TJAPlayer3.Skin.Gauge_Soul_Fire_X[i];
y = TJAPlayer3.Skin.Gauge_Soul_Fire_Y[i];
}
}
if ( this.db現在のゲージ値[ i ] >= 100.0)
{
@ -511,10 +575,23 @@ namespace TJAPlayer3
y = TJAPlayer3.Skin.Gauge_Soul_Y_AI;
}
else
{
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
x = TJAPlayer3.Skin.Gauge_Soul_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
y = TJAPlayer3.Skin.Gauge_Soul_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
x = TJAPlayer3.Skin.Gauge_Soul_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
y = TJAPlayer3.Skin.Gauge_Soul_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
}
else
{
x = TJAPlayer3.Skin.Gauge_Soul_X[i];
y = TJAPlayer3.Skin.Gauge_Soul_Y[i];
}
}
TJAPlayer3.Tx.Gauge_Soul.vc拡大縮小倍率.X = scale;
TJAPlayer3.Tx.Gauge_Soul.vc拡大縮小倍率.Y = scale;
@ -532,35 +609,23 @@ namespace TJAPlayer3
//仮置き
int[] nSoulExplosion = new int[] { 73, 468, 0, 0 };
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
for (int d = 0; d < 32; d++)
{
if( this.st花火状態[d].b使用中 )
if (this.st花火状態[i][d].b使用中)
{
this.st花火状態[d].ct進行.t進行();
if (this.st花火状態[d].ct進行.b終了値に達した)
this.st花火状態[i][d].ct進行.t進行();
if (this.st花火状態[i][d].ct進行.b終了値に達した)
{
this.st花火状態[d].ct進行.t停止();
this.st花火状態[d].b使用中 = false;
this.st花火状態[i][d].ct進行.t停止();
this.st花火状態[i][d].b使用中 = false;
}
break;
}
}
for( int d = 0; d < 32; d++ )
{
if (this.st花火状態2P[d].b使用中)
{
this.st花火状態2P[d].ct進行.t進行();
if (this.st花火状態2P[d].ct進行.b終了値に達した)
{
this.st花火状態2P[d].ct進行.t停止();
this.st花火状態2P[d].b使用中 = false;
}
break;
}
}
}
return 0;
@ -573,8 +638,13 @@ namespace TJAPlayer3
//-----------------
private CCounter ctGaugeFlash;
protected STSTATUS[] st花火状態 = new STSTATUS[ 32 ];
protected STSTATUS[] st花火状態2P = new STSTATUS[ 32 ];
protected STSTATUS[][] st花火状態 = new STSTATUS[5][] {
new STSTATUS[ 32 ],
new STSTATUS[ 32 ],
new STSTATUS[ 32 ],
new STSTATUS[ 32 ],
new STSTATUS[ 32 ]
};
[StructLayout(LayoutKind.Sequential)]
protected struct STSTATUS
{

View File

@ -72,6 +72,7 @@ namespace TJAPlayer3
{
if( !base.b活性化してない )
{
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return 0;
for( int i = 0; i < 2; i++ )
{
if (TJAPlayer3.ConfigIni.bAIBattleMode) break;
@ -159,10 +160,10 @@ namespace TJAPlayer3
#region [ private ]
//-----------------
private CCounter[] ct進行 = new CCounter[ 2 ];
private CCounter[] ct進行 = new CCounter[ 5 ];
//private CTexture[] tx吹き出し本体 = new CTexture[ 2 ];
//private CTexture tx数字;
private int[] nCombo_渡 = new int[ 2 ];
private int[] nCombo_渡 = new int[ 5 ];
private int NowDrawBalloon;

View File

@ -33,7 +33,7 @@ namespace TJAPlayer3
//base.t小文字表示( 20, 150, string.Format( "{0,7:######0}", this.nスコアの増分.Guitar ) );
}
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
{
if (!this.ct点数アニメタイマ[i].b停止中)
{
@ -45,7 +45,7 @@ namespace TJAPlayer3
}
}
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
{
if (!this.ctボーナス加算タイマ[i].b停止中)
{
@ -58,10 +58,50 @@ namespace TJAPlayer3
}
}
int[] x = new int[5];
int[] y = new int[5];
int[] add_x = new int[5];
int[] add_y = new int[5];
int[] addBonus_x = new int[5];
int[] addBonus_y = new int[5];
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
x[i] = TJAPlayer3.Skin.Game_Score_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
y[i] = TJAPlayer3.Skin.Game_Score_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
add_x[i] = TJAPlayer3.Skin.Game_Score_Add_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
add_y[i] = TJAPlayer3.Skin.Game_Score_Add_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
addBonus_x[i] = TJAPlayer3.Skin.Game_Score_AddBonus_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
addBonus_y[i] = TJAPlayer3.Skin.Game_Score_AddBonus_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
x[i] = TJAPlayer3.Skin.Game_Score_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
y[i] = TJAPlayer3.Skin.Game_Score_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
add_x[i] = TJAPlayer3.Skin.Game_Score_Add_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
add_y[i] = TJAPlayer3.Skin.Game_Score_Add_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
addBonus_x[i] = TJAPlayer3.Skin.Game_Score_AddBonus_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
addBonus_y[i] = TJAPlayer3.Skin.Game_Score_AddBonus_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
}
else
{
x[i] = TJAPlayer3.Skin.Game_Score_X[i];
y[i] = TJAPlayer3.Skin.Game_Score_Y[i];
add_x[i] = TJAPlayer3.Skin.Game_Score_Add_X[i];
add_y[i] = TJAPlayer3.Skin.Game_Score_Add_Y[i];
addBonus_x[i] = TJAPlayer3.Skin.Game_Score_AddBonus_X[i];
addBonus_y[i] = TJAPlayer3.Skin.Game_Score_AddBonus_Y[i];
}
}
//CDTXMania.act文字コンソール.tPrint(0, 0, C文字コンソール.Eフォント種別.白, this.ctボーナス加算タイマ[0].n現在の値.ToString());
base.t小文字表示(TJAPlayer3.Skin.Game_Score_X[0], TJAPlayer3.Skin.Game_Score_Y[0], string.Format( "{0,7:######0}", this.n現在表示中のスコア[ 0 ].Taiko ), 0 , 256, 0);
if( TJAPlayer3.stage演奏ドラム画面.bDoublePlay && !TJAPlayer3.ConfigIni.bAIBattleMode) base.t小文字表示(TJAPlayer3.Skin.Game_Score_X[1], TJAPlayer3.Skin.Game_Score_Y[1], string.Format( "{0,7:######0}", this.n現在表示中のスコア[ 1 ].Taiko ), 0 , 256, 1);
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
base.t小文字表示(x[i], y[i], string.Format("{0,7:######0}", this.n現在表示中のスコア[i].Taiko), 0, 256, i);
}
for( int i = 0; i < 256; i++ )
{
@ -190,9 +230,9 @@ namespace TJAPlayer3
pl = 1;
if ( this.n現在表示中のAddScore < 10 && this.stScore[ i ].bBonusScore == false )
base.t小文字表示(TJAPlayer3.Skin.Game_Score_Add_X[this.stScore[i].nPlayer] + xAdd, this.stScore[ i ].nPlayer == 0 ? TJAPlayer3.Skin.Game_Score_Add_Y[ this.stScore[ i ].nPlayer ] + yAdd : TJAPlayer3.Skin.Game_Score_Add_Y[ this.stScore[ i ].nPlayer ] - yAdd, string.Format( "{0,7:######0}", this.stScore[ i ].nAddScore ), pl + 1 , alpha, stScore[i].nPlayer);
base.t小文字表示(add_x[this.stScore[i].nPlayer] + xAdd, this.stScore[ i ].nPlayer == 0 && TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? add_y[ this.stScore[ i ].nPlayer ] + yAdd : add_y[ this.stScore[ i ].nPlayer ] - yAdd, string.Format( "{0,7:######0}", this.stScore[ i ].nAddScore ), pl + 1 , alpha, stScore[i].nPlayer);
if( this.n現在表示中のAddScore < 10 && this.stScore[ i ].bBonusScore == true )
base.t小文字表示(TJAPlayer3.Skin.Game_Score_AddBonus_X[this.stScore[i].nPlayer] + xAdd, TJAPlayer3.Skin.Game_Score_AddBonus_Y[ this.stScore[ i ].nPlayer ], string.Format( "{0,7:######0}", this.stScore[ i ].nAddScore ), pl + 1 , alpha, stScore[i].nPlayer);
base.t小文字表示(addBonus_x[this.stScore[i].nPlayer] + xAdd, addBonus_y[ this.stScore[ i ].nPlayer ], string.Format( "{0,7:######0}", this.stScore[ i ].nAddScore ), pl + 1 , alpha, stScore[i].nPlayer);
else
{
this.n現在表示中のAddScore--;

View File

@ -23,16 +23,15 @@ namespace TJAPlayer3
}
*/
this.ScoreRank = new int[] { 500000, 600000, 700000, 800000, 900000, 950000,
Math.Max(1000000, (int)(TJAPlayer3.stage演奏ドラム画面.nAddScoreNiji[0] * TJAPlayer3.stage演奏ドラム画面.nNoteCount[0]) + (int)(TJAPlayer3.stage演奏ドラム画面.nBalloonCount[0] * 100) + (int)(Math.Ceiling(TJAPlayer3.stage演奏ドラム画面.nRollTimeMs[0] * 16.6 / 10) * 100 * 10)) };
this.ScoreRank2P = new int[] { 500000, 600000, 700000, 800000, 900000, 950000,
Math.Max(1000000, (int)(TJAPlayer3.stage演奏ドラム画面.nAddScoreNiji[1] * TJAPlayer3.stage演奏ドラム画面.nNoteCount[1]) + (int)(TJAPlayer3.stage演奏ドラム画面.nBalloonCount[1] * 100) + (int)(Math.Ceiling(TJAPlayer3.stage演奏ドラム画面.nRollTimeMs[1] * 16.6 / 10) * 100 * 10)) };
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[i] = new CCounter();
this.counterJ2[i] = new CCounter();
this.counter[player][i] = new CCounter();
}
}
base.On活性化();
}
@ -44,9 +43,7 @@ namespace TJAPlayer3
private void displayScoreRank(int i, int player, float x, float y, int mode = 0)
{
CCounter cct = this.counter[i];
if (player == 1)
cct = this.counterJ2[i];
CCounter cct = this.counter[player][i];
CTexture tex = TJAPlayer3.Tx.ScoreRank;
if (mode == 1) // tower
@ -86,12 +83,29 @@ namespace TJAPlayer3
if (cct.n現在の値 >= 2745 && cct.n現在の値 <= 3000)
{
tex.Opacity = 255 - ((cct.n現在の値 - 2745));
x = ((cct.n現在の値 - 2745) / 255.0f) * (player == 0 ? -TJAPlayer3.Skin.Game_Judge_Move[0] : TJAPlayer3.Skin.Game_Judge_Move[0]);
y = ((cct.n現在の値 - 2745) / 255.0f) * (player == 0 ? -TJAPlayer3.Skin.Game_Judge_Move[1] : TJAPlayer3.Skin.Game_Judge_Move[1]);
x = ((cct.n現在の値 - 2745) / 255.0f) * (player == 0 || TJAPlayer3.ConfigIni.nPlayerCount >= 2 ? -TJAPlayer3.Skin.Game_Judge_Move[0] : TJAPlayer3.Skin.Game_Judge_Move[0]);
y = ((cct.n現在の値 - 2745) / 255.0f) * (player == 0 || TJAPlayer3.ConfigIni.nPlayerCount >= 2 ? -TJAPlayer3.Skin.Game_Judge_Move[1] : TJAPlayer3.Skin.Game_Judge_Move[1]);
}
var xpos = TJAPlayer3.Skin.Game_ScoreRank_X[player] + (int)x;
var ypos = TJAPlayer3.Skin.Game_ScoreRank_Y[player] + (int)y;
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;
@ -124,13 +138,16 @@ namespace TJAPlayer3
for (int i = 0; i < 7; i++)
{
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower)
{
for (int player = 0; player < 5; player++)
{
#region [Ensou score ranks]
counter[i].t進行();
if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(0) >= ScoreRank[i])
counter[player][i].t進行();
if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(player) >= ScoreRank[player][i])
{
displayScoreRank(i, 0, x, y);
displayScoreRank(i, player, x, y);
#region [Legacy]
@ -171,47 +188,6 @@ namespace TJAPlayer3
}
x = 0;
counterJ2[i].t進行();
if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(1) >= ScoreRank2P[i])
{
displayScoreRank(i, 1, x, y);
#region [Legacy]
/*
if (!this.counterJ2[i].b進行中)
{
this.counterJ2[i].t開始(0, 3000, 1, TJAPlayer3.Timer);
}
if (counterJ2[i].n現在の値 <= 255)
{
TJAPlayer3.Tx.ScoreRank.Opacity = counterJ2[i].n現在の値;
x = 51 - (counterJ2[i].n現在の値 / 5.0f);
}
if (counterJ2[i].n現在の値 > 255 && counterJ2[i].n現在の値 <= 255 + 180)
{
TJAPlayer3.Tx.ScoreRank.Opacity = 255;
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((counterJ2[i].n現在の値 - 255) * (Math.PI / 180)) * 0.2f;
TJAPlayer3.Tx.ScoreRank.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((counterJ2[i].n現在の値 - 255) * (Math.PI / 180)) * 0.2f;
x = 0;
}
if (counterJ2[i].n現在の値 > 255 + 180 && counterJ2[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 (counterJ2[i].n現在の値 >= 2745 && counterJ2[i].n現在の値 <= 3000)
{
TJAPlayer3.Tx.ScoreRank.Opacity = 255 - ((counterJ2[i].n現在の値 - 2745));
x = -((counterJ2[i].n現在の値 - 2745) / 5.0f);
}
TJAPlayer3.Tx.ScoreRank.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 87, 720 - (98 + (int)x), new System.Drawing.Rectangle(0, i == 0 ? i * 114 : i * 120, 140, i == 0 ? 114 : 120));
*/
#endregion
}
#endregion
}
@ -232,7 +208,7 @@ namespace TJAPlayer3
TJAPlayer3.stage演奏ドラム画面.CChartScore[0].nGood == 0
};
counter[i].t進行();
counter[0][i].t進行();
bool satisfied = true;
for (int j = 0; j <= i; j++)
@ -261,9 +237,13 @@ namespace TJAPlayer3
return base.On進行描画();
}
public int[] ScoreRank;
public int[] ScoreRank2P;
private CCounter[] counter = new CCounter[7];
private CCounter[] counterJ2 = new CCounter[7];
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]
};
}
}

View File

@ -267,8 +267,25 @@ namespace TJAPlayer3
if( TJAPlayer3.Tx.Effects_Hit_Explosion != null && !TJAPlayer3.IsPerformingCalibration )
{
int n = this.st状態[ i ].nIsBig == 1 ? (nHeight * 2) : 0;
int nX = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_X[this.st状態[i].nPlayer];
int nY = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_Y[this.st状態[i].nPlayer];
int nX = 0;
int nY = 0;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
nX = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * this.st状態[i].nPlayer);
nY = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * this.st状態[i].nPlayer);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
nX = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * this.st状態[i].nPlayer);
nY = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * this.st状態[i].nPlayer);
}
else
{
nX = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_X[this.st状態[i].nPlayer];
nY = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_Y[this.st状態[i].nPlayer];
}
switch( st状態[ i ].judge )
{
@ -340,8 +357,27 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Effects_Hit_Explosion_Big.t3D描画( TJAPlayer3.app.Device, mat );
*/
float x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_X[this.st状態_大[i].nPlayer] - (TJAPlayer3.Tx.Effects_Hit_Explosion_Big.szテクスチャサイズ.Width * (f倍率 - 1.0f) / 2.0f);
float y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_Y[this.st状態_大[i].nPlayer] - (TJAPlayer3.Tx.Effects_Hit_Explosion_Big.szテクスチャサイズ.Height * (f倍率 - 1.0f) / 2.0f);
float x = 0;
float y = 0;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * this.st状態[i].nPlayer);
y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * this.st状態[i].nPlayer);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * this.st状態[i].nPlayer);
y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * this.st状態[i].nPlayer);
}
else
{
x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_X[this.st状態[i].nPlayer];
y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_Y[this.st状態[i].nPlayer];
}
x -= (TJAPlayer3.Tx.Effects_Hit_Explosion_Big.szテクスチャサイズ.Width * (f倍率 - 1.0f) / 2.0f);
y -= (TJAPlayer3.Tx.Effects_Hit_Explosion_Big.szテクスチャサイズ.Height * (f倍率 - 1.0f) / 2.0f);
TJAPlayer3.Tx.Effects_Hit_Explosion_Big.vc拡大縮小倍率.X = f倍率;
TJAPlayer3.Tx.Effects_Hit_Explosion_Big.vc拡大縮小倍率.Y = f倍率;

View File

@ -27,14 +27,14 @@ namespace TJAPlayer3
public override void OnManagedリソースの作成()
{
this.ct分岐アニメ進行 = new CCounter[ 4 ];
this.nBefore = new CDTX.ECourse[ 4 ];
this.nAfter = new CDTX.ECourse[ 4 ];
this.ct分岐アニメ進行 = new CCounter[ 5 ];
this.nBefore = new CDTX.ECourse[ 5 ];
this.nAfter = new CDTX.ECourse[ 5 ];
for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
{
this.ct分岐アニメ進行[ i ] = new CCounter();
this.nBefore = new CDTX.ECourse[ 4 ];
this.nAfter = new CDTX.ECourse[ 4 ];
this.nBefore = new CDTX.ECourse[ 5 ];
this.nAfter = new CDTX.ECourse[ 5 ];
this.bState[ i ] = false;
}
if (TJAPlayer3.Tx.Lane_Base[0] != null)
@ -65,6 +65,27 @@ namespace TJAPlayer3
}
}
int[] x = new int[5];
int[] y = new int[5];
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
x[i] = TJAPlayer3.Skin.Game_Lane_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * i);
y[i] = TJAPlayer3.Skin.Game_Lane_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * i);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
x[i] = TJAPlayer3.Skin.Game_Lane_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * i);
y[i] = TJAPlayer3.Skin.Game_Lane_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * i);
}
else
{
x[i] = TJAPlayer3.Skin.Game_Lane_X[i];
y[i] = TJAPlayer3.Skin.Game_Lane_Y[i];
}
}
//アニメーション中の分岐レイヤー(背景)の描画を行う。
for ( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
@ -94,28 +115,28 @@ namespace TJAPlayer3
if (nBefore[i] == 0 && nAfter[i] == CDTX.ECourse.eNormal)
{
TJAPlayer3.Tx.Lane_Base[1].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 );
TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
}
//普通→達人
if (nBefore[i] == 0 && nAfter[i] == CDTX.ECourse.eMaster)
{
TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
if( this.ct分岐アニメ進行[ i ].n現在の値 < 100 )
{
TJAPlayer3.Tx.Lane_Base[1].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 );
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
}
else if( this.ct分岐アニメ進行[ i ].n現在の値 >= 100 && this.ct分岐アニメ進行[ i ].n現在の値 < 150 )
{
TJAPlayer3.Tx.Lane_Base[1].Opacity = 255;
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
}
else if( this.ct分岐アニメ進行[ i ].n現在の値 >= 150 )
{
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
TJAPlayer3.Tx.Lane_Base[2].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 250 ? 255 : ( ( (this.ct分岐アニメ進行[ i ].n現在の値 - 150) * 0xff ) / 100 );
TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
}
}
#endregion
@ -123,47 +144,47 @@ namespace TJAPlayer3
#region[ _レベルアップ ]
if (nBefore[i] == CDTX.ECourse.eExpert && nAfter[i] == CDTX.ECourse.eMaster)
{
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
TJAPlayer3.Tx.Lane_Base[2].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 );
TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
}
#endregion
#region[ _レベルダウン ]
if (nBefore[i] == CDTX.ECourse.eExpert && nAfter[i] == CDTX.ECourse.eNormal)
{
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
TJAPlayer3.Tx.Lane_Base[0].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 );
TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
}
#endregion
#region[ _レベルダウン ]
if (nBefore[i] == CDTX.ECourse.eMaster && nAfter[i] == CDTX.ECourse.eNormal)
{
TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
if( this.ct分岐アニメ進行[ i ].n現在の値 < 100 )
{
TJAPlayer3.Tx.Lane_Base[1].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 );
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
}
else if( this.ct分岐アニメ進行[ i ].n現在の値 >= 100 && this.ct分岐アニメ進行[ i ].n現在の値 < 150 )
{
TJAPlayer3.Tx.Lane_Base[1].Opacity = 255;
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
}
else if( this.ct分岐アニメ進行[ i ].n現在の値 >= 150 )
{
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[1].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
TJAPlayer3.Tx.Lane_Base[0].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 250 ? 255 : ( ( ( this.ct分岐アニメ進行[ i ].n現在の値 - 150 ) * 0xff ) / 100 );
TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[0].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
}
}
if (nBefore[i] == CDTX.ECourse.eMaster && nAfter[i] == CDTX.ECourse.eExpert)
{
TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
TJAPlayer3.Tx.Lane_Base[2].Opacity = this.ct分岐アニメ進行[ i ].n現在の値 > 100 ? 255 : ( ( this.ct分岐アニメ進行[ i ].n現在の値 * 0xff ) / 100 );
TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[ i ], TJAPlayer3.Skin.Game_Lane_Y[ i ] );
TJAPlayer3.Tx.Lane_Base[2].t2D描画( TJAPlayer3.app.Device, x[ i ], y[ i ] );
}
#endregion
}
@ -187,11 +208,11 @@ namespace TJAPlayer3
#region[ private ]
//-----------------
public bool[] bState = new bool[4];
public CCounter[] ct分岐アニメ進行 = new CCounter[4];
public bool[] bState = new bool[5];
public CCounter[] ct分岐アニメ進行 = new CCounter[5];
private CDTX.ECourse[] nBefore;
private CDTX.ECourse[] nAfter;
private int[] n透明度 = new int[4];
private int[] n透明度 = new int[5];
//private CTexture[] tx普通譜面 = new CTexture[2];
//private CTexture[] tx玄人譜面 = new CTexture[2];
//private CTexture[] tx達人譜面 = new CTexture[2];

View File

@ -27,7 +27,7 @@ namespace TJAPlayer3
public override void On活性化()
{
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
{
this.st状態[i].ct進行 = new CCounter();
this.stBranch[i].ct分岐アニメ進行 = new CCounter();
@ -51,7 +51,7 @@ namespace TJAPlayer3
public override void On非活性化()
{
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
{
this.st状態[i].ct進行 = null;
this.stBranch[i].ct分岐アニメ進行 = null;
@ -79,7 +79,7 @@ namespace TJAPlayer3
{
if (base.b初めての進行描画)
{
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
this.stBranch[i].nフラッシュ制御タイマ = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
base.b初めての進行描画 = false;
}
@ -89,12 +89,35 @@ namespace TJAPlayer3
#region[ ]
int[] x = new int[5];
int[] y = new int[5];
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
x[i] = TJAPlayer3.Skin.Game_Lane_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
y[i] = TJAPlayer3.Skin.Game_Lane_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
x[i] = TJAPlayer3.Skin.Game_Lane_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
y[i] = TJAPlayer3.Skin.Game_Lane_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
}
else
{
x[i] = TJAPlayer3.Skin.Game_Lane_X[i];
y[i] = TJAPlayer3.Skin.Game_Lane_Y[i];
}
}
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (i == 1 && TJAPlayer3.ConfigIni.bAIBattleMode && TJAPlayer3.Tx.Lane_Background_AI != null)
TJAPlayer3.Tx.Lane_Background_AI?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Background_AI?.t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
else
TJAPlayer3.Tx.Lane_Background_Main?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Background_Main?.t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
}
#endregion
@ -149,21 +172,21 @@ namespace TJAPlayer3
if (TJAPlayer3.Tx.Lane_Base[0] != null)
{
TJAPlayer3.Tx.Lane_Base[0].Opacity = 255;
TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
}
break;
case CDTX.ECourse.eExpert:
if (TJAPlayer3.Tx.Lane_Base[1] != null)
{
TJAPlayer3.Tx.Lane_Base[1].Opacity = 255;
TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
}
break;
case CDTX.ECourse.eMaster:
if (TJAPlayer3.Tx.Lane_Base[2] != null)
{
TJAPlayer3.Tx.Lane_Base[2].Opacity = 255;
TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
}
break;
}
@ -188,9 +211,9 @@ namespace TJAPlayer3
{
if (TJAPlayer3.Tx.Lane_Base[0] != null && TJAPlayer3.Tx.Lane_Base[1] != null)
{
TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
TJAPlayer3.Tx.Lane_Base[1].Opacity = this.stBranch[i].nBranchレイヤー透明度;
TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
}
}
//普通→達人
@ -202,8 +225,8 @@ namespace TJAPlayer3
}
if (TJAPlayer3.Tx.Lane_Base[0] != null && TJAPlayer3.Tx.Lane_Base[2] != null)
{
TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
TJAPlayer3.Tx.Lane_Base[2].Opacity = this.stBranch[i].nBranchレイヤー透明度;
}
}
@ -213,8 +236,8 @@ namespace TJAPlayer3
{
if (TJAPlayer3.Tx.Lane_Base[1] != null && TJAPlayer3.Tx.Lane_Base[2] != null)
{
TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
TJAPlayer3.Tx.Lane_Base[2].Opacity = this.stBranch[i].nBranchレイヤー透明度;
}
}
@ -224,8 +247,8 @@ namespace TJAPlayer3
{
if (TJAPlayer3.Tx.Lane_Base[1] != null && TJAPlayer3.Tx.Lane_Base[0] != null)
{
TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Base[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
TJAPlayer3.Tx.Lane_Base[0].Opacity = this.stBranch[i].nBranchレイヤー透明度;
}
}
@ -235,8 +258,8 @@ namespace TJAPlayer3
{
if (TJAPlayer3.Tx.Lane_Base[2] != null && TJAPlayer3.Tx.Lane_Base[0] != null)
{
TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Base[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
TJAPlayer3.Tx.Lane_Base[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
TJAPlayer3.Tx.Lane_Base[0].Opacity = this.stBranch[i].nBranchレイヤー透明度;
}
}
@ -265,27 +288,27 @@ namespace TJAPlayer3
if (this.ctゴーゴー.n現在の値 <= 4)
{
TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.2f;
TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + 54);
TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, x[i], y[i] + 54);
}
else if (this.ctゴーゴー.n現在の値 <= 5)
{
TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.4f;
TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + 40);
TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, x[i], y[i] + 40);
}
else if (this.ctゴーゴー.n現在の値 <= 6)
{
TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.6f;
TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + 26);
TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, x[i], y[i] + 26);
}
else if (this.ctゴーゴー.n現在の値 <= 8)
{
TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 0.8f;
TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + 13);
TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, x[i], y[i] + 13);
}
else if (this.ctゴーゴー.n現在の値 >= 9)
{
TJAPlayer3.Tx.Lane_Background_GoGo.vc拡大縮小倍率.Y = 1.0f;
TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Background_GoGo.t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
}
}
#endregion
@ -319,15 +342,15 @@ namespace TJAPlayer3
{
case CDTX.ECourse.eNormal:
TJAPlayer3.Tx.Lane_Text[0].Opacity = 255;
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
break;
case CDTX.ECourse.eExpert:
TJAPlayer3.Tx.Lane_Text[1].Opacity = 255;
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
break;
case CDTX.ECourse.eMaster:
TJAPlayer3.Tx.Lane_Text[2].Opacity = 255;
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
break;
}
}
@ -346,14 +369,14 @@ namespace TJAPlayer3
if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60)
{
this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2;
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i] + this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[1].Opacity = 255;
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 30) + this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 30) + this.stBranch[i].nY);
}
else
{
TJAPlayer3.Tx.Lane_Text[1].Opacity = 255;
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
}
}
@ -367,9 +390,9 @@ namespace TJAPlayer3
if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60)
{
this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2;
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 12) + this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 12) + this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[0].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 100));
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 20) + this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 20) + this.stBranch[i].nY);
}
//if( this.stBranch[ i ].ct分岐アニメ進行.n現在の値 >= 5 && this.stBranch[ i ].ct分岐アニメ進行.n現在の値 < 60 )
//{
@ -381,21 +404,21 @@ namespace TJAPlayer3
else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 60 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 150)
{
this.stBranch[i].nY = 21;
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
TJAPlayer3.Tx.Lane_Text[1].Opacity = 255;
TJAPlayer3.Tx.Lane_Text[2].Opacity = 255;
}
else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 150 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 210)
{
this.stBranch[i].nY = ((this.stBranch[i].ct分岐アニメ進行.n現在の値 - 150) / 2);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i] + this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 100));
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 20) + this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 20) + this.stBranch[i].nY);
}
else
{
TJAPlayer3.Tx.Lane_Text[2].Opacity = 255;
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
}
}
#endregion
@ -411,12 +434,12 @@ namespace TJAPlayer3
if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60)
{
this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2;
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 20) + this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i] + this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 20) + this.stBranch[i].nY);
}
else
{
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
}
}
#endregion
@ -431,12 +454,12 @@ namespace TJAPlayer3
if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60)
{
this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2;
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] - this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] + 30) - this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i] - this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 30) - this.stBranch[i].nY);
}
else
{
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
}
}
#endregion
@ -451,27 +474,27 @@ namespace TJAPlayer3
{
this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2;
TJAPlayer3.Tx.Lane_Text[2].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 60));
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] - this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] + 30) - this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i] - this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 30) - this.stBranch[i].nY);
}
else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 60 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 150)
{
this.stBranch[i].nY = 21;
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
TJAPlayer3.Tx.Lane_Text[1].Opacity = 255;
TJAPlayer3.Tx.Lane_Text[2].Opacity = 255;
}
else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 150 && this.stBranch[i].ct分岐アニメ進行.n現在の値 < 210)
{
this.stBranch[i].nY = ((this.stBranch[i].ct分岐アニメ進行.n現在の値 - 150) / 2);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] - this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i] - this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].ct分岐アニメ進行.n現在の値 > 100 ? 0 : (255 - ((this.stBranch[i].ct分岐アニメ進行.n現在の値 * 0xff) / 100));
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] + 30) - this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 30) - this.stBranch[i].nY);
}
else if (this.stBranch[i].ct分岐アニメ進行.n現在の値 >= 210)
{
TJAPlayer3.Tx.Lane_Text[0].Opacity = 255;
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
}
}
if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eExpert)
@ -484,12 +507,12 @@ namespace TJAPlayer3
if (this.stBranch[i].ct分岐アニメ進行.n現在の値 < 60)
{
this.stBranch[i].nY = this.stBranch[i].ct分岐アニメ進行.n現在の値 / 2;
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] - this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] + 30) - this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i] - this.stBranch[i].nY);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 30) - this.stBranch[i].nY);
}
else
{
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
}
}
@ -509,15 +532,15 @@ namespace TJAPlayer3
{
case CDTX.ECourse.eNormal:
TJAPlayer3.Tx.Lane_Text[0].Opacity = 255;
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
break;
case CDTX.ECourse.eExpert:
TJAPlayer3.Tx.Lane_Text[1].Opacity = 255;
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
break;
case CDTX.ECourse.eMaster:
TJAPlayer3.Tx.Lane_Text[2].Opacity = 255;
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i]);
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i]);
break;
}
}
@ -528,15 +551,15 @@ namespace TJAPlayer3
//普通→玄人
if (this.stBranch[i].nBefore == CDTX.ECourse.eNormal && this.stBranch[i].nAfter == CDTX.ECourse.eExpert)
{
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] - this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] + 20) - this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i] - this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 20) - this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[0].Opacity = this.stBranch[i].nBranchレイヤー透明度;
}
//普通→達人
if (this.stBranch[i].nBefore == CDTX.ECourse.eNormal && this.stBranch[i].nAfter == CDTX.ECourse.eMaster)
{
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] - this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] + 20) - this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], y[i] - this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 20) - this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[0].Opacity = this.stBranch[i].nBranchレイヤー透明度;
}
#endregion
@ -544,30 +567,30 @@ namespace TJAPlayer3
//玄人→達人
if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eMaster)
{
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] - this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] + 20) - this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i] - this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] + 20) - this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].nBranchレイヤー透明度;
}
#endregion
#region[ _レベルダウン ]
if (this.stBranch[i].nBefore == CDTX.ECourse.eExpert && this.stBranch[i].nAfter == CDTX.ECourse.eNormal)
{
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 24) + this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], y[i] + this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 24) + this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[1].Opacity = this.stBranch[i].nBranchレイヤー透明度;
}
#endregion
#region[ _レベルダウン ]
if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eNormal)
{
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 24) + this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i] + this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[0].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 24) + this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[2].Opacity = this.stBranch[i].nBranchレイヤー透明度;
}
if (this.stBranch[i].nBefore == CDTX.ECourse.eMaster && this.stBranch[i].nAfter == CDTX.ECourse.eExpert)
{
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], TJAPlayer3.Skin.Game_Lane_Y[i] + this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[i], (TJAPlayer3.Skin.Game_Lane_Y[i] - 24) + this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[2].t2D描画(TJAPlayer3.app.Device, x[i], y[i] + this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[1].t2D描画(TJAPlayer3.app.Device, x[i], (y[i] - 24) + this.stBranch[i].nY座標);
TJAPlayer3.Tx.Lane_Text[2].Opacity = this.stBranch[i].nBranchレイヤー透明度;
}
#endregion
@ -578,7 +601,8 @@ namespace TJAPlayer3
}
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
if (TJAPlayer3.Tx.Lane_Background_Sub != null)
{
TJAPlayer3.Tx.Lane_Background_Sub.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_Sub_X[0], TJAPlayer3.Skin.Game_Lane_Sub_Y[0]);
@ -587,6 +611,7 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Lane_Background_Sub.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_Sub_X[1], TJAPlayer3.Skin.Game_Lane_Sub_Y[1]);
}
}
}
TJAPlayer3.stage演奏ドラム画面.actTaikoLaneFlash.On進行描画();
@ -596,6 +621,85 @@ namespace TJAPlayer3
if (TJAPlayer3.Tx.Taiko_Frame[0] != null)
{
// Tower frame (without tamashii jauge) if playing a tower chart
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
int frame_x;
int frame_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
frame_x = TJAPlayer3.Skin.Game_Taiko_Frame_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
frame_y = TJAPlayer3.Skin.Game_Taiko_Frame_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
frame_x = TJAPlayer3.Skin.Game_Taiko_Frame_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
frame_y = TJAPlayer3.Skin.Game_Taiko_Frame_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
}
else
{
frame_x = TJAPlayer3.Skin.Game_Taiko_Frame_X[i];
frame_y = TJAPlayer3.Skin.Game_Taiko_Frame_Y[i];
}
CTexture tex = null;
switch (i)
{
case 0:
{
if (TJAPlayer3.ConfigIni.bTokkunMode)
{
tex = TJAPlayer3.Tx.Taiko_Frame[3];
}
else if (TJAPlayer3.ConfigIni.bAIBattleMode)
{
tex = TJAPlayer3.Tx.Taiko_Frame[5];
}
else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower)
{
tex = TJAPlayer3.Tx.Taiko_Frame[2];
}
else if (TJAPlayer3.ConfigIni.nPlayerCount > 2)
{
tex = TJAPlayer3.Tx.Taiko_Frame[6];
}
else
{
tex = TJAPlayer3.Tx.Taiko_Frame[0];
}
}
break;
case 1:
{
if (TJAPlayer3.ConfigIni.bAIBattleMode)
{
tex = TJAPlayer3.Tx.Taiko_Frame[4];
}
else if (TJAPlayer3.ConfigIni.nPlayerCount > 2)
{
tex = TJAPlayer3.Tx.Taiko_Frame[6];
}
else
{
tex = TJAPlayer3.Tx.Taiko_Frame[1];
}
}
break;
case 2:
tex = TJAPlayer3.Tx.Taiko_Frame[6];
break;
case 3:
tex = TJAPlayer3.Tx.Taiko_Frame[6];
break;
case 4:
tex = TJAPlayer3.Tx.Taiko_Frame[6];
break;
}
tex?.t2D描画(TJAPlayer3.app.Device, frame_x, frame_y);
}
/*
if (TJAPlayer3.ConfigIni.bTokkunMode == true && TJAPlayer3.Tx.Taiko_Frame[3] != null)
TJAPlayer3.Tx.Taiko_Frame[3]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Frame_X[0], TJAPlayer3.Skin.Game_Taiko_Frame_Y[0]);
else if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower && TJAPlayer3.Tx.Taiko_Frame[2] != null)
@ -612,6 +716,7 @@ namespace TJAPlayer3
else
TJAPlayer3.Tx.Taiko_Frame[1]?.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Taiko_Frame_X[1], TJAPlayer3.Skin.Game_Taiko_Frame_Y[1]);
}
*/
}
var nTime = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
@ -684,10 +789,10 @@ namespace TJAPlayer3
if (TJAPlayer3.Tx.Judge_Frame != null)
{
TJAPlayer3.Tx.Judge_Frame.b加算合成 = TJAPlayer3.Skin.Game_JudgeFrame_AddBlend;
TJAPlayer3.Tx.Judge_Frame.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldX[0], TJAPlayer3.Skin.nScrollFieldY[0], new Rectangle(0, 0, TJAPlayer3.Skin.Game_Notes_Size[0], TJAPlayer3.Skin.Game_Notes_Size[1]));
if (TJAPlayer3.stage演奏ドラム画面.bDoublePlay)
TJAPlayer3.Tx.Judge_Frame.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.nScrollFieldX[1], TJAPlayer3.Skin.nScrollFieldY[1], new Rectangle(0, 0, TJAPlayer3.Skin.Game_Notes_Size[0], TJAPlayer3.Skin.Game_Notes_Size[1]));
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
TJAPlayer3.Tx.Judge_Frame.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.stage演奏ドラム画面.NoteOriginX[i], TJAPlayer3.stage演奏ドラム画面.NoteOriginY[i], new Rectangle(0, 0, TJAPlayer3.Skin.Game_Notes_Size[0], TJAPlayer3.Skin.Game_Notes_Size[1]));
}
}
@ -718,8 +823,24 @@ namespace TJAPlayer3
int width = TJAPlayer3.Tx.Effects_Fire.szテクスチャサイズ.Width / 7;
int height = TJAPlayer3.Tx.Effects_Fire.szテクスチャサイズ.Height;
float x = TJAPlayer3.Skin.Game_Effect_Fire_X[i] - (width * (f倍率 - 1.0f) / 2.0f);
float y = TJAPlayer3.Skin.Game_Effect_Fire_Y[i] - (height * (f倍率 - 1.0f) / 2.0f);
float x = -(width * (f倍率 - 1.0f) / 2.0f);
float y = -(height * (f倍率 - 1.0f) / 2.0f);
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
x += TJAPlayer3.Skin.Game_Effect_Fire_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
y += TJAPlayer3.Skin.Game_Effect_Fire_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
x += TJAPlayer3.Skin.Game_Effect_Fire_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
y += TJAPlayer3.Skin.Game_Effect_Fire_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
}
else
{
x += TJAPlayer3.Skin.Game_Effect_Fire_X[i];
y += TJAPlayer3.Skin.Game_Effect_Fire_Y[i];
}
TJAPlayer3.Tx.Effects_Fire.vc拡大縮小倍率.X = f倍率;
TJAPlayer3.Tx.Effects_Fire.vc拡大縮小倍率.Y = f倍率;
@ -744,8 +865,24 @@ namespace TJAPlayer3
//this.txアタックエフェクトLower.b加算合成 = true;
int n = this.st状態[i].nIsBig == 1 ? 520 : 0;
float x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_X[i];
float y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_Y[i];
float x = 0;
float y = 0;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * i);
y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * i);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * i);
y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * i);
}
else
{
x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_X[i];
y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_Y[i];
}
switch (st状態[i].judge)
{
@ -881,7 +1018,7 @@ namespace TJAPlayer3
//private CTextureAf txアタックエフェクトLower;
protected STSTATUS[] st状態 = new STSTATUS[4];
protected STSTATUS[] st状態 = new STSTATUS[5];
//private CTexture[] txゴーゴースプラッシュ;
@ -900,7 +1037,7 @@ namespace TJAPlayer3
public STBRANCH[] stBranch = new STBRANCH[4];
public STBRANCH[] stBranch = new STBRANCH[5];
[StructLayout(LayoutKind.Sequential)]
public struct STBRANCH
{
@ -929,7 +1066,7 @@ namespace TJAPlayer3
private int n移動目的場所X2;
private int n移動方向2;
internal int[,] nDefaultJudgePos = new int[2, 2];
internal int[,] nDefaultJudgePos = new int[5, 2];
//-----------------

View File

@ -19,11 +19,14 @@ namespace TJAPlayer3
public override void On活性化()
{
JudgeAnimes = new JudgeAnime[2, 512];
JudgeAnimes = new JudgeAnime[5, 512];
for (int i = 0; i < 512; i++)
{
JudgeAnimes[0, i] = new JudgeAnime();
JudgeAnimes[1, i] = new JudgeAnime();
JudgeAnimes[2, i] = new JudgeAnime();
JudgeAnimes[3, i] = new JudgeAnime();
JudgeAnimes[4, i] = new JudgeAnime();
}
base.On活性化();
}
@ -34,6 +37,9 @@ namespace TJAPlayer3
{
JudgeAnimes[0, i] = null;
JudgeAnimes[1, i] = null;
JudgeAnimes[2, i] = null;
JudgeAnimes[3, i] = null;
JudgeAnimes[4, i] = null;
}
base.On非活性化();
}
@ -45,7 +51,7 @@ namespace TJAPlayer3
{
for (int i = 0; i < 512; i++)
{
for(int j = 0; j < 2; j++)
for(int j = 0; j < 5; j++)
{
if (JudgeAnimes[j, i].counter.b停止中) continue;
JudgeAnimes[j, i].counter.t進行();
@ -54,8 +60,27 @@ namespace TJAPlayer3
{
float moveValue = CubicEaseOut(JudgeAnimes[j, i].counter.n現在の値 / 410.0f) - 1.0f;
float x = TJAPlayer3.Skin.Game_Judge_X[j] + (moveValue * TJAPlayer3.Skin.Game_Judge_Move[0]);
float y = TJAPlayer3.Skin.Game_Judge_Y[j] + (moveValue * TJAPlayer3.Skin.Game_Judge_Move[1]);
float x = 0;
float y = 0;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
x = TJAPlayer3.Skin.Game_Judge_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * j);
y = TJAPlayer3.Skin.Game_Judge_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * j);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
x = TJAPlayer3.Skin.Game_Judge_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * j);
y = TJAPlayer3.Skin.Game_Judge_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * j);
}
else
{
x = TJAPlayer3.Skin.Game_Judge_X[j];
y = TJAPlayer3.Skin.Game_Judge_Y[j];
}
x += (moveValue * TJAPlayer3.Skin.Game_Judge_Move[0]);
y += (moveValue * TJAPlayer3.Skin.Game_Judge_Move[1]);
TJAPlayer3.Tx.Judge.Opacity = (int)(255f - (JudgeAnimes[j, i].counter.n現在の値 >= 360 ? ((JudgeAnimes[j, i].counter.n現在の値 - 360) / 50.0f) * 255f : 0f));
TJAPlayer3.Tx.Judge.t2D描画(TJAPlayer3.app.Device, x, y, JudgeAnimes[j, i].rc);
}

View File

@ -122,7 +122,7 @@ namespace TJAPlayer3
public override void On活性化()
{
this.bリザルトボイス再生済み = false;
this.Mode = new EndMode[2];
this.Mode = new EndMode[5];
base.On活性化();
}
@ -139,7 +139,7 @@ namespace TJAPlayer3
{
var origindir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.END}");
FailedScript = new EndAnimeScript($@"{origindir}ClearFailed\Script.lua");
FailedScript = new EndAnimeScript($@"{origindir}ClearFailed\Script.lua");//ClearFailed
FailedScript.Init();
ClearScript = new EndAnimeScript($@"{origindir}Clear\Script.lua");
@ -535,10 +535,10 @@ namespace TJAPlayer3
*/
CCounter ct進行Loop;
CSound[] soundClear = new CSound[4];
CSound[] soundFailed = new CSound[4];
CSound[] soundFullCombo = new CSound[4];
CSound[] soundDondaFullCombo = new CSound[4];
CSound[] soundClear = new CSound[5];
CSound[] soundFailed = new CSound[5];
CSound[] soundFullCombo = new CSound[5];
CSound[] soundDondaFullCombo = new CSound[5];
EndMode[] Mode;
enum EndMode
{

View File

@ -65,25 +65,25 @@ namespace TJAPlayer3
public override void On活性化()
{
this.ct連打枠カウンター = new CCounter[ 4 ];
this.ct連打アニメ = new CCounter[4];
FadeOut = new Animations.FadeOut[4];
for ( int i = 0; i < 4; i++ )
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 };
this.n連打数 = new int[ 4 ];
this.b表示 = new bool[]{ false, false, false, false, false };
this.n連打数 = new int[ 5 ];
base.On活性化();
}
public override void On非活性化()
{
for (int i = 0; i < 4; i++)
for (int i = 0; i < 5; i++)
{
ct連打枠カウンター[i] = null;
ct連打アニメ[i] = null;
@ -109,6 +109,8 @@ namespace TJAPlayer3
public int On進行描画( int n連打数, int player )
{
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return base.On進行描画();
this.ct連打枠カウンター[ player ].t進行();
this.ct連打アニメ[player].t進行();
FadeOut[player].Tick();

View File

@ -172,6 +172,9 @@ namespace TJAPlayer3
// }
//}
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return 0;
for (int i = 0; i < 128; i++)
{
if(RollCharas[i].IsUsing)

View File

@ -67,8 +67,8 @@ namespace TJAPlayer3
{
this.ct風船終了 = new CCounter();
this.ct風船ふきだしアニメ = new CCounter();
this.ct風船アニメ = new CCounter[4];
for (int i = 0; i < 4; i++)
this.ct風船アニメ = new CCounter[5];
for (int i = 0; i < 5; i++)
{
this.ct風船アニメ[i] = new CCounter();
}
@ -146,22 +146,56 @@ namespace TJAPlayer3
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_5P[0] * player);
num_y = TJAPlayer3.Skin.Game_Balloon_Balloon_Number_4P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[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連打数)
{
if (TJAPlayer3.Tx.Balloon_Breaking[j] != null)
TJAPlayer3.Tx.Balloon_Breaking[j].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Balloon_Balloon_X[player] + (this.ct風船ふきだしアニメ.n現在の値 == 1 ? 3 : 0), TJAPlayer3.Skin.Game_Balloon_Balloon_Y[player]);
TJAPlayer3.Tx.Balloon_Breaking[j].t2D描画(TJAPlayer3.app.Device, x + (this.ct風船ふきだしアニメ.n現在の値 == 1 ? 3 : 0), y);
break;
}
}
//1P:31 2P:329
if (TJAPlayer3.Tx.Balloon_Balloon != null)
TJAPlayer3.Tx.Balloon_Balloon.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_X[player], TJAPlayer3.Skin.Game_Balloon_Balloon_Frame_Y[player]);
this.t文字表示(TJAPlayer3.Skin.Game_Balloon_Balloon_Number_X[player], TJAPlayer3.Skin.Game_Balloon_Balloon_Number_Y[player], n連打数, player);
TJAPlayer3.Tx.Balloon_Balloon.t2D描画(TJAPlayer3.app.Device, frame_x, frame_y);
this.t文字表示(num_x, num_y, n連打数, player);
//CDTXMania.act文字コンソール.tPrint( 0, 0, C文字コンソール.Eフォント種別.白, n連打数.ToString() );
}
if (n連打数 == 0 && TJAPlayer3.stage演奏ドラム画面.actChara.b風船連打中[player])

View File

@ -197,9 +197,9 @@ namespace TJAPlayer3
base.ReSetScore(TJAPlayer3.DTX.nScoreInit[0, TJAPlayer3.stage選曲.n確定された曲の難易度[0]], TJAPlayer3.DTX.nScoreDiff[TJAPlayer3.stage選曲.n確定された曲の難易度[0]]);
#region [ branch ]
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
this.n分岐した回数[0] = 0;
this.n分岐した回数[i] = 0;
this.bLEVELHOLD[i] = false;
}
this.nBranch条件数値A = 0;
@ -211,6 +211,9 @@ namespace TJAPlayer3
ifp[0] = false;
ifp[1] = false;
ifp[2] = false;
ifp[3] = false;
ifp[4] = false;
this.nStoredHit = new int[TJAPlayer3.ConfigIni.nPlayerCount];
@ -231,7 +234,7 @@ namespace TJAPlayer3
//dbUnit = Math.Ceiling( dbUnit * 1000.0 );
//dbUnit = dbUnit / 1000.0;
for(int nPlayer = 0; nPlayer < 2; nPlayer++)
for(int nPlayer = 0; nPlayer < 5; nPlayer++)
{
int p = TJAPlayer3.GetActualPlayer(nPlayer);
@ -312,7 +315,7 @@ namespace TJAPlayer3
Discord.UpdatePresence(TJAPlayer3.ConfigIni.SendDiscordPlayingInformation ? TJAPlayer3.stage選曲.r確定された曲.strタイトル
+ Discord.DiffToString(TJAPlayer3.stage選曲.n確定された曲の難易度[0])
: "",
Properties.Discord.Stage_InGame + (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay == true ? " (" + Properties.Discord.Info_IsAuto + ")" : ""),
Properties.Discord.Stage_InGame + (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] == true ? " (" + Properties.Discord.Info_IsAuto + ")" : ""),
0,
endTimeStamp,
TJAPlayer3.ConfigIni.SendDiscordPlayingInformation ? difficultyName.ToLower() : "",
@ -355,21 +358,17 @@ namespace TJAPlayer3
// other controller, etc. and the sounds of the input calibration audio file.
if (!TJAPlayer3.IsPerformingCalibration)
{
int actual1 = TJAPlayer3.GetActualPlayer(0);
int actual2 = TJAPlayer3.GetActualPlayer(1);
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
int actual = TJAPlayer3.GetActualPlayer(i);
var hs = TJAPlayer3.Skin.hsHitSoundsInformations;
this.soundRed = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.don[actual1]), ESoundGroup.SoundEffect);
this.soundBlue = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.ka[actual1]), ESoundGroup.SoundEffect);
this.soundAdlib = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.adlib[actual1]), ESoundGroup.SoundEffect);
this.soundClap = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.clap[actual1]), ESoundGroup.SoundEffect);
this.soundRed2 = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.don[actual2]), ESoundGroup.SoundEffect);
this.soundBlue2 = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.ka[actual2]), ESoundGroup.SoundEffect);
this.soundAdlib2 = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.adlib[actual2]), ESoundGroup.SoundEffect);
this.soundClap2 = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.clap[actual2]), ESoundGroup.SoundEffect);
this.soundRed[i] = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.don[actual]), ESoundGroup.SoundEffect);
this.soundBlue[i] = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.ka[actual]), ESoundGroup.SoundEffect);
this.soundAdlib[i] = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.adlib[actual]), ESoundGroup.SoundEffect);
this.soundClap[i] = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(hs.clap[actual]), ESoundGroup.SoundEffect);
}
/*
this.soundRed = TJAPlayer3.Sound管理.tサウンドを生成する( CSkin.Path( @"Sounds\Taiko\dong.ogg" ), ESoundGroup.SoundEffect );
this.soundBlue = TJAPlayer3.Sound管理.tサウンドを生成する( CSkin.Path( @"Sounds\Taiko\ka.ogg" ), ESoundGroup.SoundEffect );
@ -381,14 +380,14 @@ namespace TJAPlayer3
*/
if (TJAPlayer3.ConfigIni.nPlayerCount >= 2)//2020.05.06 Mr-Ojii左右に出したかったから、追加。
if (TJAPlayer3.ConfigIni.nPlayerCount == 2)//2020.05.06 Mr-Ojii左右に出したかったから、追加。
{
this.soundRed.n位置 = -100;
this.soundBlue.n位置 = -100;
this.soundAdlib.n位置 = -100;
this.soundRed2.n位置 = 100;
this.soundBlue2.n位置 = 100;
this.soundAdlib2.n位置 = 100;
this.soundRed[0].n位置 = -100;
this.soundBlue[0].n位置 = -100;
this.soundAdlib[0].n位置 = -100;
this.soundRed[1].n位置 = 100;
this.soundBlue[1].n位置 = 100;
this.soundAdlib[1].n位置 = 100;
}
}
@ -399,22 +398,17 @@ namespace TJAPlayer3
{
if( !base.b活性化してない )
{
if( this.soundRed != null )
this.soundRed.t解放する();
if( this.soundBlue != null )
this.soundBlue.t解放する();
if( this.soundAdlib != null )
this.soundAdlib.t解放する();
if (this.soundClap != null)
this.soundClap.t解放する();
if (this.soundRed2 != null)
this.soundRed2.t解放する();
if (this.soundBlue2 != null)
this.soundBlue2.t解放する();
if (this.soundAdlib2 != null)
this.soundAdlib2.t解放する();
if (this.soundClap2 != null)
this.soundClap2.t解放する();
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (this.soundRed[i] != null)
this.soundRed[i].t解放する();
if (this.soundBlue[i] != null)
this.soundBlue[i].t解放する();
if (this.soundAdlib[i] != null)
this.soundAdlib[i].t解放する();
if (this.soundClap[i] != null)
this.soundClap[i].t解放する();
}
base.OnManagedリソースの解放();
}
}
@ -504,8 +498,10 @@ namespace TJAPlayer3
//this.t進行描画_DANGER();
//this.t進行描画_判定ライン();
if( TJAPlayer3.ConfigIni.ShowChara )
if( TJAPlayer3.ConfigIni.ShowChara && TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
this.actChara.On進行描画();
}
if(!BGA_Hidden && TJAPlayer3.ConfigIni.ShowMob && !TJAPlayer3.ConfigIni.bTokkunMode)
this.actMob.On進行描画();
@ -549,7 +545,11 @@ namespace TJAPlayer3
this.t進行描画_チップ_連打( E楽器パート.DRUMS, i );
}
bIsFinishedPlaying = (TJAPlayer3.ConfigIni.nPlayerCount > 1 ) ? ifp[0] && ifp[1] : ifp[0];
bIsFinishedPlaying = true;
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (!ifp[i]) bIsFinishedPlaying = false;
}
this.actDan.On進行描画();
@ -570,6 +570,10 @@ namespace TJAPlayer3
if( !TJAPlayer3.ConfigIni.bNoInfo && !TJAPlayer3.ConfigIni.bTokkunMode)
this.t進行描画_スコア();
if (TJAPlayer3.ConfigIni.ShowChara && TJAPlayer3.ConfigIni.nPlayerCount > 2)
{
this.actChara.On進行描画();
}
this.Rainbow.On進行描画();
this.FireWorks.On進行描画();
@ -636,7 +640,7 @@ namespace TJAPlayer3
}
else
{
for(int i = 0; i < 2; i++)
for(int i = 0; i < 5; i++)
{
base.eフェーズID = CStage.Eフェーズ._演奏終了演出;
@ -698,7 +702,7 @@ namespace TJAPlayer3
}
public CAct演奏DrumsチップファイアD actChipFireD;
private bool[] ifp = { false, false };
private bool[] ifp = { false, false, false, false, false };
private CAct演奏Drumsグラフ actGraph; // #24074 2011.01.23 add ikanick
private CAct演奏Drumsパッド actPad;
@ -812,6 +816,12 @@ namespace TJAPlayer3
case Eパッド.RRed:
case Eパッド.LRed2P:
case Eパッド.RRed2P:
case Eパッド.LRed3P:
case Eパッド.RRed3P:
case Eパッド.LRed4P:
case Eパッド.RRed4P:
case Eパッド.LRed5P:
case Eパッド.RRed5P:
nInput = 0;
if( b両手入力 )
nInput = 2;
@ -820,12 +830,21 @@ namespace TJAPlayer3
case Eパッド.RBlue:
case Eパッド.LBlue2P:
case Eパッド.RBlue2P:
case Eパッド.LBlue3P:
case Eパッド.RBlue3P:
case Eパッド.LBlue4P:
case Eパッド.RBlue4P:
case Eパッド.LBlue5P:
case Eパッド.RBlue5P:
nInput = 1;
if( b両手入力 )
nInput = 3;
break;
case Eパッド.CLAP:
case Eパッド.CLAP2P:
case Eパッド.CLAP3P:
case Eパッド.CLAP4P:
case Eパッド.CLAP5P:
nInput = 4;
break;
}
@ -969,8 +988,11 @@ namespace TJAPlayer3
//2015.03.19 kairera0467 Chipを1つにまとめて1つのレーン扱いにする。
bool isPad1P = (nPad >= 12 && nPad <= 15) || nPad == 20;
bool isPad2P = (nPad >= 16 && nPad <= 19) || nPad == 21;
bool isPad1P = (nPad >= 12 && nPad <= 15) || nPad == 32;
bool isPad2P = (nPad >= 16 && nPad <= 19) || nPad == 33;
bool isPad3P = (nPad >= 20 && nPad <= 23) || nPad == 34;
bool isPad4P = (nPad >= 24 && nPad <= 27) || nPad == 35;
bool isPad5P = (nPad >= 28 && nPad <= 31) || nPad == 36;
int nUsePlayer = 0;
if (isPad1P)
@ -983,12 +1005,39 @@ namespace TJAPlayer3
if (TJAPlayer3.ConfigIni.nPlayerCount < 2) //プレイ人数が2人以上でなければ入力をキャンセル
break;
}
else if (isPad3P)
{
nUsePlayer = 2;
if (TJAPlayer3.ConfigIni.nPlayerCount < 3) //プレイ人数が3人以上でなければ入力をキャンセル
break;
}
else if (isPad4P)
{
nUsePlayer = 3;
if (TJAPlayer3.ConfigIni.nPlayerCount < 4) //プレイ人数が4人以上でなければ入力をキャンセル
break;
}
else if (isPad5P)
{
nUsePlayer = 4;
if (TJAPlayer3.ConfigIni.nPlayerCount < 5) //プレイ人数が5人以上でなければ入力をキャンセル
break;
}
if (!TJAPlayer3.ConfigIni.bTokkunMode && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay && isPad1P)//2020.05.18 Mr-Ojii オート時の入力キャンセル
if (!TJAPlayer3.ConfigIni.bTokkunMode && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] && isPad1P)//2020.05.18 Mr-Ojii オート時の入力キャンセル
break;
else if ((TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode) && isPad2P)
else if ((TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[1] || TJAPlayer3.ConfigIni.bAIBattleMode) && isPad2P)
break;
var padTo = nUsePlayer == 0 ? nPad - 12 : nPad - 12 - 4;
else if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[2] && isPad3P)
break;
else if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[3] && isPad4P)
break;
else if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[4] && isPad5P)
break;
//var padTo = nUsePlayer == 0 ? nPad - 12 : nPad - 12 - 4;
var padTo = nPad - 12;
padTo -= 4 * nUsePlayer;
var isDon = padTo < 2 ? true : false;
CDTX.CChip chipNoHit = r指定時刻に一番近い未ヒットChipを過去方向優先で検索する(nTime, nUsePlayer);
@ -1004,14 +1053,7 @@ namespace TJAPlayer3
if (NotesManager.IsADLIB(chipNoHit) && (e判定 == E判定.Perfect || e判定 == E判定.Good))
b太鼓音再生フラグ = false;
if (NotesManager.IsADLIB(chipNoHit) && (e判定 != E判定.Miss && e判定 != E判定.Poor))
if (chipNoHit.nPlayerSide == 0)
{
this.soundAdlib?.t再生を開始する();
}
else
{
this.soundAdlib2?.t再生を開始する();
}
this.soundAdlib[chipNoHit.nPlayerSide]?.t再生を開始する();
}
#endregion
@ -1026,7 +1068,7 @@ namespace TJAPlayer3
nChannel = 0x11;
if (b太鼓音再生フラグ)
{
this.soundRed?.t再生を開始する();
this.soundRed[0]?.t再生を開始する();
}
break;
case 13:
@ -1035,7 +1077,7 @@ namespace TJAPlayer3
nChannel = 0x11;
if (b太鼓音再生フラグ)
{
this.soundRed?.t再生を開始する();
this.soundRed[0]?.t再生を開始する();
}
break;
case 14:
@ -1043,14 +1085,14 @@ namespace TJAPlayer3
nHand = 0;
nChannel = 0x12;
if (b太鼓音再生フラグ)
this.soundBlue?.t再生を開始する();
this.soundBlue[0]?.t再生を開始する();
break;
case 15:
nLane = 1;
nHand = 1;
nChannel = 0x12;
if (b太鼓音再生フラグ)
this.soundBlue?.t再生を開始する();
this.soundBlue[0]?.t再生を開始する();
break;
//以下2P
case 16:
@ -1059,7 +1101,7 @@ namespace TJAPlayer3
nChannel = 0x11;
if (b太鼓音再生フラグ)
{
this.soundRed2?.t再生を開始する();
this.soundRed[1]?.t再生を開始する();
}
break;
case 17:
@ -1068,7 +1110,7 @@ namespace TJAPlayer3
nChannel = 0x11;
if (b太鼓音再生フラグ)
{
this.soundRed2?.t再生を開始する();
this.soundRed[1]?.t再生を開始する();
}
break;
case 18:
@ -1076,14 +1118,113 @@ namespace TJAPlayer3
nHand = 0;
nChannel = 0x12;
if (b太鼓音再生フラグ)
this.soundBlue2?.t再生を開始する();
this.soundBlue[1]?.t再生を開始する();
break;
case 19:
nLane = 1;
nHand = 1;
nChannel = 0x12;
if (b太鼓音再生フラグ)
this.soundBlue2?.t再生を開始する();
this.soundBlue[1]?.t再生を開始する();
break;
//以下3P
case 20:
nLane = 0;
nHand = 0;
nChannel = 0x11;
if (b太鼓音再生フラグ)
{
this.soundRed[2]?.t再生を開始する();
}
break;
case 21:
nLane = 0;
nHand = 1;
nChannel = 0x11;
if (b太鼓音再生フラグ)
{
this.soundRed[2]?.t再生を開始する();
}
break;
case 22:
nLane = 1;
nHand = 0;
nChannel = 0x12;
if (b太鼓音再生フラグ)
this.soundBlue[2]?.t再生を開始する();
break;
case 23:
nLane = 1;
nHand = 1;
nChannel = 0x12;
if (b太鼓音再生フラグ)
this.soundBlue[2]?.t再生を開始する();
break;
//以下4P
case 24:
nLane = 0;
nHand = 0;
nChannel = 0x11;
if (b太鼓音再生フラグ)
{
this.soundRed[3]?.t再生を開始する();
}
break;
case 25:
nLane = 0;
nHand = 1;
nChannel = 0x11;
if (b太鼓音再生フラグ)
{
this.soundRed[3]?.t再生を開始する();
}
break;
case 26:
nLane = 1;
nHand = 0;
nChannel = 0x12;
if (b太鼓音再生フラグ)
this.soundBlue[3]?.t再生を開始する();
break;
case 27:
nLane = 1;
nHand = 1;
nChannel = 0x12;
if (b太鼓音再生フラグ)
this.soundBlue[3]?.t再生を開始する();
break;
//以下5P
case 28:
nLane = 0;
nHand = 0;
nChannel = 0x11;
if (b太鼓音再生フラグ)
{
this.soundRed[4]?.t再生を開始する();
}
break;
case 29:
nLane = 0;
nHand = 1;
nChannel = 0x11;
if (b太鼓音再生フラグ)
{
this.soundRed[4]?.t再生を開始する();
}
break;
case 30:
nLane = 1;
nHand = 0;
nChannel = 0x12;
if (b太鼓音再生フラグ)
this.soundBlue[4]?.t再生を開始する();
break;
case 31:
nLane = 1;
nHand = 1;
nChannel = 0x12;
if (b太鼓音再生フラグ)
this.soundBlue[4]?.t再生を開始する();
break;
// Clap
case (int)Eパッド.CLAP:
@ -1094,7 +1235,7 @@ namespace TJAPlayer3
nChannel = 0x14;
if (b太鼓音再生フラグ)
{
this.soundClap?.t再生を開始する();
this.soundClap[0]?.t再生を開始する();
}
}
else
@ -1110,7 +1251,55 @@ namespace TJAPlayer3
nChannel = 0x14;
if (b太鼓音再生フラグ)
{
this.soundClap2?.t再生を開始する();
this.soundClap[1]?.t再生を開始する();
}
}
else
{
nLane = (int)PlayerLane.FlashType.Total;
}
break;
case (int)Eパッド.CLAP3P:
if (TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(1)] == EGameType.KONGA)
{
nLane = (int)PlayerLane.FlashType.Clap;
nHand = 0;
nChannel = 0x14;
if (b太鼓音再生フラグ)
{
this.soundClap[2]?.t再生を開始する();
}
}
else
{
nLane = (int)PlayerLane.FlashType.Total;
}
break;
case (int)Eパッド.CLAP4P:
if (TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(1)] == EGameType.KONGA)
{
nLane = (int)PlayerLane.FlashType.Clap;
nHand = 0;
nChannel = 0x14;
if (b太鼓音再生フラグ)
{
this.soundClap[3]?.t再生を開始する();
}
}
else
{
nLane = (int)PlayerLane.FlashType.Total;
}
break;
case (int)Eパッド.CLAP5P:
if (TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(1)] == EGameType.KONGA)
{
nLane = (int)PlayerLane.FlashType.Clap;
nHand = 0;
nChannel = 0x14;
if (b太鼓音再生フラグ)
{
this.soundClap[4]?.t再生を開始する();
}
}
else
@ -1153,12 +1342,24 @@ namespace TJAPlayer3
{
case Eパッド.LRed:
case Eパッド.LRed2P:
case Eパッド.LRed3P:
case Eパッド.LRed4P:
case Eパッド.LRed5P:
case Eパッド.RRed:
case Eパッド.RRed2P:
case Eパッド.RRed3P:
case Eパッド.RRed4P:
case Eパッド.RRed5P:
case Eパッド.LBlue:
case Eパッド.LBlue2P:
case Eパッド.LBlue3P:
case Eパッド.LBlue4P:
case Eパッド.LBlue5P:
case Eパッド.RBlue:
case Eパッド.RBlue2P:
case Eパッド.RBlue3P:
case Eパッド.RBlue4P:
case Eパッド.RBlue5P:
{
// Regular notes
@ -1172,6 +1373,21 @@ namespace TJAPlayer3
if ((Eパッド)nPad == Eパッド.LBlue2P) _pad = Eパッド.LBlue;
if ((Eパッド)nPad == Eパッド.RBlue2P) _pad = Eパッド.RBlue;
if ((Eパッド)nPad == Eパッド.LRed3P) _pad = Eパッド.LRed;
if ((Eパッド)nPad == Eパッド.RRed3P) _pad = Eパッド.RRed;
if ((Eパッド)nPad == Eパッド.LBlue3P) _pad = Eパッド.LBlue;
if ((Eパッド)nPad == Eパッド.RBlue3P) _pad = Eパッド.RBlue;
if ((Eパッド)nPad == Eパッド.LRed4P) _pad = Eパッド.LRed;
if ((Eパッド)nPad == Eパッド.RRed4P) _pad = Eパッド.RRed;
if ((Eパッド)nPad == Eパッド.LBlue4P) _pad = Eパッド.LBlue;
if ((Eパッド)nPad == Eパッド.RBlue4P) _pad = Eパッド.RBlue;
if ((Eパッド)nPad == Eパッド.LRed5P) _pad = Eパッド.LRed;
if ((Eパッド)nPad == Eパッド.RRed5P) _pad = Eパッド.RRed;
if ((Eパッド)nPad == Eパッド.LBlue5P) _pad = Eパッド.LBlue;
if ((Eパッド)nPad == Eパッド.RBlue5P) _pad = Eパッド.RBlue;
bool _isLeftPad = _pad == Eパッド.LRed || _pad == Eパッド.LBlue;
bool _isBlue = _pad == Eパッド.RBlue || _pad == Eパッド.LBlue;
@ -1285,6 +1501,9 @@ namespace TJAPlayer3
case Eパッド.CLAP:
case Eパッド.CLAP2P:
case Eパッド.CLAP3P:
case Eパッド.CLAP4P:
case Eパッド.CLAP5P:
{
var _pad = (Eパッド)nPad;
@ -1658,18 +1877,11 @@ namespace TJAPlayer3
long nPlayTime = (long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
if ((!pChip.bHit) && (pChip.n発声時刻ms <= nPlayTime))
{
bool bAutoPlay = false;
bool bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer];
switch (nPlayer)
{
case 0:
bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay;
break;
case 1:
bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode;
break;
case 2:
case 3:
bAutoPlay = true;
bAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode;
break;
}
@ -1718,7 +1930,7 @@ namespace TJAPlayer3
}
int x = pChip.nバーからの距離dot.Taiko;
int y = TJAPlayer3.Skin.nScrollFieldY[nPlayer];// + ((int)(pChip.nコース) * 100)
int y = NoteOriginY[nPlayer];// + ((int)(pChip.nコース) * 100)
int xTemp = 0;
int yTemp = 0;
@ -1732,34 +1944,34 @@ namespace TJAPlayer3
switch ( pChip.nスクロール方向 )
{
case 0:
x += ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] );
x += ( NoteOriginX[ nPlayer ] );
break;
case 1:
x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] );
y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] - xTemp;
x = (NoteOriginX[ nPlayer ] );
y = NoteOriginY[ nPlayer ] - xTemp;
break;
case 2:
x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] + 3 );
y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] + xTemp;
x = (NoteOriginX[ nPlayer ] + 3 );
y = NoteOriginY[ nPlayer ] + xTemp;
break;
case 3:
x += ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] );
y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] - xTemp;
x += (NoteOriginX[ nPlayer ] );
y = NoteOriginY[ nPlayer ] - xTemp;
break;
case 4:
x += ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] );
y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] + xTemp;
x += (NoteOriginX[ nPlayer ] );
y = NoteOriginY[ nPlayer ] + xTemp;
break;
case 5:
x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] + 10 ) - xTemp;
x = (NoteOriginX[ nPlayer ] + 10 ) - xTemp;
break;
case 6:
x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ) - xTemp;
y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] - xTemp;
x = (NoteOriginX[ nPlayer ] ) - xTemp;
y = NoteOriginY[ nPlayer ] - xTemp;
break;
case 7:
x = ( TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] ) - xTemp;
y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ] + xTemp;
x = (NoteOriginX[ nPlayer ] ) - xTemp;
y = NoteOriginY[ nPlayer ] + xTemp;
break;
}
#endregion
@ -1767,7 +1979,7 @@ namespace TJAPlayer3
#region[ ]
if( pChip.eNoteState == ENoteState.wait )
{
x = ( TJAPlayer3.Skin.nScrollFieldX[0] );
x = (NoteOriginX[nPlayer]);
}
#endregion
@ -1782,7 +1994,7 @@ namespace TJAPlayer3
{
var dbSCROLL = configIni.eScrollMode == EScrollMode.BMSCROLL ? 1.0 : pChip.dbSCROLL;
y = TJAPlayer3.Skin.nScrollFieldY[nPlayer];
y = NoteOriginY[nPlayer];
double _scrollSpeed = pChip.dbSCROLL_Y * (this.act譜面スクロール速度.db現在の譜面スクロール速度[nPlayer] + 1.0) / 10.0;
@ -1798,7 +2010,7 @@ namespace TJAPlayer3
this.actGame.st叩ききりまショー.b最初のチップが叩かれた = true;
}
if((TJAPlayer3.Skin.Resolution[0] + TJAPlayer3.Skin.Game_Notes_Size[nPlayer] > x ))
if((TJAPlayer3.Skin.Resolution[0] + TJAPlayer3.Skin.Game_Notes_Size[0] > x ))
{
if( TJAPlayer3.Tx.Notes[(int)_gt] != null )
{
@ -1867,8 +2079,28 @@ namespace TJAPlayer3
int nSenotesX = TJAPlayer3.Skin.nSENotesX[nPlayer];
int nSenotesY = TJAPlayer3.Skin.nSENotesY[nPlayer];
int nSenotesX = 0;
int nSenotesY = 0;
switch (TJAPlayer3.ConfigIni.nPlayerCount)
{
case 0:
case 1:
nSenotesX = TJAPlayer3.Skin.nSENotesX[nPlayer];
nSenotesY = TJAPlayer3.Skin.nSENotesY[nPlayer];
break;
case 2:
case 3:
case 4:
nSenotesX = TJAPlayer3.Skin.nSENotes_4P[0];
nSenotesY = TJAPlayer3.Skin.nSENotes_4P[1];
break;
case 5:
nSenotesX = TJAPlayer3.Skin.nSENotes_5P[0];
nSenotesY = TJAPlayer3.Skin.nSENotes_5P[1];
break;
}
this.ct手つなぎ.t進行Loop();
int nHand = this.ct手つなぎ.n現在の値 < 30 ? this.ct手つなぎ.n現在の値 : 60 - this.ct手つなぎ.n現在の値;
@ -1938,8 +2170,28 @@ namespace TJAPlayer3
}
protected override void t進行描画_チップ_Taiko連打( CConfigIni configIni, ref CDTX dTX, ref CDTX.CChip pChip, int nPlayer )
{
int nSenotesX = TJAPlayer3.Skin.nSENotesX[nPlayer];
int nSenotesY = TJAPlayer3.Skin.nSENotesY[ nPlayer ];
int nSenotesX = 0;
int nSenotesY = 0;
switch (TJAPlayer3.ConfigIni.nPlayerCount)
{
case 0:
case 1:
nSenotesX = TJAPlayer3.Skin.nSENotesX[nPlayer];
nSenotesY = TJAPlayer3.Skin.nSENotesY[nPlayer];
break;
case 2:
case 3:
case 4:
nSenotesX = TJAPlayer3.Skin.nSENotes_4P[0];
nSenotesY = TJAPlayer3.Skin.nSENotes_4P[1];
break;
case 5:
nSenotesX = TJAPlayer3.Skin.nSENotes_5P[0];
nSenotesY = TJAPlayer3.Skin.nSENotes_5P[1];
break;
}
int nート座標 = pChip.nバーからの距離dot.Taiko;
int nート末端座標 = pChip.nバーからのーツ末端距離dot;
int n先頭発声位置 = 0;
@ -2005,9 +2257,9 @@ namespace TJAPlayer3
*/
}
int x = TJAPlayer3.Skin.nScrollFieldX[nPlayer] + nート座標;
int x末端 = TJAPlayer3.Skin.nScrollFieldX[nPlayer] + nート末端座標;
int y = TJAPlayer3.Skin.nScrollFieldY[nPlayer];// + ((int)(pChip.nコース) * 100)
int x = NoteOriginX[nPlayer] + nート座標;
int x末端 = NoteOriginX[nPlayer] + nート末端座標;
int y = NoteOriginY[nPlayer];// + ((int)(pChip.nコース) * 100)
#region[ HIDSUD & STEALTH ]
@ -2021,7 +2273,7 @@ namespace TJAPlayer3
//if( CDTXMania.ConfigIni.eScrollMode != EScrollMode.Normal )
//x -= 10;
if ((TJAPlayer3.Skin.Resolution[0] + TJAPlayer3.Skin.Game_Notes_Size[nPlayer] > x))
if ((TJAPlayer3.Skin.Resolution[0] + TJAPlayer3.Skin.Game_Notes_Size[0] > x))
{
if (TJAPlayer3.Tx.Notes[(int)_gt] != null)
{
@ -2149,9 +2401,9 @@ namespace TJAPlayer3
if (pChip.bShow)
{
if ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) >= pChip.n発声時刻ms && (long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) < pChip.nーツ終了時刻ms)
x = TJAPlayer3.Skin.nScrollFieldX[nPlayer];
x = NoteOriginX[nPlayer];
else if ((long)(CSound管理.rc演奏用タイマ.n現在時刻ms * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) >= pChip.nーツ終了時刻ms)
x = (TJAPlayer3.Skin.nScrollFieldX[nPlayer] + pChip.nバーからのーツ末端距離dot);
x = (NoteOriginX[nPlayer] + pChip.nバーからのーツ末端距離dot);
NotesManager.DisplayNote(nPlayer, x, y, pChip, num9, TJAPlayer3.Skin.Game_Notes_Size[0] * 2);
NotesManager.DisplaySENotes(nPlayer, x + nSenotesX, y + nSenotesY, pChip);
@ -2195,7 +2447,7 @@ namespace TJAPlayer3
if (pChip.n発声時刻ms < (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)) && pChip.nーツ終了時刻ms > (CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0)))
{
//時間内でかつ0x9Aじゃないならならヒット処理
if (!NotesManager.IsRollEnd(pChip) && (nPlayer == 0 ? TJAPlayer3.ConfigIni.b太鼓パートAutoPlay : (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode)))
if (!NotesManager.IsRollEnd(pChip) && (nPlayer != 1 ? TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer] : (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[nPlayer] || TJAPlayer3.ConfigIni.bAIBattleMode)))
this.tチップのヒット処理(pChip.n発声時刻ms, pChip, E楽器パート.TAIKO, false, 0, nPlayer);
}
}
@ -2218,9 +2470,9 @@ namespace TJAPlayer3
return;
//int n小節番号plus1 = pChip.n発声位置 / 384;
int n小節番号plus1 = this.actPlayInfo.NowMeasure[nPlayer];
int x = TJAPlayer3.Skin.nScrollFieldX[ nPlayer ] + pChip.nバーからの距離dot.Taiko;
int y = TJAPlayer3.Skin.nScrollFieldY[ nPlayer ];
//int n小節番号plus1 = this.actPlayInfo.NowMeasure[nPlayer];
int x = NoteOriginX[ nPlayer ] + pChip.nバーからの距離dot.Taiko;
int y = NoteOriginY[ nPlayer ];
if( pChip.dbSCROLL_Y != 0.0 )
{
@ -2365,7 +2617,7 @@ namespace TJAPlayer3
{
var showJudgeInfo = false;
if (TJAPlayer3.ConfigIni.nPlayerCount == 1 ? (TJAPlayer3.ConfigIni.bJudgeCountDisplay && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay) : false) showJudgeInfo = true;
if (TJAPlayer3.ConfigIni.nPlayerCount == 1 ? (TJAPlayer3.ConfigIni.bJudgeCountDisplay && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0]) : false) showJudgeInfo = true;
if (TJAPlayer3.ConfigIni.bTokkunMode) showJudgeInfo = true;
if (showJudgeInfo)

View File

@ -20,7 +20,7 @@ namespace TJAPlayer3
// メソッド
public virtual void Start(int nLane, int nPlayer, bool isRoll = false)
{
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return;
EGameType _gt = TJAPlayer3.ConfigIni.nGameType[TJAPlayer3.GetActualPlayer(nPlayer)];
if (TJAPlayer3.Tx.Notes[(int)_gt] != null)

View File

@ -42,11 +42,30 @@ namespace TJAPlayer3
if (Texture == null || Counter == null) return base.On進行描画();
if (!Counter.b停止中)
{
int x;
int y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
x = TJAPlayer3.Skin.Game_Lane_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * Player);
y = TJAPlayer3.Skin.Game_Lane_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * Player);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
x = TJAPlayer3.Skin.Game_Lane_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * Player);
y = TJAPlayer3.Skin.Game_Lane_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * Player);
}
else
{
x = TJAPlayer3.Skin.Game_Lane_X[Player];
y = TJAPlayer3.Skin.Game_Lane_Y[Player];
}
Counter.t進行();
if (Counter.b終了値に達した) Counter.t停止();
int opacity = (((150 - Counter.n現在の値) * 255) / 100);
Texture.Opacity = opacity;
Texture.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Game_Lane_X[Player], TJAPlayer3.Skin.Game_Lane_Y[Player]);
Texture.t2D描画(TJAPlayer3.app.Device, x, y);
}
return base.On進行描画();
}

View File

@ -71,9 +71,7 @@ namespace TJAPlayer3
{
bool _displayed = false;
if (player == 0 && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay)
_displayed = true;
else if (player == 1 && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P)
if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player])
_displayed = true;
if (_displayed == true)

View File

@ -79,6 +79,7 @@ namespace TJAPlayer3
{
if( !base.b活性化してない )
{
if (TJAPlayer3.ConfigIni.nPlayerCount > 2) return base.On進行描画();
for (int f = 0; f < 2; f++)
{
if (this.Rainbow1P[f].IsUsing)

View File

@ -175,7 +175,7 @@ namespace TJAPlayer3
b音声再生[i] = true;
}
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
if (!ctゲージアニメ[i].b進行中)
ctゲージアニメ[i].t開始(0, gaugeValues[i] / 2, 59, TJAPlayer3.Timer);
@ -218,8 +218,8 @@ namespace TJAPlayer3
{
ct全体進行 = new CCounter(0, 50000, 1, TJAPlayer3.Timer);
ctゲージアニメ = new CCounter[2];
for (int i = 0; i < 2; i++)
ctゲージアニメ = new CCounter[5];
for (int i = 0; i < 5; i++)
ctゲージアニメ[i] = new CCounter();
ct虹ゲージアニメ = new CCounter();
@ -249,7 +249,7 @@ namespace TJAPlayer3
}
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
{
CResultCharacter.tMenuResetTimer(CResultCharacter.ECharacterResult.NORMAL);
CResultCharacter.tDisableCounter(CResultCharacter.ECharacterResult.CLEAR);
@ -258,14 +258,14 @@ namespace TJAPlayer3
}
gaugeValues = new int[2];
gaugeValues = new int[5];
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
gaugeValues[i] = (int)TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i];
}
// Replace by max between 2 gauges if 2p
GaugeFactor = Math.Max(gaugeValues[0], gaugeValues[1]) / 2;
GaugeFactor = Math.Max(Math.Max(Math.Max(Math.Max(gaugeValues[0], gaugeValues[1]), gaugeValues[2]), gaugeValues[3]), gaugeValues[4]) / 2;
MountainAppearValue = 10275 + (66 * GaugeFactor);
@ -298,7 +298,7 @@ namespace TJAPlayer3
ct全体進行.t進行();
for (int i = 0; i < 2; i++)
for (int i = 0; i < 5; i++)
ctゲージアニメ[i].t進行();
ctEndAnime.t進行();
@ -315,6 +315,28 @@ namespace TJAPlayer3
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Tower)
{
int[] namePlate_x = new int[5];
int[] namePlate_y = new int[5];
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
namePlate_x[i] = TJAPlayer3.Skin.Result_NamePlate_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * i);
namePlate_y[i] = TJAPlayer3.Skin.Result_NamePlate_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * i);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
namePlate_x[i] = TJAPlayer3.Skin.Result_NamePlate_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * i);
namePlate_y[i] = TJAPlayer3.Skin.Result_NamePlate_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * i);
}
else
{
namePlate_x[i] = TJAPlayer3.Skin.Result_NamePlate_X[i];
namePlate_y[i] = TJAPlayer3.Skin.Result_NamePlate_Y[i];
}
}
#region [ Ensou result contents ]
int AnimeCount = 3000 + GaugeFactor * 59;
@ -330,7 +352,7 @@ namespace TJAPlayer3
if (TJAPlayer3.ConfigIni.bAIBattleMode && i == 1) break;
// 1 if right, 0 if left
int shiftPos = (i == 1 || is2PSide) ? 1 : 0;
int shiftPos = (i == 1 || is2PSide) ? 1 : i;
int pos = i;
if (is2PSide)
pos = 1;
@ -338,15 +360,62 @@ namespace TJAPlayer3
#region [General plate animations]
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
if (shiftPos == 0)
TJAPlayer3.Tx.Result_Panel.t2D描画(TJAPlayer3.app.Device, 0, 0);
else
TJAPlayer3.Tx.Result_Panel_2P.t2D描画(TJAPlayer3.app.Device, 0, 0);
}
else
{
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
TJAPlayer3.Tx.Result_Panel_5P[i].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_UIMove_5P[0] * i, 0);
}
else
{
TJAPlayer3.Tx.Result_Panel_4P[i].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_UIMove_4P[0] * i, 0);
}
}
TJAPlayer3.Tx.Result_Diff_Bar.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_DifficultyBar_X[pos], TJAPlayer3.Skin.Result_DifficultyBar_Y[pos],
//if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
int bar_x;
int bar_y;
int gauge_base_x;
int gauge_base_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].vc拡大縮小倍率.X = 0.5f;
bar_x = TJAPlayer3.Skin.Result_DifficultyBar_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
bar_y = TJAPlayer3.Skin.Result_DifficultyBar_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
gauge_base_x = TJAPlayer3.Skin.Result_Gauge_Base_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
gauge_base_y = TJAPlayer3.Skin.Result_Gauge_Base_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].vc拡大縮小倍率.X = 0.5f;
bar_x = TJAPlayer3.Skin.Result_DifficultyBar_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
bar_y = TJAPlayer3.Skin.Result_DifficultyBar_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
gauge_base_x = TJAPlayer3.Skin.Result_Gauge_Base_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
gauge_base_y = TJAPlayer3.Skin.Result_Gauge_Base_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
}
else
{
TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].vc拡大縮小倍率.X = 1.0f;
bar_x = TJAPlayer3.Skin.Result_DifficultyBar_X[pos];
bar_y = TJAPlayer3.Skin.Result_DifficultyBar_Y[pos];
gauge_base_x = TJAPlayer3.Skin.Result_Gauge_Base_X[pos];
gauge_base_y = TJAPlayer3.Skin.Result_Gauge_Base_Y[pos];
}
TJAPlayer3.Tx.Result_Diff_Bar.t2D描画(TJAPlayer3.app.Device, bar_x, bar_y,
new RectangleF(0, TJAPlayer3.stage選曲.n確定された曲の難易度[i] * TJAPlayer3.Skin.Result_DifficultyBar_Size[1], TJAPlayer3.Skin.Result_DifficultyBar_Size[0], TJAPlayer3.Skin.Result_DifficultyBar_Size[1]));
TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Gauge_Base_X[pos], TJAPlayer3.Skin.Result_Gauge_Base_Y[pos]);
TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].t2D描画(TJAPlayer3.app.Device, gauge_base_x, gauge_base_y);
TJAPlayer3.Tx.Result_Gauge_Base[shiftPos].vc拡大縮小倍率.X = 1.0f;
}
if (ct全体進行.n現在の値 >= 2000)
{
@ -366,15 +435,66 @@ namespace TJAPlayer3
ctゲージアニメ[i].n現在の値 = (int)ctゲージアニメ[i].n終了値;
}
TJAPlayer3.Tx.Result_Gauge[shiftPos].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Gauge_X[pos], TJAPlayer3.Skin.Result_Gauge_Y[pos],
new RectangleF(TJAPlayer3.Skin.Result_Gauge_Rect[0], TJAPlayer3.Skin.Result_Gauge_Rect[1], (TJAPlayer3.Skin.Result_Gauge_Rect[2] / 50.0f) * ctゲージアニメ[i].n現在の値, TJAPlayer3.Skin.Result_Gauge_Rect[3]));
{
int gauge_x;
int gauge_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 0.5f;
gauge_x = TJAPlayer3.Skin.Result_Gauge_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
gauge_y = TJAPlayer3.Skin.Result_Gauge_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 0.5f;
gauge_x = TJAPlayer3.Skin.Result_Gauge_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
gauge_y = TJAPlayer3.Skin.Result_Gauge_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
}
else
{
TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 1.0f;
gauge_x = TJAPlayer3.Skin.Result_Gauge_X[pos];
gauge_y = TJAPlayer3.Skin.Result_Gauge_Y[pos];
}
TJAPlayer3.Tx.Result_Gauge[shiftPos].t2D描画(TJAPlayer3.app.Device, gauge_x, gauge_y,
new RectangleF(TJAPlayer3.Skin.Result_Gauge_Rect[0], TJAPlayer3.Skin.Result_Gauge_Rect[1], (TJAPlayer3.Skin.Result_Gauge_Rect[2] / 50.0f) * ctゲージアニメ[i].n現在の値, TJAPlayer3.Skin.Result_Gauge_Rect[3]));
TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 1.0f;
}
// Modify to array for each players using i
int soultext_width = TJAPlayer3.Tx.Result_Soul_Text.szテクスチャサイズ.Width / 3;
int soultext_height = TJAPlayer3.Tx.Result_Soul_Text.szテクスチャサイズ.Height;
int soulText_x;
int soulText_y;
int soulFire_x;
int soulFire_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
soulText_x = TJAPlayer3.Skin.Result_Soul_Text_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
soulText_y = TJAPlayer3.Skin.Result_Soul_Text_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
soulFire_x = TJAPlayer3.Skin.Result_Soul_Fire_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
soulFire_y = TJAPlayer3.Skin.Result_Soul_Fire_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].vc拡大縮小倍率.X = 0.5f;
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
soulText_x = TJAPlayer3.Skin.Result_Soul_Text_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
soulText_y = TJAPlayer3.Skin.Result_Soul_Text_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
soulFire_x = TJAPlayer3.Skin.Result_Soul_Fire_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
soulFire_y = TJAPlayer3.Skin.Result_Soul_Fire_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].vc拡大縮小倍率.X = 0.5f;
}
else
{
soulText_x = TJAPlayer3.Skin.Result_Soul_Text_X[pos];
soulText_y = TJAPlayer3.Skin.Result_Soul_Text_Y[pos];
soulFire_x = TJAPlayer3.Skin.Result_Soul_Fire_X[pos];
soulFire_y = TJAPlayer3.Skin.Result_Soul_Fire_Y[pos];
TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].vc拡大縮小倍率.X = 1.0f;
}
if (ctゲージアニメ[i].b終了値に達した)
{
@ -402,35 +522,79 @@ namespace TJAPlayer3
ct虹ゲージアニメ.t進行Loop();
ctSoul.t進行Loop();
TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Gauge_Rainbow_X[pos], TJAPlayer3.Skin.Result_Gauge_Rainbow_Y[pos]);
int rainbow_x;
int rainbow_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
rainbow_x = TJAPlayer3.Skin.Result_Gauge_Rainbow_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
rainbow_y = TJAPlayer3.Skin.Result_Gauge_Rainbow_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].vc拡大縮小倍率.X = 0.5f;
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
rainbow_x = TJAPlayer3.Skin.Result_Gauge_Rainbow_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
rainbow_y = TJAPlayer3.Skin.Result_Gauge_Rainbow_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].vc拡大縮小倍率.X = 0.5f;
}
else
{
rainbow_x = TJAPlayer3.Skin.Result_Gauge_Rainbow_X[pos];
rainbow_y = TJAPlayer3.Skin.Result_Gauge_Rainbow_Y[pos];
TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].vc拡大縮小倍率.X = 1.0f;
}
TJAPlayer3.Tx.Result_Rainbow[ct虹ゲージアニメ.n現在の値].t2D描画(TJAPlayer3.app.Device, rainbow_x, rainbow_y);
{
int soulfire_width = TJAPlayer3.Tx.Result_Soul_Fire.szテクスチャサイズ.Width / 8;
int soulfire_height = TJAPlayer3.Tx.Result_Soul_Fire.szテクスチャサイズ.Height;
TJAPlayer3.Tx.Result_Soul_Fire.t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Soul_Fire_X[pos], TJAPlayer3.Skin.Result_Soul_Fire_Y[pos], new Rectangle(soulfire_width * ctSoul.n現在の値, 0, soulfire_width, soulfire_height));
TJAPlayer3.Tx.Result_Soul_Fire.t2D中心基準描画(TJAPlayer3.app.Device, soulFire_x, soulFire_y, new Rectangle(soulfire_width * ctSoul.n現在の値, 0, soulfire_width, soulfire_height));
TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Soul_Text_X[pos], TJAPlayer3.Skin.Result_Soul_Text_Y[pos], new Rectangle(soultext_width * 1, 0, soultext_width, soultext_height));
TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, soulText_x, soulText_y, new Rectangle(soultext_width * 1, 0, soultext_width, soultext_height));
if (ctSoul.n現在の値 % 2 == 0)
TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Soul_Text_X[pos], TJAPlayer3.Skin.Result_Soul_Text_Y[pos], new Rectangle(soultext_width * 2, 0, soultext_width, soultext_height));
TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, soulText_x, soulText_y, new Rectangle(soultext_width * 2, 0, soultext_width, soultext_height));
}
}
}
if (ctゲージアニメ[i].n現在の値 != 50)
{
{
int clearText_x;
int clearText_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
clearText_x = TJAPlayer3.Skin.Result_Gauge_ClearText_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
clearText_y = TJAPlayer3.Skin.Result_Gauge_ClearText_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 0.5f;
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
clearText_x = TJAPlayer3.Skin.Result_Gauge_ClearText_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
clearText_y = TJAPlayer3.Skin.Result_Gauge_ClearText_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 0.5f;
}
else
{
clearText_x = TJAPlayer3.Skin.Result_Gauge_ClearText_X[pos];
clearText_y = TJAPlayer3.Skin.Result_Gauge_ClearText_Y[pos];
TJAPlayer3.Tx.Result_Gauge[shiftPos].vc拡大縮小倍率.X = 1.0f;
}
if (ctゲージアニメ[i].n現在の値 < 40)
{
TJAPlayer3.Tx.Result_Gauge[shiftPos].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Gauge_ClearText_X[pos], TJAPlayer3.Skin.Result_Gauge_ClearText_Y[pos],
TJAPlayer3.Tx.Result_Gauge[shiftPos].t2D描画(TJAPlayer3.app.Device, clearText_x, clearText_y,
new RectangleF(TJAPlayer3.Skin.Result_Gauge_ClearText_Rect[0], TJAPlayer3.Skin.Result_Gauge_ClearText_Rect[1], TJAPlayer3.Skin.Result_Gauge_ClearText_Rect[2], TJAPlayer3.Skin.Result_Gauge_ClearText_Rect[3]));
}
else
{
TJAPlayer3.Tx.Result_Gauge[shiftPos].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Gauge_ClearText_X[pos], TJAPlayer3.Skin.Result_Gauge_ClearText_Y[pos],
TJAPlayer3.Tx.Result_Gauge[shiftPos].t2D描画(TJAPlayer3.app.Device, clearText_x, clearText_y,
new RectangleF(TJAPlayer3.Skin.Result_Gauge_ClearText_Clear_Rect[0], TJAPlayer3.Skin.Result_Gauge_ClearText_Clear_Rect[1], TJAPlayer3.Skin.Result_Gauge_ClearText_Clear_Rect[2], TJAPlayer3.Skin.Result_Gauge_ClearText_Clear_Rect[3]));
}
TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Soul_Text_X[pos], TJAPlayer3.Skin.Result_Soul_Text_Y[pos],
TJAPlayer3.Tx.Result_Soul_Text.t2D中心基準描画(TJAPlayer3.app.Device, soulText_x, soulText_y,
new Rectangle(soultext_width * (ctゲージアニメ[i].n現在の値 <= 30 ? 0 : 1), 0, soultext_width, soultext_height));
}
}
#endregion
}
@ -438,6 +602,7 @@ namespace TJAPlayer3
if (ct全体進行.n現在の値 >= 2000)
{
// Change score kiroku to total scores to have the contents for both players, unbloat it
{
#region [ Separate results display (excluding score) ]
int Interval = 420;
@ -454,7 +619,52 @@ namespace TJAPlayer3
TJAPlayer3.stage演奏ドラム画面.actCombo.n現在のコンボ数.[i]
};
int[][] num_x = {
int[][] num_x;
int[][] num_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
num_x = new int[][] { new int[5], new int[5], new int[5], new int[5], new int[5] };
num_y = new int[][] { new int[5], new int[5], new int[5], new int[5], new int[5] };
num_x[0][pos] = TJAPlayer3.Skin.Result_Perfect_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
num_y[0][pos] = TJAPlayer3.Skin.Result_Perfect_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
num_x[1][pos] = TJAPlayer3.Skin.Result_Good_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
num_y[1][pos] = TJAPlayer3.Skin.Result_Good_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
num_x[2][pos] = TJAPlayer3.Skin.Result_Miss_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
num_y[2][pos] = TJAPlayer3.Skin.Result_Miss_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
num_x[3][pos] = TJAPlayer3.Skin.Result_Roll_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
num_y[3][pos] = TJAPlayer3.Skin.Result_Roll_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
num_x[4][pos] = TJAPlayer3.Skin.Result_MaxCombo_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
num_y[4][pos] = TJAPlayer3.Skin.Result_MaxCombo_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount > 2)
{
num_x = new int[][] { new int[5], new int[5], new int[5], new int[5], new int[5] };
num_y = new int[][] { new int[5], new int[5], new int[5], new int[5], new int[5] };
num_x[0][pos] = TJAPlayer3.Skin.Result_Perfect_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
num_y[0][pos] = TJAPlayer3.Skin.Result_Perfect_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
num_x[1][pos] = TJAPlayer3.Skin.Result_Good_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
num_y[1][pos] = TJAPlayer3.Skin.Result_Good_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
num_x[2][pos] = TJAPlayer3.Skin.Result_Miss_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
num_y[2][pos] = TJAPlayer3.Skin.Result_Miss_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
num_x[3][pos] = TJAPlayer3.Skin.Result_Roll_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
num_y[3][pos] = TJAPlayer3.Skin.Result_Roll_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
num_x[4][pos] = TJAPlayer3.Skin.Result_MaxCombo_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
num_y[4][pos] = TJAPlayer3.Skin.Result_MaxCombo_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
}
else
{
num_x = new int[][] {
TJAPlayer3.Skin.Result_Perfect_X,
TJAPlayer3.Skin.Result_Good_X,
TJAPlayer3.Skin.Result_Miss_X,
@ -462,13 +672,14 @@ namespace TJAPlayer3
TJAPlayer3.Skin.Result_MaxCombo_X
};
int[][] num_y = {
num_y = new int[][] {
TJAPlayer3.Skin.Result_Perfect_Y,
TJAPlayer3.Skin.Result_Good_Y,
TJAPlayer3.Skin.Result_Miss_Y,
TJAPlayer3.Skin.Result_Roll_Y,
TJAPlayer3.Skin.Result_MaxCombo_Y
};
}
for (int k = 0; k < 5; k++)
{
@ -498,6 +709,24 @@ namespace TJAPlayer3
if (ct全体進行.n現在の値 >= AnimeCount + Interval * 4 + 840)
{
int score_x;
int score_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
score_x = TJAPlayer3.Skin.Result_Score_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
score_y = TJAPlayer3.Skin.Result_Score_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
score_x = TJAPlayer3.Skin.Result_Score_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
score_y = TJAPlayer3.Skin.Result_Score_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
}
else
{
score_x = TJAPlayer3.Skin.Result_Score_X[pos];
score_y = TJAPlayer3.Skin.Result_Score_Y[pos];
}
int AnimeCount1 = AnimeCount + Interval * 4 + 840;
TJAPlayer3.Tx.Result_Score_Number.vc拡大縮小倍率.X = ct全体進行.n現在の値 <= AnimeCount1 + 270 ? 1.0f + (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount1) / 1.5f * (Math.PI / 180)) * 0.65f :
@ -505,7 +734,7 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Result_Score_Number.vc拡大縮小倍率.Y = ct全体進行.n現在の値 <= AnimeCount1 + 270 ? 1.0f + (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount1) / 1.5f * (Math.PI / 180)) * 0.65f :
ct全体進行.n現在の値 <= AnimeCount1 + 360 ? 1.0f - (float)Math.Sin((ct全体進行.n現在の値 - AnimeCount1 - 270) * (Math.PI / 180)) * 0.1f : 1.0f;
this.tスコア文字表示(TJAPlayer3.Skin.Result_Score_X[pos], TJAPlayer3.Skin.Result_Score_Y[pos], (int)TJAPlayer3.stage演奏ドラム画面.actScore.Get(E楽器パート.DRUMS, i));// TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nScore.ToString()));
this.tスコア文字表示(score_x, score_y, (int)TJAPlayer3.stage演奏ドラム画面.actScore.Get(E楽器パート.DRUMS, i));// TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nScore.ToString()));
if (!b音声再生[6])
{
@ -516,111 +745,6 @@ namespace TJAPlayer3
#endregion
}
if (ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 1000)
{
#region [Score rank apparition]
int scoreRank_width = TJAPlayer3.Tx.Result_ScoreRankEffect.szテクスチャサイズ.Width / 7;
int scoreRank_height = TJAPlayer3.Tx.Result_ScoreRankEffect.szテクスチャサイズ.Height / 4;
if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 1180)
{
TJAPlayer3.Tx.Result_ScoreRankEffect.Opacity = (int)((ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 1000)) / 180.0f * 255.0f);
TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 910)) / 1.5f * (Math.PI / 180)) * 1.4f;
TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 910)) / 1.5f * (Math.PI / 180)) * 1.4f;
}
else if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 1270)
{
TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.X = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 1180)) * (Math.PI / 180)) * 0.5f;
TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.Y = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 1180)) * (Math.PI / 180)) * 0.5f;
}
else
{
TJAPlayer3.Tx.Result_ScoreRankEffect.Opacity = 255;
TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.X = 1f;
TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.Y = 1f;
}
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage結果.nスコアランク[i] > 0)
{
int CurrentFlash = 0;
int[] FlashTimes = { 1500, 1540, 1580, 1620, 1660, 1700, 1740, 1780 };
if (ctFlash_Icon.n現在の値 >= FlashTimes[0] && ctFlash_Icon.n現在の値 <= FlashTimes[1] || ctFlash_Icon.n現在の値 >= FlashTimes[4] && ctFlash_Icon.n現在の値 <= FlashTimes[5])
CurrentFlash = 1;
else if (ctFlash_Icon.n現在の値 >= FlashTimes[1] && ctFlash_Icon.n現在の値 <= FlashTimes[2] || ctFlash_Icon.n現在の値 >= FlashTimes[5] && ctFlash_Icon.n現在の値 <= FlashTimes[6])
CurrentFlash = 2;
else if (ctFlash_Icon.n現在の値 >= FlashTimes[2] && ctFlash_Icon.n現在の値 <= FlashTimes[3] || ctFlash_Icon.n現在の値 >= FlashTimes[6] && ctFlash_Icon.n現在の値 <= FlashTimes[7])
CurrentFlash = 3;
TJAPlayer3.Tx.Result_ScoreRankEffect.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_ScoreRankEffect_X[pos], TJAPlayer3.Skin.Result_ScoreRankEffect_Y[pos],
new Rectangle((TJAPlayer3.stage結果.nスコアランク[i] - 1) * scoreRank_width, CurrentFlash * scoreRank_height, scoreRank_width, scoreRank_height));
if (!b音声再生[7] && ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 1180)
{
TJAPlayer3.Skin.soundRankIn.t再生する();
b音声再生[7] = true;
}
}
#endregion
}
if (ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 2500)
{
#region [Crown apparition]
int crownEffect_width = TJAPlayer3.Tx.Result_CrownEffect.szテクスチャサイズ.Width / 3;
int crownEffect_height = TJAPlayer3.Tx.Result_CrownEffect.szテクスチャサイズ.Height / 4;
if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 2680)
{
TJAPlayer3.Tx.Result_CrownEffect.Opacity = (int)((ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2500)) / 180.0f * 255.0f);
TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2410)) / 1.5f * (Math.PI / 180)) * 1.4f;
TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2410)) / 1.5f * (Math.PI / 180)) * 1.4f;
}
else if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 2770)
{
TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.X = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2680)) * (Math.PI / 180)) * 0.5f;
TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.Y = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2680)) * (Math.PI / 180)) * 0.5f;
}
else
{
TJAPlayer3.Tx.Result_CrownEffect.Opacity = 255;
TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.X = 1f;
TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.Y = 1f;
}
int ClearType = TJAPlayer3.stage結果.nクリア[i] - 1;
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)(Difficulty.Dan) && ClearType >= 0)
{
int CurrentFlash = 0;
int[] FlashTimes = { 2000, 2040, 2080, 2120, 2160, 2200, 2240, 2280 };
if (ctFlash_Icon.n現在の値 >= FlashTimes[0] && ctFlash_Icon.n現在の値 <= FlashTimes[1] || ctFlash_Icon.n現在の値 >= FlashTimes[4] && ctFlash_Icon.n現在の値 <= FlashTimes[5])
CurrentFlash = 1;
else if (ctFlash_Icon.n現在の値 >= FlashTimes[1] && ctFlash_Icon.n現在の値 <= FlashTimes[2] || ctFlash_Icon.n現在の値 >= FlashTimes[5] && ctFlash_Icon.n現在の値 <= FlashTimes[6])
CurrentFlash = 2;
else if (ctFlash_Icon.n現在の値 >= FlashTimes[2] && ctFlash_Icon.n現在の値 <= FlashTimes[3] || ctFlash_Icon.n現在の値 >= FlashTimes[6] && ctFlash_Icon.n現在の値 <= FlashTimes[7])
CurrentFlash = 3;
TJAPlayer3.Tx.Result_CrownEffect.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_CrownEffect_X[pos], TJAPlayer3.Skin.Result_CrownEffect_Y[pos],
new Rectangle(ClearType * crownEffect_width, CurrentFlash * crownEffect_height, crownEffect_width, crownEffect_height));
if (!b音声再生[8] && ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 2680)
{
TJAPlayer3.Skin.soundCrownIn.t再生する();
b音声再生[8] = true;
}
}
#endregion
}
#endregion
@ -761,8 +885,8 @@ namespace TJAPlayer3
//int chara_x = TJAPlayer3.Skin.Characters_Result_X[_charaId][pos];
//int chara_y = TJAPlayer3.Skin.Characters_Result_Y[_charaId][pos];
int chara_x = TJAPlayer3.Skin.Result_NamePlate_X[pos] + TJAPlayer3.Tx.NamePlateBase.szテクスチャサイズ.Width / 2;
int chara_y = TJAPlayer3.Skin.Result_NamePlate_Y[pos];
int chara_x = namePlate_x[pos] + TJAPlayer3.Tx.NamePlateBase.szテクスチャサイズ.Width / 2;
int chara_y = namePlate_y[pos];
if (CResultCharacter.tIsCounterProcessing(p, CResultCharacter.ECharacterResult.CLEAR))
@ -779,8 +903,8 @@ namespace TJAPlayer3
#region [PuchiChara]
int puchi_x = chara_x + TJAPlayer3.Skin.Adjustments_MenuPuchichara_X[pos];
int puchi_y = chara_y + TJAPlayer3.Skin.Adjustments_MenuPuchichara_Y[pos];
int puchi_x = chara_x + TJAPlayer3.Skin.Adjustments_MenuPuchichara_X[TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? pos : 0];
int puchi_y = chara_y + TJAPlayer3.Skin.Adjustments_MenuPuchichara_Y[TJAPlayer3.ConfigIni.nPlayerCount <= 2 ? pos : 0];
//int ttdiff = 640 - 152;
//int ttps = 640 + ((pos == 1) ? ttdiff + 60 : -ttdiff);
@ -800,7 +924,7 @@ namespace TJAPlayer3
#region [Cherry blossom animation]
if (gaugeValues[p] >= 80.0f)
if (gaugeValues[p] >= 80.0f && TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
TJAPlayer3.Tx.Result_Flower.vc拡大縮小倍率.X = 0.6f * (ct全体進行.n現在の値 <= MountainAppearValue + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - MountainAppearValue) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f);
TJAPlayer3.Tx.Result_Flower.vc拡大縮小倍率.Y = 0.6f * (ct全体進行.n現在の値 <= MountainAppearValue + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - MountainAppearValue) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f);
@ -816,7 +940,7 @@ namespace TJAPlayer3
#region [Cherry blossom Rotating flowers]
if (gaugeValues[p] >= 80.0f)
if (gaugeValues[p] >= 80.0f && TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
float FlowerTime = ctRotate_Flowers.n現在の値;
@ -852,7 +976,7 @@ namespace TJAPlayer3
#region [Panel shines]
if (gaugeValues[p] >= 80.0f)
if (gaugeValues[p] >= 80.0f && TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
int ShineTime = (int)ctShine_Plate.n現在の値;
int Quadrant500 = ShineTime % 500;
@ -889,6 +1013,8 @@ namespace TJAPlayer3
else if (gaugeValues[p] >= 40.0f)
Mood = 1;
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
int speechBuddle_width = TJAPlayer3.Tx.Result_Speech_Bubble[pos].szテクスチャサイズ.Width / 4;
int speechBuddle_height = TJAPlayer3.Tx.Result_Speech_Bubble[pos].szテクスチャサイズ.Height / 3;
@ -896,7 +1022,7 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Result_Speech_Bubble[pos].vc拡大縮小倍率.Y = 0.9f * (ct全体進行.n現在の値 <= MountainAppearValue + AddCount ? 1.3f - (float)Math.Sin((ct全体進行.n現在の値 - MountainAppearValue) / (AddCount / 90) * (Math.PI / 180)) * 0.3f : 1.0f);
TJAPlayer3.Tx.Result_Speech_Bubble[pos].t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Result_Speech_Bubble_X[pos], TJAPlayer3.Skin.Result_Speech_Bubble_Y[pos],
new Rectangle(Mood * speechBuddle_width, RandomText * speechBuddle_height, speechBuddle_width, speechBuddle_height));
}
if (!b音声再生[9])
{
if (gaugeValues[p] >= 80.0f)
@ -917,6 +1043,157 @@ namespace TJAPlayer3
#endregion
}
if (ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 1000)
{
//if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
#region [Score rank apparition]
int scoreRank_width = TJAPlayer3.Tx.Result_ScoreRankEffect.szテクスチャサイズ.Width / 7;
int scoreRank_height = TJAPlayer3.Tx.Result_ScoreRankEffect.szテクスチャサイズ.Height / 4;
if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 1180)
{
TJAPlayer3.Tx.Result_ScoreRankEffect.Opacity = (int)((ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 1000)) / 180.0f * 255.0f);
TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 910)) / 1.5f * (Math.PI / 180)) * 1.4f;
TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 910)) / 1.5f * (Math.PI / 180)) * 1.4f;
}
else if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 1270)
{
TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.X = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 1180)) * (Math.PI / 180)) * 0.5f;
TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.Y = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 1180)) * (Math.PI / 180)) * 0.5f;
}
else
{
TJAPlayer3.Tx.Result_ScoreRankEffect.Opacity = 255;
TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.X = 1f;
TJAPlayer3.Tx.Result_ScoreRankEffect.vc拡大縮小倍率.Y = 1f;
}
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)Difficulty.Dan && TJAPlayer3.stage結果.nスコアランク[p] > 0)
{
int CurrentFlash = 0;
int[] FlashTimes = { 1500, 1540, 1580, 1620, 1660, 1700, 1740, 1780 };
if (ctFlash_Icon.n現在の値 >= FlashTimes[0] && ctFlash_Icon.n現在の値 <= FlashTimes[1] || ctFlash_Icon.n現在の値 >= FlashTimes[4] && ctFlash_Icon.n現在の値 <= FlashTimes[5])
CurrentFlash = 1;
else if (ctFlash_Icon.n現在の値 >= FlashTimes[1] && ctFlash_Icon.n現在の値 <= FlashTimes[2] || ctFlash_Icon.n現在の値 >= FlashTimes[5] && ctFlash_Icon.n現在の値 <= FlashTimes[6])
CurrentFlash = 2;
else if (ctFlash_Icon.n現在の値 >= FlashTimes[2] && ctFlash_Icon.n現在の値 <= FlashTimes[3] || ctFlash_Icon.n現在の値 >= FlashTimes[6] && ctFlash_Icon.n現在の値 <= FlashTimes[7])
CurrentFlash = 3;
int scoreRankEffect_x;
int scoreRankEffect_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
scoreRankEffect_x = TJAPlayer3.Skin.Result_ScoreRankEffect_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
scoreRankEffect_y = TJAPlayer3.Skin.Result_ScoreRankEffect_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
scoreRankEffect_x = TJAPlayer3.Skin.Result_ScoreRankEffect_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
scoreRankEffect_y = TJAPlayer3.Skin.Result_ScoreRankEffect_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
}
else
{
scoreRankEffect_x = TJAPlayer3.Skin.Result_ScoreRankEffect_X[pos];
scoreRankEffect_y = TJAPlayer3.Skin.Result_ScoreRankEffect_Y[pos];
}
TJAPlayer3.Tx.Result_ScoreRankEffect.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, scoreRankEffect_x, scoreRankEffect_y,
new Rectangle((TJAPlayer3.stage結果.nスコアランク[p] - 1) * scoreRank_width, CurrentFlash * scoreRank_height, scoreRank_width, scoreRank_height));
if (!b音声再生[7] && ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 1180)
{
TJAPlayer3.Skin.soundRankIn.t再生する();
b音声再生[7] = true;
}
}
#endregion
}
}
if (ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 2500)
{
//if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
#region [Crown apparition]
int crownEffect_width = TJAPlayer3.Tx.Result_CrownEffect.szテクスチャサイズ.Width / 3;
int crownEffect_height = TJAPlayer3.Tx.Result_CrownEffect.szテクスチャサイズ.Height / 4;
if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 2680)
{
TJAPlayer3.Tx.Result_CrownEffect.Opacity = (int)((ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2500)) / 180.0f * 255.0f);
TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.X = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2410)) / 1.5f * (Math.PI / 180)) * 1.4f;
TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.Y = 1.0f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2410)) / 1.5f * (Math.PI / 180)) * 1.4f;
}
else if (ct全体進行.n現在の値 <= ScoreApparitionTimeStamp + 2770)
{
TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.X = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2680)) * (Math.PI / 180)) * 0.5f;
TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.Y = 0.5f + (float)Math.Sin((float)(ct全体進行.n現在の値 - (ScoreApparitionTimeStamp + 2680)) * (Math.PI / 180)) * 0.5f;
}
else
{
TJAPlayer3.Tx.Result_CrownEffect.Opacity = 255;
TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.X = 1f;
TJAPlayer3.Tx.Result_CrownEffect.vc拡大縮小倍率.Y = 1f;
}
int ClearType = TJAPlayer3.stage結果.nクリア[p] - 1;
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] != (int)(Difficulty.Dan) && ClearType >= 0)
{
int CurrentFlash = 0;
int[] FlashTimes = { 2000, 2040, 2080, 2120, 2160, 2200, 2240, 2280 };
if (ctFlash_Icon.n現在の値 >= FlashTimes[0] && ctFlash_Icon.n現在の値 <= FlashTimes[1] || ctFlash_Icon.n現在の値 >= FlashTimes[4] && ctFlash_Icon.n現在の値 <= FlashTimes[5])
CurrentFlash = 1;
else if (ctFlash_Icon.n現在の値 >= FlashTimes[1] && ctFlash_Icon.n現在の値 <= FlashTimes[2] || ctFlash_Icon.n現在の値 >= FlashTimes[5] && ctFlash_Icon.n現在の値 <= FlashTimes[6])
CurrentFlash = 2;
else if (ctFlash_Icon.n現在の値 >= FlashTimes[2] && ctFlash_Icon.n現在の値 <= FlashTimes[3] || ctFlash_Icon.n現在の値 >= FlashTimes[6] && ctFlash_Icon.n現在の値 <= FlashTimes[7])
CurrentFlash = 3;
int crownEffect_x;
int crownEffect_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
crownEffect_x = TJAPlayer3.Skin.Result_CrownEffect_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
crownEffect_y = TJAPlayer3.Skin.Result_CrownEffect_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
crownEffect_x = TJAPlayer3.Skin.Result_CrownEffect_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
crownEffect_y = TJAPlayer3.Skin.Result_CrownEffect_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
}
else
{
crownEffect_x = TJAPlayer3.Skin.Result_CrownEffect_X[pos];
crownEffect_y = TJAPlayer3.Skin.Result_CrownEffect_Y[pos];
}
TJAPlayer3.Tx.Result_CrownEffect.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, crownEffect_x, crownEffect_y,
new Rectangle(ClearType * crownEffect_width, CurrentFlash * crownEffect_height, crownEffect_width, crownEffect_height));
if (!b音声再生[8] && ct全体進行.n現在の値 >= ScoreApparitionTimeStamp + 2680)
{
TJAPlayer3.Skin.soundCrownIn.t再生する();
b音声再生[8] = true;
}
}
#endregion
}
}
}
#endregion

View File

@ -29,9 +29,9 @@ namespace TJAPlayer3
public STDGBVALUE<int> nScoreRank;
public int n総合ランク値;
public int[] nクリア = { 0, 0 }; //0:未クリア 1:クリア 2:フルコンボ 3:ドンダフルコンボ
public int[] nスコアランク = { 0, 0 }; //0:未取得 1:白粋 2:銅粋 3:銀粋 4:金雅 5:桃雅 6:紫雅 7:虹極
public int[] nHighScore = { 0, 0 };
public int[] nクリア = { 0, 0, 0, 0, 0 }; //0:未クリア 1:クリア 2:フルコンボ 3:ドンダフルコンボ
public int[] nスコアランク = { 0, 0, 0, 0, 0 }; //0:未取得 1:白粋 2:銅粋 3:銀粋 4:金雅 5:桃雅 6:紫雅 7:虹極
public int[] nHighScore = { 0, 0, 0, 0, 0 };
public CDTX.CChip[] r空うちドラムチップ;
public STDGBVALUE<CScoreIni.C演奏記録> st演奏記録;
@ -61,8 +61,8 @@ namespace TJAPlayer3
public bool isAutoDisabled(int player)
{
return ((player == 0 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay)
|| (player == 1 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P && !TJAPlayer3.ConfigIni.bAIBattleMode));
return ((player != 1 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player])
|| (player == 1 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[player] && !TJAPlayer3.ConfigIni.bAIBattleMode));
}
@ -146,15 +146,15 @@ namespace TJAPlayer3
switch (i)
{
case 0:
bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay;
bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0];
break;
case 1:
bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay;
bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0];
break;
case 2:
bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay;
bIsAutoPlay = TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0];
break;
}
this.fPerfect率[i] = bIsAutoPlay ? 0f : ((100f * part.nPerfect数) / ((float)part.n全チップ数));
@ -190,7 +190,7 @@ namespace TJAPlayer3
}
else
{
var sr = (p == 0) ? TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank : TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank2P;
var sr = TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank[p];
for (int i = 0; i < 7; i++)
{
@ -218,7 +218,10 @@ namespace TJAPlayer3
string[] str = {
TJAPlayer3.DTX.strファイル名の絶対パス + currentSaveFile.ToString() + "P.score.ini",
TJAPlayer3.DTX.strファイル名の絶対パス + secondSaveFile.ToString() + "P.score.ini"
TJAPlayer3.DTX.strファイル名の絶対パス + secondSaveFile.ToString() + "P.score.ini",
TJAPlayer3.DTX.strファイル名の絶対パス + 3.ToString() + "P.score.ini",
TJAPlayer3.DTX.strファイル名の絶対パス + 4.ToString() + "P.score.ini",
TJAPlayer3.DTX.strファイル名の絶対パス + 5.ToString() + "P.score.ini"
};
#region [Transfer legacy file format to new file format (P1)]
@ -238,7 +241,10 @@ namespace TJAPlayer3
CScoreIni[] ini = {
new CScoreIni(str[0]),
new CScoreIni(str[1])
new CScoreIni(str[1]),
new CScoreIni(str[2]),
new CScoreIni(str[3]),
new CScoreIni(str[4])
};
bool[] b今までにフルコンボしたことがある = new bool[] { false, false, false };
@ -386,7 +392,7 @@ namespace TJAPlayer3
// this.st演奏記録[0].nクリア[0] = Math.Max(ini[0].stセクション[0].nクリア[0], clearValue);
// Unlock dan grade
if (clearValue > 0 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay)
if (clearValue > 0 && !TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0])
{
this.newGradeGranted = TJAPlayer3.NamePlateConfig.tUpdateDanTitle(TJAPlayer3.stage選曲.r確定された曲.strタイトル.Substring(0, 2),
clearValue % 2 == 0,
@ -441,7 +447,7 @@ namespace TJAPlayer3
Discord.UpdatePresence(TJAPlayer3.ConfigIni.SendDiscordPlayingInformation ? TJAPlayer3.stage選曲.r確定された曲.strタイトル
+ Discord.DiffToString(TJAPlayer3.stage選曲.n確定された曲の難易度[0])
: "",
Properties.Discord.Stage_Result + (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay == true ? " (" + Properties.Discord.Info_IsAuto + ")" : ""),
Properties.Discord.Stage_Result + (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0] == true ? " (" + Properties.Discord.Info_IsAuto + ")" : ""),
TJAPlayer3.StartupTime);
@ -449,6 +455,9 @@ namespace TJAPlayer3
this.nEarnedMedalsCount[0] = 0;
this.nEarnedMedalsCount[1] = 0;
this.nEarnedMedalsCount[2] = 0;
this.nEarnedMedalsCount[3] = 0;
this.nEarnedMedalsCount[4] = 0;
// Medals
@ -463,7 +472,10 @@ namespace TJAPlayer3
float[] modMultipliers =
{
TJAPlayer3.stage選曲.actPlayOption.tGetModMultiplier(CActPlayOption.EBalancingType.COINS, false, 0),
TJAPlayer3.stage選曲.actPlayOption.tGetModMultiplier(CActPlayOption.EBalancingType.COINS, false, 1)
TJAPlayer3.stage選曲.actPlayOption.tGetModMultiplier(CActPlayOption.EBalancingType.COINS, false, 1),
TJAPlayer3.stage選曲.actPlayOption.tGetModMultiplier(CActPlayOption.EBalancingType.COINS, false, 2),
TJAPlayer3.stage選曲.actPlayOption.tGetModMultiplier(CActPlayOption.EBalancingType.COINS, false, 3),
TJAPlayer3.stage選曲.actPlayOption.tGetModMultiplier(CActPlayOption.EBalancingType.COINS, false, 4)
};
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower)
@ -594,11 +606,7 @@ namespace TJAPlayer3
for (int j = 1; j < 8; j++)
{
if (i == 0)
if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(i) >= TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank[j - 1])
scoreRankModifier = srModifiers[j] * diffModifier;
else
if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(i) >= TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank2P[j - 1])
if (TJAPlayer3.stage演奏ドラム画面.actScore.GetScore(i) >= TJAPlayer3.stage演奏ドラム画面.ScoreRank.ScoreRank[i][j - 1])
scoreRankModifier = srModifiers[j] * diffModifier;
}
@ -622,12 +630,13 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
this.nEarnedMedalsCount[i] += Math.Min(10, TJAPlayer3.stage演奏ドラム画面.CChartScore[i].nADLIB);
if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[i])
this.nEarnedMedalsCount[i] = 0;
if ((TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[i] || TJAPlayer3.ConfigIni.bAIBattleMode) && i == 1)
this.nEarnedMedalsCount[i] = 0;
}
if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay)
this.nEarnedMedalsCount[0] = 0;
if (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode)
this.nEarnedMedalsCount[1] = 0;
TJAPlayer3.NamePlateConfig.tEarnCoins(this.nEarnedMedalsCount);
@ -635,7 +644,22 @@ namespace TJAPlayer3
#region [Modals preprocessing]
mqModals = new ModalQueue((TJAPlayer3.ConfigIni.nPlayerCount > 1) ? Modal.EModalFormat.Half : Modal.EModalFormat.Full);
if (TJAPlayer3.ConfigIni.nPlayerCount == 1)
{
mqModals = new ModalQueue(Modal.EModalFormat.Full);
}
else if(TJAPlayer3.ConfigIni.nPlayerCount == 2)
{
mqModals = new ModalQueue(Modal.EModalFormat.Half);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 3 || TJAPlayer3.ConfigIni.nPlayerCount == 4)
{
mqModals = new ModalQueue(Modal.EModalFormat.Half_4P);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
mqModals = new ModalQueue(Modal.EModalFormat.Half_5P);
}
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
@ -648,7 +672,7 @@ namespace TJAPlayer3
i);
}
displayedModals = new Modal[] { null, null };
displayedModals = new Modal[] { null, null, null, null, null };
#endregion
@ -891,6 +915,8 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Result_Background[1].t2D描画(TJAPlayer3.app.Device, 0, 0);
}
else
{
if (TJAPlayer3.ConfigIni.nPlayerCount <= 2)
{
gaugeAnimFactors = (this.actParameterPanel.ct全体進行.n現在の値 - (int)MountainAppearValue) * 3;
@ -903,13 +929,38 @@ namespace TJAPlayer3
int height2 = TJAPlayer3.Tx.Result_Background[2 * i].szテクスチャサイズ.Height;
TJAPlayer3.Tx.Result_Background[2 * i].t2D描画(TJAPlayer3.app.Device, width2 * i, 0, new Rectangle(width2 * i, 0, width2, height2));
if (TJAPlayer3.stage演奏ドラム画面.actGauge.db現在のゲージ値[i] >= 80.0f)
if (bClear[i])
{
TJAPlayer3.Tx.Result_Background[1].Opacity = gaugeAnimFactors;
TJAPlayer3.Tx.Result_Background[1].t2D描画(TJAPlayer3.app.Device, width1 * i, 0, new Rectangle(width1 * i, 0, width1, height1));
}
}
}
else
{
CTexture[] texs = new CTexture[5] {
TJAPlayer3.Tx.Result_Background[0],
TJAPlayer3.Tx.Result_Background[2],
TJAPlayer3.Tx.Result_Background[3],
TJAPlayer3.Tx.Result_Background[4],
TJAPlayer3.Tx.Result_Background[5]
};
int count = Math.Max(TJAPlayer3.ConfigIni.nPlayerCount, 4);
for (int i = 0; i < count; i++)
{
if (bClear[i])
{
gaugeAnimFactors = (this.actParameterPanel.ct全体進行.n現在の値 - (int)MountainAppearValue) * 3;
TJAPlayer3.Tx.Result_Background[1].Opacity = gaugeAnimFactors;
}
int width = texs[i].szテクスチャサイズ.Width / count;
texs[i].t2D描画(TJAPlayer3.app.Device, width * i, 0, new RectangleF(width * i, 0, width, texs[i].szテクスチャサイズ.Height));
if (bClear[i])
TJAPlayer3.Tx.Result_Background[1].t2D描画(TJAPlayer3.app.Device, width * i, 0, new RectangleF(width * i, 0, width, texs[i].szテクスチャサイズ.Height));
}
}
}
#endregion
@ -1384,11 +1435,38 @@ namespace TJAPlayer3
if (TJAPlayer3.P1IsBlue() && TJAPlayer3.stage選曲.n確定された曲の難易度[0] < (int)Difficulty.Tower)
pos = 1;
TJAPlayer3.NamePlate.tNamePlateDraw(TJAPlayer3.Skin.Result_NamePlate_X[pos], TJAPlayer3.Skin.Result_NamePlate_Y[pos], i);
int namePlate_x;
int namePlate_y;
int modIcons_x;
int modIcons_y;
if (TJAPlayer3.ConfigIni.nPlayerCount == 5)
{
namePlate_x = TJAPlayer3.Skin.Result_NamePlate_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
namePlate_y = TJAPlayer3.Skin.Result_NamePlate_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
modIcons_x = TJAPlayer3.Skin.Result_ModIcons_5P[0] + (TJAPlayer3.Skin.Result_UIMove_5P[0] * pos);
modIcons_y = TJAPlayer3.Skin.Result_ModIcons_5P[1] + (TJAPlayer3.Skin.Result_UIMove_5P[1] * pos);
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 4 || TJAPlayer3.ConfigIni.nPlayerCount == 3)
{
namePlate_x = TJAPlayer3.Skin.Result_NamePlate_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
namePlate_y = TJAPlayer3.Skin.Result_NamePlate_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
modIcons_x = TJAPlayer3.Skin.Result_ModIcons_4P[0] + (TJAPlayer3.Skin.Result_UIMove_4P[0] * pos);
modIcons_y = TJAPlayer3.Skin.Result_ModIcons_4P[1] + (TJAPlayer3.Skin.Result_UIMove_4P[1] * pos);
}
else
{
namePlate_x = TJAPlayer3.Skin.Result_NamePlate_X[pos];
namePlate_y = TJAPlayer3.Skin.Result_NamePlate_Y[pos];
modIcons_x = TJAPlayer3.Skin.Result_ModIcons_X[pos];
modIcons_y = TJAPlayer3.Skin.Result_ModIcons_Y[pos];
}
TJAPlayer3.NamePlate.tNamePlateDraw(namePlate_x, namePlate_y, i);
#region Mods
ModIcons.tDisplayModsMenu(TJAPlayer3.Skin.Result_ModIcons_X[pos], TJAPlayer3.Skin.Result_ModIcons_Y[pos], i);
ModIcons.tDisplayModsMenu(modIcons_x, modIcons_y, i);
#endregion
}
@ -1492,7 +1570,7 @@ namespace TJAPlayer3
displayedModals[0] = mqModals.tPopModal(0);
displayedModals[0]?.tPlayModalSfx();
}
else if (TJAPlayer3.ConfigIni.nPlayerCount == 1 || mqModals.tIsQueueEmpty(1))
else if (TJAPlayer3.ConfigIni.nPlayerCount == 1 || mqModals.tAreBothQueuesEmpty())
{
#region [ Return to song select screen ]
@ -1528,6 +1606,45 @@ namespace TJAPlayer3
displayedModals[1]?.tPlayModalSfx();
}
}
else if ((TJAPlayer3.ConfigIni.nPlayerCount > 2 && (
TJAPlayer3.Pad.b押されたDGB(Eパッド.LRed3P)
|| TJAPlayer3.Pad.b押されたDGB(Eパッド.RRed3P)
)))
{
if (!mqModals.tIsQueueEmpty(2) && this.actParameterPanel.ct全体進行.n現在の値 >= this.actParameterPanel.MountainAppearValue)
{
TJAPlayer3.Skin.sound決定音.t再生する();
displayedModals[2] = mqModals.tPopModal(2);
displayedModals[2]?.tPlayModalSfx();
}
}
else if ((TJAPlayer3.ConfigIni.nPlayerCount > 3 && (
TJAPlayer3.Pad.b押されたDGB(Eパッド.LRed4P)
|| TJAPlayer3.Pad.b押されたDGB(Eパッド.RRed4P)
)))
{
if (!mqModals.tIsQueueEmpty(3) && this.actParameterPanel.ct全体進行.n現在の値 >= this.actParameterPanel.MountainAppearValue)
{
TJAPlayer3.Skin.sound決定音.t再生する();
displayedModals[3] = mqModals.tPopModal(3);
displayedModals[3]?.tPlayModalSfx();
}
}
else if ((TJAPlayer3.ConfigIni.nPlayerCount > 4 && (
TJAPlayer3.Pad.b押されたDGB(Eパッド.LRed5P)
|| TJAPlayer3.Pad.b押されたDGB(Eパッド.RRed5P)
)))
{
if (!mqModals.tIsQueueEmpty(4) && this.actParameterPanel.ct全体進行.n現在の値 >= this.actParameterPanel.MountainAppearValue)
{
TJAPlayer3.Skin.sound決定音.t再生する();
displayedModals[4] = mqModals.tPopModal(4);
displayedModals[4]?.tPlayModalSfx();
}
}
if (TJAPlayer3.Input管理.Keyboard.bキーが押されている((int)SlimDXKeys.Key.LeftArrow) ||
@ -1707,8 +1824,8 @@ namespace TJAPlayer3
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
if ((i == 0 && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay)
|| (i == 1 && (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay2P || TJAPlayer3.ConfigIni.bAIBattleMode)))
if ((i != 1 && TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[i])
|| (i == 1 && (TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[i] || TJAPlayer3.ConfigIni.bAIBattleMode)))
continue;
int actualPlayer = TJAPlayer3.GetActualPlayer(i);
@ -1758,7 +1875,7 @@ namespace TJAPlayer3
int actualPlayer = TJAPlayer3.SaveFile;
if (!TJAPlayer3.ConfigIni.b太鼓パートAutoPlay)
if (!TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0])
{
cスコア.GPInfo[actualPlayer].nClear[0] = Math.Max(cスコア.GPInfo[actualPlayer].nClear[0], clearValue);
@ -1779,7 +1896,7 @@ namespace TJAPlayer3
int tmpClear = GetTowerScoreRank();
if (!TJAPlayer3.ConfigIni.b太鼓パートAutoPlay)
if (!TJAPlayer3.ConfigIni.b太鼓パートAutoPlay[0])
{
cスコア.GPInfo[actualPlayer].nClear[0] = Math.Max(cスコア.GPInfo[actualPlayer].nClear[0], tmpClear);
cスコア.GPInfo[actualPlayer].nScoreRank[0] = Math.Max(cスコア.GPInfo[actualPlayer].nScoreRank[0], CFloorManagement.LastRegisteredFloor);
@ -1851,7 +1968,7 @@ namespace TJAPlayer3
}
else
{
return new bool[] { actParameterPanel.gaugeValues[0] >= 80, actParameterPanel.gaugeValues[1] >= 80 };
return new bool[] { actParameterPanel.gaugeValues[0] >= 80, actParameterPanel.gaugeValues[1] >= 80, actParameterPanel.gaugeValues[2] >= 80, actParameterPanel.gaugeValues[3] >= 80, actParameterPanel.gaugeValues[4] >= 80 };
}
}
}
@ -1929,7 +2046,7 @@ namespace TJAPlayer3
private Modal[] displayedModals;
// Coins information
private int[] nEarnedMedalsCount = { 0, 0 };
private int[] nEarnedMedalsCount = { 0, 0, 0, 0, 0 };
#region [ #24609 pngで保存する ] // #24609 2011.3.14 yyagi; to save result screen in case BestRank or HiSkill.
/// <summary>

View File

@ -13,7 +13,7 @@ namespace TJAPlayer3
{
public void RefleshSkin()
{
for (int player = 0; player < 2; player++)
for (int player = 0; player < 5; player++)
{
this.pfName[player]?.Dispose();
@ -52,7 +52,7 @@ namespace TJAPlayer3
{
RefleshSkin();
for (int player = 0; player < 2; player++)
for (int player = 0; player < 5; player++)
{
if (TJAPlayer3.NamePlateConfig.data.DanType[player] < 0) TJAPlayer3.NamePlateConfig.data.DanType[player] = 0;
else if (TJAPlayer3.NamePlateConfig.data.DanType[player] > 2) TJAPlayer3.NamePlateConfig.data.DanType[player] = 2;
@ -75,6 +75,15 @@ namespace TJAPlayer3
}
public void tNamePlateDisplayNamePlate_Extension(int x, int y, int item)
{
int namePlateBaseX = TJAPlayer3.Tx.NamePlate_Extension.szテクスチャサイズ.Width;
int namePlateBaseY = TJAPlayer3.Tx.NamePlate_Extension.szテクスチャサイズ.Height / 12;
TJAPlayer3.Tx.NamePlate_Extension?.t2D描画(TJAPlayer3.app.Device, x, y, new RectangleF(0, item * namePlateBaseY, namePlateBaseX, namePlateBaseY));
}
public void tNamePlateRefreshTitles(int player)
{
int actualPlayer = TJAPlayer3.GetActualPlayer(player);
@ -149,7 +158,16 @@ namespace TJAPlayer3
// Player number
if (TJAPlayer3.PlayerSide == 0 || TJAPlayer3.ConfigIni.nPlayerCount > 1)
{
if (basePlayer < 2)
{
tNamePlateDisplayNamePlateBase(x, y, basePlayer == 1 ? 2 : 0);
}
else
{
tNamePlateDisplayNamePlate_Extension(x, y, basePlayer - 2);
}
}
else
tNamePlateDisplayNamePlateBase(x, y, 1);
@ -376,15 +394,15 @@ namespace TJAPlayer3
}
private CPrivateFastFont[] pfName = new CPrivateFastFont[2];
private CPrivateFastFont[] pfName = new CPrivateFastFont[5];
private CPrivateFastFont pfTitle;
private CPrivateFastFont pfdan;
private CCounter ctNamePlateEffect;
public CCounter ctAnimatedNamePlateTitle;
private CTexture[] txName = new CTexture[2];
private CTexture[] txTitle = new CTexture[2];
private CTexture[] txdan = new CTexture[2];
private CTexture[] txName = new CTexture[5];
private CTexture[] txTitle = new CTexture[5];
private CTexture[] txdan = new CTexture[5];
}
}

View File

@ -3,7 +3,7 @@ local p1IsBlue = false
local fps = 0
local deltaTime = 0
local isClear = { false, false }
local isClear = { false, false, false, false, false }
local towerNightNum = 0
local battleState = 0

View File

@ -7,6 +7,12 @@ Game_Chara_X=0,0
;キャラのY座標。(1P,2P)
Game_Chara_Y=0,537
Game_Chara_4P=165,68
Game_Chara_5P=165,40
;キャラのX座標。(1P,2P)
Game_Chara_X_AI=472,602
@ -37,6 +43,12 @@ Game_Chara_Balloon_X=0,0
;ふうせん連打時のキャラ画像X座標。(1P,2P)
Game_Chara_Balloon_Y=0,297
Game_Chara_Balloon_4P=0,-176
Game_Chara_Balloon_5P=0,-168
;ふうせん連打アクション時に使用するタイマーの更新間隔。(ms)
Game_Chara_Balloon_Timer=16

View File

@ -0,0 +1,102 @@
;Included file
;あとは通常通り設定できます
; TJAPlayer3-Develop-ReWriteで追加したSkinConfig
Game_ScrollField_4P=349,46
Game_ScrollField_5P=349,27
Game_SENotes_Offset_4P=-2,100
Game_SENotes_Offset_5P=-2,94
Game_Judge_4P=364,32
Game_Judge_5P=364,24
Game_UIMove_4P=0,176
Game_UIMove_5P=0,144
Game_ScoreRank_4P=87,88
Game_ScoreRank_5P=87,80
Game_CourseSymbol_4P=-4,56
Game_CourseSymbol_5P=-4,48
Game_Score_4P=20,54
Game_Score_5P=20,46
Game_Score_Add_4P=20,94
Game_Score_Add_5P=20,86
Game_Score_AddBonus_4P=20,134
Game_Score_AddBonus_5P=20,126
Game_Taiko_Background_4P=0,8
Game_Taiko_Background_5P=0,0
Game_Taiko_ModIcons_4P=80,60
Game_Taiko_ModIcons_5P=80,50
Game_Taiko_NamePlate_4P=-55,121
Game_Taiko_NamePlate_5P=-55,97
Game_Taiko_PlayerNumber_4P=4,57
Game_Taiko_PlayerNumber_5P=4,49
Game_Taiko_4P=205,7
Game_Taiko_5P=205,-1
Game_Taiko_Combo_4P=267,73
Game_Taiko_Combo_5P=267,65
Game_Taiko_Combo_Ex_4P=267,75
Game_Taiko_Combo_Ex_5P=267,67
Game_Taiko_Combo_Ex4_4P=267,70
Game_Taiko_Combo_Ex4_5P=267,62
Game_Taiko_Combo_Text_4P=268,99
Game_Taiko_Combo_Text_5P=268,91
Game_Taiko_Frame_4P=333,8
Game_Taiko_Frame_5P=333,0
Game_Gauge_4P=492,-4
Game_Gauge_5P=492,-12
Gauge_Soul_4P=1184,-12
Gauge_Soul_5P=1184,-20
Gauge_Soul_Fire_4P=1112,-85
Gauge_Soul_Fire_5P=1112,-93
Game_Balloon_Balloon_4P=382,-61
Game_Balloon_Balloon_5P=382,-53
Game_Balloon_Balloon_Frame_4P=382,-12
Game_Balloon_Balloon_Frame_5P=382,-4
Game_Balloon_Balloon_Number_4P=423,95
Game_Balloon_Balloon_Number_5P=423,87
Game_Effects_Hit_Explosion_4P=284,-20
Game_Effects_Hit_Explosion_5P=284,-39
Game_Effect_Fire_4P=240,-75
Game_Effect_Fire_5P=240,-94
Game_Lane_4P=333,46
Game_Lane_5P=333,39
Game_PuchiChara_4P=230,162
Game_PuchiChara_5P=230,150

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -49,6 +49,7 @@ function clearOut(player)
end
function init()
if playerCount <= 2 then
func:AddGraph("1P_Up_1st.png")
func:AddGraph("2P_Up_1st.png")
func:AddGraph("1P_Up_2nd.png")
@ -59,9 +60,13 @@ function init()
func:AddGraph("Clear_Up_1st.png")
func:AddGraph("Clear_Up_2nd.png")
func:AddGraph("Clear_Up_3rd.png")
else
func:AddGraph("4PBG.png")
end
end
function update()
if playerCount <= 2 then
bgScrollX = bgScrollX - (59 * deltaTime)
bgScrollY = bgScrollY + (14 * deltaTime)
bg3rdAnime = bg3rdAnime + (300 * deltaTime)
@ -104,9 +109,11 @@ function update()
end
end
end
end
function draw()
if playerCount <= 2 then
for player = 0, playerCount - 1 do
func:SetOpacity(bgClearFade[player + 1], "Clear_Up_1st.png")
@ -125,4 +132,7 @@ function draw()
drawUp3rd(bgScrollX + (loopWidth * i), y, player)
end
end
else
func:DrawGraph(0, 0, "4PBG.png");
end
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 622 B

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

@ -11,12 +11,12 @@
--func:SetColor(r, g, b, "filename")
local y = { 210, 386 }
local y = { 210, 386, 0, 0, 0 }
local sideTextureCount = 4
local animeCounter = { 0, 0 }
local nowFrame = { 0, 0 }
local animeCounter = { 0, 0, 0, 0, 0 }
local nowFrame = { 0, 0, 0, 0, 0 }
@ -32,11 +32,19 @@ function clearOut(player)
end
function playEndAnime(player)
animeCounter = { 0, 0 }
animeCounter = { 0, 0, 0, 0, 0 }
end
function init()
if playerCount <= 2 then
y = { 210, 386, 0, 0, 0 }
elseif playerCount == 5 then
y = { 36, 170, 314, 458, 602 }
else
y = { 64, 240, 416, 592, 0 }
end
func:AddGraph("Clear_Text.png")
func:AddGraph("Clear_Text_Effect.png")

View File

@ -10,11 +10,11 @@
--func:SetScale(xscale, yscale, "filename")
--func:SetColor(r, g, b, "filename")
local x = { 505, 505 }
local y = { 145, 321 }
local x = { 505, 505, 505, 505, 505 }
local y = { 145, 321, 0, 0, 0 }
local animeCounter = { 0, 0 }
local nowFrame = { 0, 0 }
local animeCounter = { 0, 0, 0, 0, 0 }
local nowFrame = { 0, 0, 0, 0, 0 }
local textureCount = 25
@ -27,11 +27,20 @@ function clearOut(player)
end
function playEndAnime(player)
animeCounter = { 0, 0 }
nowFrame = { 0, 0 }
animeCounter = { 0, 0, 0, 0, 0 }
nowFrame = { 0, 0, 0, 0, 0 }
end
function init()
if playerCount <= 2 then
y = { 145, 321, 0, 0, 0 }
elseif playerCount == 5 then
y = { -23, 121, 265, 409, 553 }
else
y = { -1, 175, 351, 527, 0 }
end
for i = 0 , textureCount do
func:AddGraph(tostring(i)..".png")
end

View File

@ -10,11 +10,11 @@
--func:SetScale(xscale, yscale, "filename")
--func:SetColor(r, g, b, "filename")
local x = { 332, 332 }
local y = { 192, 368 }
local x = { 332, 332, 332, 332, 332 }
local y = { 192, 368, 0, 0, 0 }
local animeCounter = { 0, 0 }
local nowFrame = { 0, 0 }
local animeCounter = { 0, 0, 0, 0, 0 }
local nowFrame = { 0, 0, 0, 0, 0 }
local textureCount = 61
@ -25,11 +25,19 @@ function clearOut(player)
end
function playEndAnime(player)
animeCounter = { 0, 0 }
nowFrame = { 0, 0 }
animeCounter = { 0, 0, 0, 0, 0 }
nowFrame = { 0, 0, 0, 0, 0 }
end
function init()
if playerCount <= 2 then
y = { 192, 368, 0, 0, 0 }
elseif playerCount == 5 then
y = { 24, 168, 312, 456, 600 }
else
y = { 46, 222, 398, 574, 0 }
end
func:AddGraph("bg.png")
for i = 0 , textureCount do
func:AddGraph(tostring(i)..".png")

View File

@ -10,11 +10,11 @@
--func:SetScale(xscale, yscale, "filename")
--func:SetColor(r, g, b, "filename")
local x = { 330, 330 }
local y = { 50, 226 }
local x = { 330, 330, 330, 330, 330 }
local y = { 50, 226, 0, 0, 0 }
local animeCounter = { 0, 0 }
local nowFrame = { 0, 0 }
local animeCounter = { 0, 0, 0, 0, 0 }
local nowFrame = { 0, 0, 0, 0, 0 }
local textureCount = 66
@ -25,11 +25,20 @@ function clearOut(player)
end
function playEndAnime(player)
animeCounter = { 0, 0 }
nowFrame = { 0, 0 }
animeCounter = { 0, 0, 0, 0, 0 }
nowFrame = { 0, 0, 0, 0, 0 }
end
function init()
if playerCount <= 2 then
y = { 50, 226, 0, 0, 0 }
elseif playerCount == 5 then
y = { -118, 26, 170, 314, 458 }
else
y = { -96, 80, 256, 432, 0 }
end
for i = 0 , textureCount do
func:AddGraph(tostring(i)..".png")
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 389 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 382 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Some files were not shown because too many files have changed in this diff Show More