Merge branch 'main' of https://github.com/0auBSQ/OpenTaiko
This commit is contained in:
commit
b11519ad9f
@ -1786,6 +1786,10 @@ namespace TJAPlayer3
|
||||
SongSelect_Bar_Anim_Y[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_Scroll_Interval")
|
||||
{
|
||||
SongSelect_Scroll_Interval = float.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "SongSelect_DanStatus_Offset_X")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
@ -1882,6 +1886,30 @@ namespace TJAPlayer3
|
||||
SongSelect_Bar_Title_Offset[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_Bar_Box_Offset")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
SongSelect_Bar_Box_Offset[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_Bar_BackBox_Offset")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
SongSelect_Bar_BackBox_Offset[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_Bar_Random_Offset")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
SongSelect_Bar_Random_Offset[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "SongSelect_Bar_SubTitle_Offset")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
@ -3220,6 +3248,46 @@ namespace TJAPlayer3
|
||||
{
|
||||
Game_Notes_Interval = int.Parse(strParam);
|
||||
}
|
||||
else if (strCommand == "Game_Notes_Arm_Offset_Left_X")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
Game_Notes_Arm_Offset_Left_X[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "Game_Notes_Arm_Offset_Right_X")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
Game_Notes_Arm_Offset_Right_X[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "Game_Notes_Arm_Offset_Left_Y")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
Game_Notes_Arm_Offset_Left_Y[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "Game_Notes_Arm_Offset_Right_Y")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
Game_Notes_Arm_Offset_Right_Y[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "Game_Notes_Arm_Move")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
Game_Notes_Arm_Move[i] = int.Parse(strSplit[i]);
|
||||
}
|
||||
}
|
||||
else if (strCommand == "Game_Judge_X")
|
||||
{
|
||||
string[] strSplit = strParam.Split(',');
|
||||
@ -7597,7 +7665,12 @@ namespace TJAPlayer3
|
||||
public int[] SongSelect_Bar_Anim_X = new int[] { 0, 600, 500, 400, 0, -400, -500, -600, 0 };
|
||||
public int[] SongSelect_Bar_Anim_Y = new int[] { 0, 1800, 1500, 1200, 0, -1200, -1500, -1800, 0 };
|
||||
|
||||
public int[] SongSelect_Bar_Title_Offset = new int[] { 316, 62 };
|
||||
public float SongSelect_Scroll_Interval = 0.12f;
|
||||
|
||||
public int[] SongSelect_Bar_Title_Offset = new int[] { 316, 62 };
|
||||
public int[] SongSelect_Bar_Box_Offset = new int[] { 316, 62 };
|
||||
public int[] SongSelect_Bar_BackBox_Offset = new int[] { 316, 62 };
|
||||
public int[] SongSelect_Bar_Random_Offset = new int[] { 316, 62 };
|
||||
public int[] SongSelect_Bar_SubTitle_Offset = new int[] { 316, 90 };
|
||||
|
||||
public int[] SongSelect_DanStatus_Offset_X = new int[] { 30, 602 };
|
||||
@ -7897,7 +7970,15 @@ namespace TJAPlayer3
|
||||
public bool Game_Notes_Anime = false;
|
||||
public int[] Game_Notes_Size = new int[] { 130, 130 };
|
||||
public int[] Game_SENote_Size = new int[] { 136, 30 };
|
||||
public int Game_Notes_Interval = 960;
|
||||
public int Game_Notes_Interval = 960;
|
||||
|
||||
public int[] Game_Notes_Arm_Offset_Left_X = new int[] { 25, 25 };
|
||||
public int[] Game_Notes_Arm_Offset_Right_X = new int[] { 60, 60 };
|
||||
|
||||
public int[] Game_Notes_Arm_Offset_Left_Y = new int[] { 74, -44 };
|
||||
public int[] Game_Notes_Arm_Offset_Right_Y = new int[] { 104, -14 };
|
||||
public int[] Game_Notes_Arm_Move = new int[] { 0, 30 };
|
||||
|
||||
public int[] Game_Judge_X = new int[] { 364, 364 };
|
||||
public int[] Game_Judge_Y = new int[] { 152, 328 };
|
||||
public int[] Game_Judge_Move = new int[] { 0, 20 };
|
||||
|
@ -6427,13 +6427,24 @@ namespace TJAPlayer3
|
||||
private CPrivateFastFont pf歌詞フォント;
|
||||
public override void On活性化()
|
||||
{
|
||||
if (!string.IsNullOrEmpty(TJAPlayer3.Skin.Game_Lyric_FontName))
|
||||
{
|
||||
this.pf歌詞フォント = new CPrivateFastFont(new FontFamily(TJAPlayer3.Skin.Game_Lyric_FontName), TJAPlayer3.Skin.Game_Lyric_FontSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.pf歌詞フォント = new CPrivateFastFont(new FontFamily("MS UI Gothic"), TJAPlayer3.Skin.Game_Lyric_FontSize);
|
||||
if (TJAPlayer3.r現在のステージ.eステージID == CStage.Eステージ.曲読み込み)
|
||||
{
|
||||
//まさかこれが原因で曲の読み込みが停止するとは思わなかった...
|
||||
//どういうことかというとスキンを読み込むときに...いや厳密には
|
||||
//RefleshSkinを呼び出した後一回Disposeしてnullにして解放(その後にまたインスタンスを作成する)するんだけど
|
||||
//その時にここでTJAPlayer3.Skinを参照して例外が出ていたんだ....
|
||||
//いやいや! なんでTJAPlayer3.Skinをnullにした瞬間に参照されるんだ!と思った方もいるかもしれないですが
|
||||
//実は曲の読み込みはマルチスレッドで実行されているのでnullにした瞬間に参照される可能性も十分にある
|
||||
//それならアプリが終了するんじゃないかと思ったのだけどtryを使ってい曲の読み込みを続行していた...
|
||||
//いやーマルチスレッドって難しいね!
|
||||
if (!string.IsNullOrEmpty(TJAPlayer3.Skin.Game_Lyric_FontName))
|
||||
{
|
||||
this.pf歌詞フォント = new CPrivateFastFont(new FontFamily(TJAPlayer3.Skin.Game_Lyric_FontName), TJAPlayer3.Skin.Game_Lyric_FontSize);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.pf歌詞フォント = new CPrivateFastFont(new FontFamily("MS UI Gothic"), TJAPlayer3.Skin.Game_Lyric_FontSize);
|
||||
}
|
||||
}
|
||||
this.listWAV = new Dictionary<int, CWAV>();
|
||||
this.listBPM = new Dictionary<int, CBPM>();
|
||||
|
@ -31,13 +31,17 @@ namespace TJAPlayer3
|
||||
{
|
||||
get
|
||||
{
|
||||
if( this.n目標のスクロールカウンタ == 0 )
|
||||
{
|
||||
return ( this.n現在のスクロールカウンタ != 0 );
|
||||
}
|
||||
return true;
|
||||
return ctScrollCounter.n現在の値 != ctScrollCounter.n終了値;
|
||||
}
|
||||
}
|
||||
public double fNowScrollAnime
|
||||
{
|
||||
get
|
||||
{
|
||||
double value = ctScrollCounter.n現在の値 / 1000.0;
|
||||
return Math.Sin(value * Math.PI / 2.0);
|
||||
}
|
||||
}
|
||||
public int n現在のアンカ難易度レベル
|
||||
{
|
||||
get;
|
||||
@ -400,11 +404,131 @@ namespace TJAPlayer3
|
||||
{
|
||||
if( this.r現在選択中の曲 != null )
|
||||
{
|
||||
nNowChange = 1;
|
||||
ctScoreFrameAnime.t停止();
|
||||
ctScoreFrameAnime.n現在の値 = 0;
|
||||
ctBarOpen.t停止();
|
||||
ctBarOpen.n現在の値 = 0;
|
||||
this.n目標のスクロールカウンタ += 100;
|
||||
ctBarOpen.n現在の値 = 0;
|
||||
this.ctScrollCounter = new CCounter(0, 1000, TJAPlayer3.Skin.SongSelect_Scroll_Interval, TJAPlayer3.Timer);
|
||||
|
||||
|
||||
#region [ パネルを1行上にシフトする。]
|
||||
//-----------------
|
||||
|
||||
int barCenterNum = (TJAPlayer3.Skin.SongSelect_Bar_Count - 1) / 2;
|
||||
|
||||
// 選択曲と選択行を1つ下の行に移動。
|
||||
|
||||
tChangeSong(1);
|
||||
this.n現在の選択行 = (this.n現在の選択行 + 1) % TJAPlayer3.Skin.SongSelect_Bar_Count;
|
||||
|
||||
// 選択曲から7つ下のパネル(=新しく最下部に表示されるパネル。消えてしまう一番上のパネルを再利用する)に、新しい曲の情報を記載する。
|
||||
|
||||
var song = this.rGetSideSong(barCenterNum);
|
||||
|
||||
int index = (this.n現在の選択行 + barCenterNum) % TJAPlayer3.Skin.SongSelect_Bar_Count; // 新しく最下部に表示されるパネルのインデックス(0~12)。
|
||||
this.stバー情報[index].strタイトル文字列 = song.strタイトル;
|
||||
this.stバー情報[index].ForeColor = song.ForeColor;
|
||||
this.stバー情報[index].BackColor = song.BackColor;
|
||||
this.stバー情報[index].BoxColor = song.BoxColor;
|
||||
this.stバー情報[index].BgColor = song.BgColor;
|
||||
|
||||
// Set default if unchanged here
|
||||
this.stバー情報[index].BoxType = song.BoxType;
|
||||
this.stバー情報[index].BgType = song.BgType;
|
||||
|
||||
this.stバー情報[index].BgTypeChanged = song.isChangedBgType;
|
||||
this.stバー情報[index].BoxTypeChanged = song.isChangedBoxType;
|
||||
|
||||
this.stバー情報[index].BoxChara = song.BoxChara;
|
||||
this.stバー情報[index].BoxCharaChanged = song.isChangedBoxChara;
|
||||
|
||||
this.stバー情報[index].strジャンル = song.strジャンル;
|
||||
this.stバー情報[index].strサブタイトル = song.strサブタイトル;
|
||||
this.stバー情報[index].ar難易度 = song.nLevel;
|
||||
for (int f = 0; f < (int)Difficulty.Total; f++)
|
||||
{
|
||||
if (song.arスコア[f] != null)
|
||||
this.stバー情報[index].b分岐 = song.arスコア[f].譜面情報.b譜面分岐;
|
||||
}
|
||||
|
||||
#region [Reroll cases]
|
||||
|
||||
if (stバー情報[index].nクリア == null)
|
||||
this.stバー情報[index].nクリア = new int[2][];
|
||||
if (stバー情報[index].nスコアランク == null)
|
||||
this.stバー情報[index].nスコアランク = new int[2][];
|
||||
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
this.stバー情報[index].nクリア[i] = new int[5];
|
||||
this.stバー情報[index].nスコアランク[i] = new int[5];
|
||||
|
||||
int ap = TJAPlayer3.GetActualPlayer(i);
|
||||
var sr = song.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)];
|
||||
|
||||
this.stバー情報[index].nクリア[i] = sr.GPInfo[ap].nClear;
|
||||
this.stバー情報[index].nスコアランク[i] = sr.GPInfo[ap].nScoreRank;
|
||||
}
|
||||
|
||||
this.stバー情報[index].csu = song.uniqueId;
|
||||
this.stバー情報[index].reference = song;
|
||||
|
||||
#endregion
|
||||
|
||||
// stバー情報[] の内容を1行ずつずらす。
|
||||
|
||||
|
||||
for (int i = 0; i < TJAPlayer3.Skin.SongSelect_Bar_Count; i++)
|
||||
{
|
||||
C曲リストノード song2 = this.rGetSideSong(i - barCenterNum);
|
||||
int n = (((this.n現在の選択行 - barCenterNum) + i) + TJAPlayer3.Skin.SongSelect_Bar_Count) % TJAPlayer3.Skin.SongSelect_Bar_Count;
|
||||
this.stバー情報[n].eバー種別 = this.e曲のバー種別を返す(song2);
|
||||
this.stバー情報[n].ttkタイトル = this.ttk曲名テクスチャを生成する(this.stバー情報[n].strタイトル文字列, this.stバー情報[n].ForeColor, this.stバー情報[n].BackColor, stバー情報[n].eバー種別 == Eバー種別.Box ? this.pfBoxName : this.pfMusicName);
|
||||
}
|
||||
|
||||
|
||||
// 新しく最下部に表示されるパネル用のスキル値を取得。
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
this.stバー情報[index].nスキル値[i] = (int)song.arスコア[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[i];
|
||||
|
||||
|
||||
// 1行(100カウント)移動完了。
|
||||
|
||||
this.t選択曲が変更された(false); // スクロールバー用に今何番目を選択しているかを更新
|
||||
|
||||
|
||||
|
||||
{
|
||||
TJAPlayer3.stage選曲.t選択曲変更通知(); // スクロール完了=選択曲変更!
|
||||
ctBarOpen.t開始(0, 260, 2, TJAPlayer3.Timer);
|
||||
|
||||
TJAPlayer3.stage選曲.NowGenre = this.r現在選択中の曲.strジャンル;
|
||||
|
||||
TJAPlayer3.stage選曲.NowBg = this.r現在選択中の曲.BgType;
|
||||
|
||||
TJAPlayer3.stage選曲.NowBgColor = this.r現在選択中の曲.BgColor;
|
||||
|
||||
TJAPlayer3.stage選曲.NowUseGenre = !this.r現在選択中の曲.isChangedBgType;
|
||||
|
||||
ctScoreFrameAnime.t開始(0, 6000, 1, TJAPlayer3.Timer);
|
||||
}
|
||||
|
||||
//-----------------
|
||||
#endregion
|
||||
|
||||
|
||||
if (this.ttk選択している曲の曲名 != null)
|
||||
{
|
||||
this.ttk選択している曲の曲名 = null;
|
||||
this.b選択曲が変更された = false;
|
||||
}
|
||||
if (this.ttk選択している曲のサブタイトル != null)
|
||||
{
|
||||
this.ttk選択している曲のサブタイトル = null;
|
||||
this.b選択曲が変更された = false;
|
||||
}
|
||||
}
|
||||
this.b選択曲が変更された = true;
|
||||
}
|
||||
@ -412,11 +536,138 @@ namespace TJAPlayer3
|
||||
{
|
||||
if( this.r現在選択中の曲 != null )
|
||||
{
|
||||
nNowChange = -1;
|
||||
ctScoreFrameAnime.t停止();
|
||||
ctScoreFrameAnime.n現在の値 = 0;
|
||||
ctBarOpen.t停止();
|
||||
ctBarOpen.n現在の値 = 0;
|
||||
this.n目標のスクロールカウンタ -= 100;
|
||||
ctBarOpen.n現在の値 = 0;
|
||||
this.ctScrollCounter = new CCounter(0, 1000, TJAPlayer3.Skin.SongSelect_Scroll_Interval, TJAPlayer3.Timer);
|
||||
|
||||
|
||||
#region [ パネルを1行下にシフトする。]
|
||||
//-----------------
|
||||
|
||||
int barCenterNum = (TJAPlayer3.Skin.SongSelect_Bar_Count - 1) / 2;
|
||||
|
||||
// 選択曲と選択行を1つ上の行に移動。
|
||||
|
||||
tChangeSong(-1);
|
||||
this.n現在の選択行 = ((this.n現在の選択行 - 1) + TJAPlayer3.Skin.SongSelect_Bar_Count) % TJAPlayer3.Skin.SongSelect_Bar_Count;
|
||||
|
||||
|
||||
// 選択曲から5つ上のパネル(=新しく最上部に表示されるパネル。消えてしまう一番下のパネルを再利用する)に、新しい曲の情報を記載する。
|
||||
|
||||
var song = this.rGetSideSong(-barCenterNum);
|
||||
|
||||
int index = ((this.n現在の選択行 - barCenterNum) + TJAPlayer3.Skin.SongSelect_Bar_Count) % TJAPlayer3.Skin.SongSelect_Bar_Count; // 新しく最上部に表示されるパネルのインデックス(0~12)。
|
||||
this.stバー情報[index].strタイトル文字列 = song.strタイトル;
|
||||
this.stバー情報[index].ForeColor = song.ForeColor;
|
||||
this.stバー情報[index].BackColor = song.BackColor;
|
||||
this.stバー情報[index].BoxColor = song.BoxColor;
|
||||
this.stバー情報[index].BgColor = song.BgColor;
|
||||
|
||||
// Set default if unchanged here
|
||||
this.stバー情報[index].BoxType = song.BoxType;
|
||||
this.stバー情報[index].BgType = song.BgType;
|
||||
|
||||
this.stバー情報[index].BgTypeChanged = song.isChangedBgType;
|
||||
this.stバー情報[index].BoxTypeChanged = song.isChangedBoxType;
|
||||
|
||||
this.stバー情報[index].BoxChara = song.BoxChara;
|
||||
this.stバー情報[index].BoxCharaChanged = song.isChangedBoxChara;
|
||||
|
||||
this.stバー情報[index].strサブタイトル = song.strサブタイトル;
|
||||
this.stバー情報[index].strジャンル = song.strジャンル;
|
||||
this.stバー情報[index].ar難易度 = song.nLevel;
|
||||
for (int f = 0; f < (int)Difficulty.Total; f++)
|
||||
{
|
||||
if (song.arスコア[f] != null)
|
||||
this.stバー情報[index].b分岐 = song.arスコア[f].譜面情報.b譜面分岐;
|
||||
}
|
||||
|
||||
/*
|
||||
if (stバー情報[index].nクリア == null)
|
||||
this.stバー情報[index].nクリア = new int[5];
|
||||
if (stバー情報[index].nスコアランク == null)
|
||||
this.stバー情報[index].nスコアランク = new int[5];
|
||||
|
||||
for (int i = 0; i <= (int)Difficulty.Edit; i++)
|
||||
{
|
||||
if (song.arスコア[i] != null)
|
||||
{
|
||||
this.stバー情報[index].nクリア = song.arスコア[i].譜面情報.nクリア;
|
||||
this.stバー情報[index].nスコアランク = song.arスコア[i].譜面情報.nスコアランク;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
#region [Reroll cases]
|
||||
|
||||
if (stバー情報[index].nクリア == null)
|
||||
this.stバー情報[index].nクリア = new int[2][];
|
||||
if (stバー情報[index].nスコアランク == null)
|
||||
this.stバー情報[index].nスコアランク = new int[2][];
|
||||
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
this.stバー情報[index].nクリア[i] = new int[5];
|
||||
this.stバー情報[index].nスコアランク[i] = new int[5];
|
||||
|
||||
int ap = TJAPlayer3.GetActualPlayer(i);
|
||||
var sr = song.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)];
|
||||
|
||||
this.stバー情報[index].nクリア[i] = sr.GPInfo[ap].nClear;
|
||||
this.stバー情報[index].nスコアランク[i] = sr.GPInfo[ap].nScoreRank;
|
||||
}
|
||||
|
||||
this.stバー情報[index].csu = song.uniqueId;
|
||||
this.stバー情報[index].reference = song;
|
||||
|
||||
#endregion
|
||||
|
||||
// stバー情報[] の内容を1行ずつずらす。
|
||||
|
||||
for (int i = 0; i < TJAPlayer3.Skin.SongSelect_Bar_Count; i++)
|
||||
{
|
||||
int n = (((this.n現在の選択行 - barCenterNum) + i) + TJAPlayer3.Skin.SongSelect_Bar_Count) % TJAPlayer3.Skin.SongSelect_Bar_Count;
|
||||
var song2 = this.rGetSideSong(i - barCenterNum);
|
||||
this.stバー情報[n].eバー種別 = this.e曲のバー種別を返す(song2);
|
||||
this.stバー情報[n].ttkタイトル = this.ttk曲名テクスチャを生成する(this.stバー情報[n].strタイトル文字列, this.stバー情報[n].ForeColor, this.stバー情報[n].BackColor, stバー情報[n].eバー種別 == Eバー種別.Box ? this.pfBoxName : this.pfMusicName);
|
||||
}
|
||||
|
||||
|
||||
// 新しく最上部に表示されるパネル用のスキル値を取得。
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
this.stバー情報[index].nスキル値[i] = (int)song.arスコア[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[i];
|
||||
|
||||
|
||||
this.t選択曲が変更された(false); // スクロールバー用に今何番目を選択しているかを更新
|
||||
|
||||
this.ttk選択している曲の曲名 = null;
|
||||
this.ttk選択している曲のサブタイトル = null;
|
||||
|
||||
TJAPlayer3.stage選曲.t選択曲変更通知(); // スクロール完了=選択曲変更!
|
||||
ctBarOpen.t開始(0, 260, 2, TJAPlayer3.Timer);
|
||||
TJAPlayer3.stage選曲.NowGenre = this.r現在選択中の曲.strジャンル;
|
||||
TJAPlayer3.stage選曲.NowBg = this.r現在選択中の曲.BgType;
|
||||
TJAPlayer3.stage選曲.NowBgColor = this.r現在選択中の曲.BgColor;
|
||||
TJAPlayer3.stage選曲.NowUseGenre = !this.r現在選択中の曲.isChangedBgType;
|
||||
ctScoreFrameAnime.t開始(0, 6000, 1, TJAPlayer3.Timer);
|
||||
//-----------------
|
||||
#endregion
|
||||
|
||||
|
||||
if (this.ttk選択している曲の曲名 != null)
|
||||
{
|
||||
this.ttk選択している曲の曲名 = null;
|
||||
this.b選択曲が変更された = false;
|
||||
}
|
||||
if (this.ttk選択している曲のサブタイトル != null)
|
||||
{
|
||||
this.ttk選択している曲のサブタイトル = null;
|
||||
this.b選択曲が変更された = false;
|
||||
}
|
||||
}
|
||||
this.b選択曲が変更された = true;
|
||||
}
|
||||
@ -686,9 +937,7 @@ namespace TJAPlayer3
|
||||
|
||||
|
||||
this.b登場アニメ全部完了 = false;
|
||||
this.n目標のスクロールカウンタ = 0;
|
||||
this.n現在のスクロールカウンタ = 0;
|
||||
this.nスクロールタイマ = -1;
|
||||
this.ctScrollCounter = new CCounter(0, 1000, TJAPlayer3.Skin.SongSelect_Scroll_Interval, TJAPlayer3.Timer);
|
||||
|
||||
// フォント作成。
|
||||
// 曲リスト文字は2倍(面積4倍)でテクスチャに描画してから縮小表示するので、フォントサイズは2倍とする。
|
||||
@ -850,7 +1099,6 @@ namespace TJAPlayer3
|
||||
//-----------------
|
||||
if (this.b初めての進行描画)
|
||||
{
|
||||
this.nスクロールタイマ = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
|
||||
TJAPlayer3.stage選曲.t選択曲変更通知();
|
||||
|
||||
ctBarOpen.t開始(0, 260, 2, TJAPlayer3.Timer);
|
||||
@ -917,341 +1165,39 @@ namespace TJAPlayer3
|
||||
}
|
||||
}
|
||||
|
||||
int barCenterNum = (TJAPlayer3.Skin.SongSelect_Bar_Count - 1) / 2;
|
||||
this.ctScrollCounter.t進行();
|
||||
|
||||
// 進行。
|
||||
if (n現在のスクロールカウンタ == 0) ct三角矢印アニメ.t進行Loop();
|
||||
if (this.ctScrollCounter.n現在の値 == this.ctScrollCounter.n終了値) ct三角矢印アニメ.t進行Loop();
|
||||
else ct三角矢印アニメ.n現在の値 = 0;
|
||||
|
||||
{
|
||||
#region [ (2) 通常フェーズの進行。]
|
||||
//-----------------
|
||||
long n現在時刻 = CSound管理.rc演奏用タイマ.n現在時刻;
|
||||
|
||||
if (n現在時刻 < this.nスクロールタイマ) // 念のため
|
||||
this.nスクロールタイマ = n現在時刻;
|
||||
|
||||
const int nアニメ間隔 = 2;
|
||||
while ((n現在時刻 - this.nスクロールタイマ) >= nアニメ間隔)
|
||||
{
|
||||
int n加速度 = 1;
|
||||
int n残距離 = Math.Abs((int)(this.n目標のスクロールカウンタ - this.n現在のスクロールカウンタ));
|
||||
|
||||
#region [ 残距離が遠いほどスクロールを速くする(=n加速度を多くする)。]
|
||||
//-----------------
|
||||
if (n残距離 <= 10)
|
||||
{
|
||||
n加速度 = 1;
|
||||
}
|
||||
else if (n残距離 <= 100)
|
||||
{
|
||||
n加速度 = 2;
|
||||
}
|
||||
else if (n残距離 <= 300)
|
||||
{
|
||||
n加速度 = 3;
|
||||
}
|
||||
else if (n残距離 <= 500)
|
||||
{
|
||||
n加速度 = 4;
|
||||
}
|
||||
else
|
||||
{
|
||||
n加速度 = 650;
|
||||
}
|
||||
//-----------------
|
||||
#endregion
|
||||
|
||||
#region [ 加速度を加算し、現在のスクロールカウンタを目標のスクロールカウンタまで近づける。 ]
|
||||
//-----------------
|
||||
if (this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ) // (A) 正の方向に未達の場合:
|
||||
{
|
||||
this.n現在のスクロールカウンタ += n加速度; // カウンタを正方向に移動する。
|
||||
|
||||
if (this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ)
|
||||
this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ; // 到着!スクロール停止!
|
||||
}
|
||||
|
||||
else if (this.n現在のスクロールカウンタ > this.n目標のスクロールカウンタ) // (B) 負の方向に未達の場合:
|
||||
{
|
||||
this.n現在のスクロールカウンタ -= n加速度; // カウンタを負方向に移動する。
|
||||
|
||||
if (this.n現在のスクロールカウンタ < this.n目標のスクロールカウンタ) // 到着!スクロール停止!
|
||||
this.n現在のスクロールカウンタ = this.n目標のスクロールカウンタ;
|
||||
}
|
||||
//-----------------
|
||||
#endregion
|
||||
|
||||
if (this.n現在のスクロールカウンタ >= 100) // 1行=100カウント。
|
||||
{
|
||||
#region [ パネルを1行上にシフトする。]
|
||||
//-----------------
|
||||
|
||||
// 選択曲と選択行を1つ下の行に移動。
|
||||
|
||||
tChangeSong(1);
|
||||
this.n現在の選択行 = (this.n現在の選択行 + 1) % TJAPlayer3.Skin.SongSelect_Bar_Count;
|
||||
|
||||
// 選択曲から7つ下のパネル(=新しく最下部に表示されるパネル。消えてしまう一番上のパネルを再利用する)に、新しい曲の情報を記載する。
|
||||
|
||||
var song = this.rGetSideSong(barCenterNum);
|
||||
|
||||
int index = (this.n現在の選択行 + barCenterNum) % TJAPlayer3.Skin.SongSelect_Bar_Count; // 新しく最下部に表示されるパネルのインデックス(0~12)。
|
||||
this.stバー情報[index].strタイトル文字列 = song.strタイトル;
|
||||
this.stバー情報[index].ForeColor = song.ForeColor;
|
||||
this.stバー情報[index].BackColor = song.BackColor;
|
||||
this.stバー情報[index].BoxColor = song.BoxColor;
|
||||
this.stバー情報[index].BgColor = song.BgColor;
|
||||
|
||||
// Set default if unchanged here
|
||||
this.stバー情報[index].BoxType = song.BoxType;
|
||||
this.stバー情報[index].BgType = song.BgType;
|
||||
|
||||
this.stバー情報[index].BgTypeChanged = song.isChangedBgType;
|
||||
this.stバー情報[index].BoxTypeChanged = song.isChangedBoxType;
|
||||
|
||||
this.stバー情報[index].BoxChara = song.BoxChara;
|
||||
this.stバー情報[index].BoxCharaChanged = song.isChangedBoxChara;
|
||||
|
||||
this.stバー情報[index].strジャンル = song.strジャンル;
|
||||
this.stバー情報[index].strサブタイトル = song.strサブタイトル;
|
||||
this.stバー情報[index].ar難易度 = song.nLevel;
|
||||
for (int f = 0; f < (int)Difficulty.Total; f++)
|
||||
{
|
||||
if (song.arスコア[f] != null)
|
||||
this.stバー情報[index].b分岐 = song.arスコア[f].譜面情報.b譜面分岐;
|
||||
}
|
||||
|
||||
#region [Reroll cases]
|
||||
|
||||
if (stバー情報[index].nクリア == null)
|
||||
this.stバー情報[index].nクリア = new int[2][];
|
||||
if (stバー情報[index].nスコアランク == null)
|
||||
this.stバー情報[index].nスコアランク = new int[2][];
|
||||
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
this.stバー情報[index].nクリア[i] = new int[5];
|
||||
this.stバー情報[index].nスコアランク[i] = new int[5];
|
||||
|
||||
int ap = TJAPlayer3.GetActualPlayer(i);
|
||||
var sr = song.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)];
|
||||
|
||||
this.stバー情報[index].nクリア[i] = sr.GPInfo[ap].nClear;
|
||||
this.stバー情報[index].nスコアランク[i] = sr.GPInfo[ap].nScoreRank;
|
||||
}
|
||||
|
||||
this.stバー情報[index].csu = song.uniqueId;
|
||||
this.stバー情報[index].reference = song;
|
||||
|
||||
#endregion
|
||||
|
||||
// stバー情報[] の内容を1行ずつずらす。
|
||||
|
||||
|
||||
for (int i = 0; i < TJAPlayer3.Skin.SongSelect_Bar_Count; i++)
|
||||
{
|
||||
C曲リストノード song2 = this.rGetSideSong(i - barCenterNum);
|
||||
int n = (((this.n現在の選択行 - barCenterNum) + i) + TJAPlayer3.Skin.SongSelect_Bar_Count) % TJAPlayer3.Skin.SongSelect_Bar_Count;
|
||||
this.stバー情報[n].eバー種別 = this.e曲のバー種別を返す(song2);
|
||||
this.stバー情報[n].ttkタイトル = this.ttk曲名テクスチャを生成する(this.stバー情報[n].strタイトル文字列, this.stバー情報[n].ForeColor, this.stバー情報[n].BackColor, stバー情報[n].eバー種別 == Eバー種別.Box ? this.pfBoxName : this.pfMusicName);
|
||||
}
|
||||
|
||||
|
||||
// 新しく最下部に表示されるパネル用のスキル値を取得。
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
this.stバー情報[index].nスキル値[i] = (int)song.arスコア[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[i];
|
||||
|
||||
|
||||
// 1行(100カウント)移動完了。
|
||||
|
||||
this.n現在のスクロールカウンタ -= 100;
|
||||
this.n目標のスクロールカウンタ -= 100;
|
||||
|
||||
this.t選択曲が変更された(false); // スクロールバー用に今何番目を選択しているかを更新
|
||||
|
||||
|
||||
|
||||
if (this.n目標のスクロールカウンタ == 0)
|
||||
{
|
||||
TJAPlayer3.stage選曲.t選択曲変更通知(); // スクロール完了=選択曲変更!
|
||||
ctBarOpen.t開始(0, 260, 2, TJAPlayer3.Timer);
|
||||
|
||||
TJAPlayer3.stage選曲.NowGenre = this.r現在選択中の曲.strジャンル;
|
||||
|
||||
TJAPlayer3.stage選曲.NowBg = this.r現在選択中の曲.BgType;
|
||||
|
||||
TJAPlayer3.stage選曲.NowBgColor = this.r現在選択中の曲.BgColor;
|
||||
|
||||
TJAPlayer3.stage選曲.NowUseGenre = !this.r現在選択中の曲.isChangedBgType;
|
||||
|
||||
ctScoreFrameAnime.t開始(0, 6000, 1, TJAPlayer3.Timer);
|
||||
}
|
||||
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
||||
else if (this.n現在のスクロールカウンタ <= -100)
|
||||
{
|
||||
#region [ パネルを1行下にシフトする。]
|
||||
//-----------------
|
||||
|
||||
// 選択曲と選択行を1つ上の行に移動。
|
||||
|
||||
tChangeSong(-1);
|
||||
this.n現在の選択行 = ((this.n現在の選択行 - 1) + TJAPlayer3.Skin.SongSelect_Bar_Count) % TJAPlayer3.Skin.SongSelect_Bar_Count;
|
||||
|
||||
|
||||
// 選択曲から5つ上のパネル(=新しく最上部に表示されるパネル。消えてしまう一番下のパネルを再利用する)に、新しい曲の情報を記載する。
|
||||
|
||||
var song = this.rGetSideSong(-barCenterNum);
|
||||
|
||||
int index = ((this.n現在の選択行 - barCenterNum) + TJAPlayer3.Skin.SongSelect_Bar_Count) % TJAPlayer3.Skin.SongSelect_Bar_Count; // 新しく最上部に表示されるパネルのインデックス(0~12)。
|
||||
this.stバー情報[index].strタイトル文字列 = song.strタイトル;
|
||||
this.stバー情報[index].ForeColor = song.ForeColor;
|
||||
this.stバー情報[index].BackColor = song.BackColor;
|
||||
this.stバー情報[index].BoxColor = song.BoxColor;
|
||||
this.stバー情報[index].BgColor = song.BgColor;
|
||||
|
||||
// Set default if unchanged here
|
||||
this.stバー情報[index].BoxType = song.BoxType;
|
||||
this.stバー情報[index].BgType = song.BgType;
|
||||
|
||||
this.stバー情報[index].BgTypeChanged = song.isChangedBgType;
|
||||
this.stバー情報[index].BoxTypeChanged = song.isChangedBoxType;
|
||||
|
||||
this.stバー情報[index].BoxChara = song.BoxChara;
|
||||
this.stバー情報[index].BoxCharaChanged = song.isChangedBoxChara;
|
||||
|
||||
this.stバー情報[index].strサブタイトル = song.strサブタイトル;
|
||||
this.stバー情報[index].strジャンル = song.strジャンル;
|
||||
this.stバー情報[index].ar難易度 = song.nLevel;
|
||||
for (int f = 0; f < (int)Difficulty.Total; f++)
|
||||
{
|
||||
if (song.arスコア[f] != null)
|
||||
this.stバー情報[index].b分岐 = song.arスコア[f].譜面情報.b譜面分岐;
|
||||
}
|
||||
|
||||
/*
|
||||
if (stバー情報[index].nクリア == null)
|
||||
this.stバー情報[index].nクリア = new int[5];
|
||||
if (stバー情報[index].nスコアランク == null)
|
||||
this.stバー情報[index].nスコアランク = new int[5];
|
||||
|
||||
for (int i = 0; i <= (int)Difficulty.Edit; i++)
|
||||
{
|
||||
if (song.arスコア[i] != null)
|
||||
{
|
||||
this.stバー情報[index].nクリア = song.arスコア[i].譜面情報.nクリア;
|
||||
this.stバー情報[index].nスコアランク = song.arスコア[i].譜面情報.nスコアランク;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
#region [Reroll cases]
|
||||
|
||||
if (stバー情報[index].nクリア == null)
|
||||
this.stバー情報[index].nクリア = new int[2][];
|
||||
if (stバー情報[index].nスコアランク == null)
|
||||
this.stバー情報[index].nスコアランク = new int[2][];
|
||||
|
||||
for (int i = 0; i < 2; i++)
|
||||
{
|
||||
this.stバー情報[index].nクリア[i] = new int[5];
|
||||
this.stバー情報[index].nスコアランク[i] = new int[5];
|
||||
|
||||
int ap = TJAPlayer3.GetActualPlayer(i);
|
||||
var sr = song.arスコア[n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)];
|
||||
|
||||
this.stバー情報[index].nクリア[i] = sr.GPInfo[ap].nClear;
|
||||
this.stバー情報[index].nスコアランク[i] = sr.GPInfo[ap].nScoreRank;
|
||||
}
|
||||
|
||||
this.stバー情報[index].csu = song.uniqueId;
|
||||
this.stバー情報[index].reference = song;
|
||||
|
||||
#endregion
|
||||
|
||||
// stバー情報[] の内容を1行ずつずらす。
|
||||
|
||||
for (int i = 0; i < TJAPlayer3.Skin.SongSelect_Bar_Count; i++)
|
||||
{
|
||||
int n = (((this.n現在の選択行 - barCenterNum) + i) + TJAPlayer3.Skin.SongSelect_Bar_Count) % TJAPlayer3.Skin.SongSelect_Bar_Count;
|
||||
var song2 = this.rGetSideSong(i - barCenterNum);
|
||||
this.stバー情報[n].eバー種別 = this.e曲のバー種別を返す(song2);
|
||||
this.stバー情報[n].ttkタイトル = this.ttk曲名テクスチャを生成する(this.stバー情報[n].strタイトル文字列, this.stバー情報[n].ForeColor, this.stバー情報[n].BackColor, stバー情報[n].eバー種別 == Eバー種別.Box ? this.pfBoxName : this.pfMusicName);
|
||||
}
|
||||
|
||||
|
||||
// 新しく最上部に表示されるパネル用のスキル値を取得。
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
this.stバー情報[index].nスキル値[i] = (int)song.arスコア[this.n現在のアンカ難易度レベルに最も近い難易度レベルを返す(song)].譜面情報.最大スキル[i];
|
||||
|
||||
|
||||
// 1行(100カウント)移動完了。
|
||||
|
||||
this.n現在のスクロールカウンタ += 100;
|
||||
this.n目標のスクロールカウンタ += 100;
|
||||
|
||||
this.t選択曲が変更された(false); // スクロールバー用に今何番目を選択しているかを更新
|
||||
|
||||
this.ttk選択している曲の曲名 = null;
|
||||
this.ttk選択している曲のサブタイトル = null;
|
||||
|
||||
if (this.n目標のスクロールカウンタ == 0)
|
||||
{
|
||||
TJAPlayer3.stage選曲.t選択曲変更通知(); // スクロール完了=選択曲変更!
|
||||
ctBarOpen.t開始(0, 260, 2, TJAPlayer3.Timer);
|
||||
TJAPlayer3.stage選曲.NowGenre = this.r現在選択中の曲.strジャンル;
|
||||
TJAPlayer3.stage選曲.NowBg = this.r現在選択中の曲.BgType;
|
||||
TJAPlayer3.stage選曲.NowBgColor = this.r現在選択中の曲.BgColor;
|
||||
TJAPlayer3.stage選曲.NowUseGenre = !this.r現在選択中の曲.isChangedBgType;
|
||||
ctScoreFrameAnime.t開始(0, 6000, 1, TJAPlayer3.Timer);
|
||||
}
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
||||
|
||||
if (this.b選択曲が変更された && n現在のスクロールカウンタ == 0)
|
||||
{
|
||||
if (this.ttk選択している曲の曲名 != null)
|
||||
{
|
||||
this.ttk選択している曲の曲名 = null;
|
||||
this.b選択曲が変更された = false;
|
||||
}
|
||||
if (this.ttk選択している曲のサブタイトル != null)
|
||||
{
|
||||
this.ttk選択している曲のサブタイトル = null;
|
||||
this.b選択曲が変更された = false;
|
||||
}
|
||||
}
|
||||
this.nスクロールタイマ += nアニメ間隔;
|
||||
}
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
||||
|
||||
int i選曲バーX座標 = 673; //選曲バーの座標用
|
||||
int i選択曲バーX座標 = 665; //選択曲バーの座標用
|
||||
|
||||
#region [ (2) 通常フェーズの描画。]
|
||||
//-----------------
|
||||
for (int i = 0; i < TJAPlayer3.Skin.SongSelect_Bar_Count; i++) // パネルは全13枚。
|
||||
int barCenterNum = (TJAPlayer3.Skin.SongSelect_Bar_Count - 1) / 2;
|
||||
|
||||
if (this.ctScrollCounter.n現在の値 == this.ctScrollCounter.n終了値)
|
||||
{
|
||||
nNowChange = 0;
|
||||
}
|
||||
|
||||
#region [ (2) 通常フェーズの描画。]
|
||||
//-----------------
|
||||
for (int i = 0; i < TJAPlayer3.Skin.SongSelect_Bar_Count; i++) // パネルは全13枚。
|
||||
{
|
||||
if ((i == 0 && this.n現在のスクロールカウンタ > 0) || // 最上行は、上に移動中なら表示しない。
|
||||
(i == TJAPlayer3.Skin.SongSelect_Bar_Count - 1 && this.n現在のスクロールカウンタ < 0)) // 最下行は、下に移動中なら表示しない。
|
||||
continue;
|
||||
int index = i + nNowChange;
|
||||
if (((index < 0 || index >= TJAPlayer3.Skin.SongSelect_Bar_Count) && this.ctScrollCounter.n現在の値 != this.ctScrollCounter.n終了値))
|
||||
continue;
|
||||
|
||||
int nパネル番号 = (((this.n現在の選択行 - barCenterNum) + i) + TJAPlayer3.Skin.SongSelect_Bar_Count) % TJAPlayer3.Skin.SongSelect_Bar_Count;
|
||||
int n見た目の行番号 = i;
|
||||
int n次のパネル番号 = (this.n現在のスクロールカウンタ <= 0) ? ((i + 1) % TJAPlayer3.Skin.SongSelect_Bar_Count) : (((i - 1) + TJAPlayer3.Skin.SongSelect_Bar_Count) % TJAPlayer3.Skin.SongSelect_Bar_Count);
|
||||
int n次のパネル番号 = (index % TJAPlayer3.Skin.SongSelect_Bar_Count);
|
||||
int x = i選曲バーX座標;
|
||||
|
||||
#region [Positions and layouts]
|
||||
#region [Positions and layouts]
|
||||
|
||||
int xZahyou = TJAPlayer3.Skin.SongSelect_Bar_X[n見た目の行番号];
|
||||
int xZahyou = TJAPlayer3.Skin.SongSelect_Bar_X[n見た目の行番号];
|
||||
int xNextZahyou = TJAPlayer3.Skin.SongSelect_Bar_X[n次のパネル番号];
|
||||
int xCentralZahyou = TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum];
|
||||
|
||||
@ -1291,14 +1237,14 @@ namespace TJAPlayer3
|
||||
#endregion
|
||||
|
||||
// x set here
|
||||
int xAnime = xZahyou + ((int)((xNextZahyou - xZahyou)
|
||||
* (((double)Math.Abs(this.n現在のスクロールカウンタ)) / 100.0)));
|
||||
int xAnime = xZahyou + (int)((xNextZahyou - xZahyou)
|
||||
* (1.0 - fNowScrollAnime));
|
||||
|
||||
int y = yZahyou + ((int)((yNextZahyou - yZahyou)
|
||||
* (((double)Math.Abs(this.n現在のスクロールカウンタ)) / 100.0)));
|
||||
|
||||
// (B) スクロール中の選択曲バー、またはその他のバーの描画。
|
||||
|
||||
int y = yZahyou + (int)((yNextZahyou - yZahyou)
|
||||
* (1.0 - fNowScrollAnime));
|
||||
|
||||
// (B) スクロール中の選択曲バー、またはその他のバーの描画。
|
||||
|
||||
float Box = 0;
|
||||
float Box_X = 0;
|
||||
float Box_Y = 0;
|
||||
@ -1477,7 +1423,7 @@ namespace TJAPlayer3
|
||||
|
||||
|
||||
|
||||
if (n現在のスクロールカウンタ != 0 || n見た目の行番号 != barCenterNum)
|
||||
if (ctScrollCounter.n現在の値 != ctScrollCounter.n終了値 || n見た目の行番号 != barCenterNum)
|
||||
{
|
||||
int songType = 0;
|
||||
if (this.stバー情報[nパネル番号].ar難易度[(int)Difficulty.Dan] >= 0)
|
||||
@ -1518,17 +1464,19 @@ namespace TJAPlayer3
|
||||
else
|
||||
ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル, TJAPlayer3.Skin.SongSelect_VerticalText).Opacity = 255;
|
||||
|
||||
if (n現在のスクロールカウンタ != 0)
|
||||
ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル, TJAPlayer3.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, xAnime - Box_X + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[0], y - Box_Y + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[1]);
|
||||
if (ctScrollCounter.n現在の値 != ctScrollCounter.n終了値)
|
||||
ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル, TJAPlayer3.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device,
|
||||
xAnime - Box_X + GetTitleOffsetX(this.stバー情報[nパネル番号].eバー種別), y - Box_Y + GetTitleOffsetY(this.stバー情報[nパネル番号].eバー種別));
|
||||
else if (n見た目の行番号 != barCenterNum)
|
||||
ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル, TJAPlayer3.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, xAnime - Box_X + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[0], y - Box_Y + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[1]);
|
||||
ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル, TJAPlayer3.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device,
|
||||
xAnime - Box_X + GetTitleOffsetX(this.stバー情報[nパネル番号].eバー種別), y - Box_Y + GetTitleOffsetY(this.stバー情報[nパネル番号].eバー種別));
|
||||
#endregion
|
||||
|
||||
//-----------------
|
||||
}
|
||||
#endregion
|
||||
|
||||
if (this.n現在のスクロールカウンタ == 0)
|
||||
if (this.ctScrollCounter.n現在の値 == this.ctScrollCounter.n終了値)
|
||||
{
|
||||
#region [ Draw BarCenter ]
|
||||
|
||||
@ -2037,22 +1985,24 @@ namespace TJAPlayer3
|
||||
ctDifficultyIn.t停止();
|
||||
}
|
||||
|
||||
for (int i = 0; i < TJAPlayer3.Skin.SongSelect_Bar_Count; i++) // パネルは全13枚。
|
||||
for (int i = 0; i < TJAPlayer3.Skin.SongSelect_Bar_Count; i++) // パネルは全13枚。
|
||||
{
|
||||
if ((i == 0 && this.n現在のスクロールカウンタ > 0) || // 最上行は、上に移動中なら表示しない。
|
||||
(i == TJAPlayer3.Skin.SongSelect_Bar_Count - 1 && this.n現在のスクロールカウンタ < 0)) // 最下行は、下に移動中なら表示しない。
|
||||
int index = i + nNowChange;
|
||||
if (((index < 0 || index >= TJAPlayer3.Skin.SongSelect_Bar_Count) && this.ctScrollCounter.n現在の値 != this.ctScrollCounter.n終了値))
|
||||
continue;
|
||||
|
||||
int nパネル番号 = (((this.n現在の選択行 - barCenterNum) + i) + TJAPlayer3.Skin.SongSelect_Bar_Count) % TJAPlayer3.Skin.SongSelect_Bar_Count;
|
||||
int n見た目の行番号 = i;
|
||||
int n次のパネル番号 = (this.n現在のスクロールカウンタ <= 0) ? ((i + 1) % TJAPlayer3.Skin.SongSelect_Bar_Count) : (((i - 1) + TJAPlayer3.Skin.SongSelect_Bar_Count) % TJAPlayer3.Skin.SongSelect_Bar_Count);
|
||||
int n次のパネル番号 = ((i + nNowChange) % TJAPlayer3.Skin.SongSelect_Bar_Count);
|
||||
//int x = this.ptバーの基本座標[ n見た目の行番号 ].X + ( (int) ( ( this.ptバーの基本座標[ n次のパネル番号 ].X - this.ptバーの基本座標[ n見た目の行番号 ].X ) * ( ( (double) Math.Abs( this.n現在のスクロールカウンタ ) ) / 100.0 ) ) );
|
||||
int x = i選曲バーX座標;
|
||||
int xAnime = TJAPlayer3.Skin.SongSelect_Bar_X[n見た目の行番号] + ((int)((TJAPlayer3.Skin.SongSelect_Bar_X[n次のパネル番号] - TJAPlayer3.Skin.SongSelect_Bar_X[n見た目の行番号]) * (((double)Math.Abs(this.n現在のスクロールカウンタ)) / 100.0)));
|
||||
int xAnime = TJAPlayer3.Skin.SongSelect_Bar_X[n見た目の行番号] + ((int)((TJAPlayer3.Skin.SongSelect_Bar_X[n次のパネル番号] - TJAPlayer3.Skin.SongSelect_Bar_X[n見た目の行番号]) *
|
||||
fNowScrollAnime));
|
||||
|
||||
int y = TJAPlayer3.Skin.SongSelect_Bar_Y[n見た目の行番号] + ((int)((TJAPlayer3.Skin.SongSelect_Bar_Y[n次のパネル番号] - TJAPlayer3.Skin.SongSelect_Bar_Y[n見た目の行番号]) * (((double)Math.Abs(this.n現在のスクロールカウンタ)) / 100.0)));
|
||||
int y = TJAPlayer3.Skin.SongSelect_Bar_Y[n見た目の行番号] + ((int)((TJAPlayer3.Skin.SongSelect_Bar_Y[n次のパネル番号] - TJAPlayer3.Skin.SongSelect_Bar_Y[n見た目の行番号]) *
|
||||
fNowScrollAnime));
|
||||
|
||||
if ((i == barCenterNum) && (this.n現在のスクロールカウンタ == 0))
|
||||
if ((i == barCenterNum) && ctScrollCounter.n現在の値 == ctScrollCounter.n終了値)
|
||||
{
|
||||
CTexture tx選択している曲のサブタイトル = null;
|
||||
|
||||
@ -2107,10 +2057,10 @@ namespace TJAPlayer3
|
||||
if (this.ttk選択している曲の曲名 != null)
|
||||
{
|
||||
ResolveTitleTexture(this.ttk選択している曲の曲名, TJAPlayer3.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device,
|
||||
xAnime + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[0] +
|
||||
xAnime + GetTitleOffsetX(this.stバー情報[nパネル番号].eバー種別) +
|
||||
(r現在選択中の曲.eノード種別 != C曲リストノード.Eノード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMoveX : centerMoveX / 1.1f) : 0),
|
||||
|
||||
y + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[1] -
|
||||
y + GetTitleOffsetY(this.stバー情報[nパネル番号].eバー種別) -
|
||||
(r現在選択中の曲.eノード種別 != C曲リストノード.Eノード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMove : centerMove / 1.1f) : 0));
|
||||
}
|
||||
}
|
||||
@ -2119,10 +2069,10 @@ namespace TJAPlayer3
|
||||
if (this.ttk選択している曲の曲名 != null)
|
||||
{
|
||||
ResolveTitleTexture(this.ttk選択している曲の曲名, TJAPlayer3.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device,
|
||||
xAnime + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[0] +
|
||||
xAnime + GetTitleOffsetX(this.stバー情報[nパネル番号].eバー種別) +
|
||||
(r現在選択中の曲.eノード種別 != C曲リストノード.Eノード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMoveX : centerMoveX / 1.1f) : 0),
|
||||
|
||||
y + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[1] -
|
||||
y + GetTitleOffsetY(this.stバー情報[nパネル番号].eバー種別) -
|
||||
(r現在選択中の曲.eノード種別 != C曲リストノード.Eノード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMove : centerMove / 1.1f) : 0));
|
||||
}
|
||||
}
|
||||
@ -2472,10 +2422,10 @@ namespace TJAPlayer3
|
||||
= new Dictionary<TitleTextureKey, CTexture>();
|
||||
|
||||
private Font ft曲リスト用フォント;
|
||||
private long nスクロールタイマ;
|
||||
public int n現在のスクロールカウンタ;
|
||||
//public int n現在のスクロールカウンタ;
|
||||
private int n現在の選択行;
|
||||
private int n目標のスクロールカウンタ;
|
||||
//private int n目標のスクロールカウンタ;
|
||||
private CCounter ctScrollCounter;
|
||||
|
||||
/*
|
||||
private readonly Point[] ptバーの座標 = new Point[] {
|
||||
@ -2495,6 +2445,42 @@ namespace TJAPlayer3
|
||||
private int nCurrentPosition = 0;
|
||||
private int nNumOfItems = 0;
|
||||
|
||||
private int nNowChange;
|
||||
|
||||
private int GetTitleOffsetX(Eバー種別 bar)
|
||||
{
|
||||
switch (bar)
|
||||
{
|
||||
case Eバー種別.Score:
|
||||
return TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[0];
|
||||
case Eバー種別.Box:
|
||||
return TJAPlayer3.Skin.SongSelect_Bar_Box_Offset[0];
|
||||
case Eバー種別.BackBox:
|
||||
return TJAPlayer3.Skin.SongSelect_Bar_BackBox_Offset[0];
|
||||
case Eバー種別.Random:
|
||||
return TJAPlayer3.Skin.SongSelect_Bar_Random_Offset[0];
|
||||
default:
|
||||
return TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[0];
|
||||
}
|
||||
}
|
||||
|
||||
private int GetTitleOffsetY(Eバー種別 bar)
|
||||
{
|
||||
switch (bar)
|
||||
{
|
||||
case Eバー種別.Score:
|
||||
return TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[1];
|
||||
case Eバー種別.Box:
|
||||
return TJAPlayer3.Skin.SongSelect_Bar_Box_Offset[1];
|
||||
case Eバー種別.BackBox:
|
||||
return TJAPlayer3.Skin.SongSelect_Bar_BackBox_Offset[1];
|
||||
case Eバー種別.Random:
|
||||
return TJAPlayer3.Skin.SongSelect_Bar_Random_Offset[1];
|
||||
default:
|
||||
return TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[1];
|
||||
}
|
||||
}
|
||||
|
||||
private void DrawBarCenter(CTexture texture, int x, int y, int moveX, int move, bool changeColor, bool drawOverlay, bool fullScaleOverlay)
|
||||
{
|
||||
if (changeColor)
|
||||
|
@ -396,6 +396,7 @@ namespace TJAPlayer3
|
||||
}
|
||||
this.nJPOSSCROLL = new int[ 5 ];
|
||||
this.bLEVELHOLD = new bool[]{ false, false, false, false, false };
|
||||
this.JPOSCROLLX = new int[5];
|
||||
|
||||
|
||||
// Double play set here
|
||||
@ -661,6 +662,12 @@ namespace TJAPlayer3
|
||||
public int nMine;
|
||||
}
|
||||
|
||||
public int[] JPOSCROLLX = new int[5];
|
||||
public int GetJPOSCROLLX(int player)
|
||||
{
|
||||
double screen_ratio = TJAPlayer3.Skin.Resolution[0] / 1280.0;
|
||||
return (int)(JPOSCROLLX[player] * screen_ratio);
|
||||
}
|
||||
public int[] NoteOriginX
|
||||
{
|
||||
get
|
||||
@ -668,29 +675,38 @@ namespace TJAPlayer3
|
||||
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)
|
||||
TJAPlayer3.Skin.nScrollField_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * 0) + GetJPOSCROLLX(0),
|
||||
TJAPlayer3.Skin.nScrollField_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * 1) + GetJPOSCROLLX(1),
|
||||
TJAPlayer3.Skin.nScrollField_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * 2) + GetJPOSCROLLX(2),
|
||||
TJAPlayer3.Skin.nScrollField_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * 3) + GetJPOSCROLLX(3),
|
||||
TJAPlayer3.Skin.nScrollField_5P[0] + (TJAPlayer3.Skin.Game_UIMove_5P[0] * 4) + GetJPOSCROLLX(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)
|
||||
TJAPlayer3.Skin.nScrollField_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * 0) + GetJPOSCROLLX(0),
|
||||
TJAPlayer3.Skin.nScrollField_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * 1) + GetJPOSCROLLX(1),
|
||||
TJAPlayer3.Skin.nScrollField_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * 2) + GetJPOSCROLLX(2),
|
||||
TJAPlayer3.Skin.nScrollField_4P[0] + (TJAPlayer3.Skin.Game_UIMove_4P[0] * 3) + GetJPOSCROLLX(3)
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
return TJAPlayer3.Skin.nScrollFieldX;
|
||||
return new int[] {
|
||||
TJAPlayer3.Skin.nScrollFieldX[0] + GetJPOSCROLLX(0),
|
||||
TJAPlayer3.Skin.nScrollFieldX[1] + GetJPOSCROLLX(1)
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Unused
|
||||
public int[] JPOSCROLLY = new int[5];
|
||||
public int GetJPOSCROLLY(int player)
|
||||
{
|
||||
return JPOSCROLLY[player];
|
||||
}
|
||||
public int[] NoteOriginY
|
||||
{
|
||||
get
|
||||
@ -698,25 +714,28 @@ namespace TJAPlayer3
|
||||
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)
|
||||
TJAPlayer3.Skin.nScrollField_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * 0) + GetJPOSCROLLY(0),
|
||||
TJAPlayer3.Skin.nScrollField_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * 1) + GetJPOSCROLLY(1),
|
||||
TJAPlayer3.Skin.nScrollField_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * 2) + GetJPOSCROLLY(2),
|
||||
TJAPlayer3.Skin.nScrollField_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * 3) + GetJPOSCROLLY(3),
|
||||
TJAPlayer3.Skin.nScrollField_5P[1] + (TJAPlayer3.Skin.Game_UIMove_5P[1] * 4) + GetJPOSCROLLY(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)
|
||||
TJAPlayer3.Skin.nScrollField_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * 0) + GetJPOSCROLLY(0),
|
||||
TJAPlayer3.Skin.nScrollField_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * 1) + GetJPOSCROLLY(1),
|
||||
TJAPlayer3.Skin.nScrollField_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * 2) + GetJPOSCROLLY(2),
|
||||
TJAPlayer3.Skin.nScrollField_4P[1] + (TJAPlayer3.Skin.Game_UIMove_4P[1] * 3) + GetJPOSCROLLY(3)
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
return TJAPlayer3.Skin.nScrollFieldY;
|
||||
return new int[] {
|
||||
TJAPlayer3.Skin.nScrollFieldY[0] + GetJPOSCROLLY(0),
|
||||
TJAPlayer3.Skin.nScrollFieldY[1] + GetJPOSCROLLY(1)
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3881,14 +3900,7 @@ namespace TJAPlayer3
|
||||
case 0xE2:
|
||||
if( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )
|
||||
{
|
||||
if (nPlayer == 0)
|
||||
{
|
||||
TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.t判定枠移動(dTX.listJPOSSCROLL[nJPOSSCROLL[nPlayer]].db移動時間, dTX.listJPOSSCROLL[nJPOSSCROLL[nPlayer]].n移動距離px, dTX.listJPOSSCROLL[nJPOSSCROLL[nPlayer]].n移動方向);
|
||||
}
|
||||
else
|
||||
{
|
||||
TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.t判定枠移動2(dTX.listJPOSSCROLL[nJPOSSCROLL[nPlayer]].db移動時間, dTX.listJPOSSCROLL[nJPOSSCROLL[nPlayer]].n移動距離px, dTX.listJPOSSCROLL[nJPOSSCROLL[nPlayer]].n移動方向);
|
||||
}
|
||||
TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.t判定枠移動(dTX.listJPOSSCROLL[nJPOSSCROLL[nPlayer]].db移動時間, dTX.listJPOSSCROLL[nJPOSSCROLL[nPlayer]].n移動距離px, dTX.listJPOSSCROLL[nJPOSSCROLL[nPlayer]].n移動方向, nPlayer);
|
||||
this.nJPOSSCROLL[ nPlayer ]++;
|
||||
pChip.bHit = true;
|
||||
}
|
||||
@ -4342,13 +4354,15 @@ namespace TJAPlayer3
|
||||
{
|
||||
this.t演奏位置の変更(0, i);
|
||||
this.actPlayInfo.NowMeasure[i] = 0;
|
||||
JPOSCROLLX[i] = 0;
|
||||
JPOSCROLLY[i] = 0;
|
||||
}
|
||||
TJAPlayer3.stage演奏ドラム画面.On活性化();
|
||||
for( int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++ )
|
||||
{
|
||||
this.chip現在処理中の連打チップ[ i ] = null;
|
||||
this.actChara.b風船連打中[i] = false;
|
||||
this.actChara.ChangeAnime(i, CAct演奏Drumsキャラクター.Anime.Normal, true);
|
||||
this.actChara.ReturnDefaultAnime(i, true);
|
||||
}
|
||||
this.bPAUSE = false;
|
||||
}
|
||||
|
@ -489,14 +489,15 @@ namespace TJAPlayer3
|
||||
TJAPlayer3.Tx.Characters_Balloon_Broke[this.iCurrentCharacter[i]][nNowCharaFrame[i]].Opacity = nowOpacity;
|
||||
TJAPlayer3.Tx.Characters_Balloon_Broke[this.iCurrentCharacter[i]][nNowCharaFrame[i]].vc拡大縮小倍率.X = charaScale;
|
||||
TJAPlayer3.Tx.Characters_Balloon_Broke[this.iCurrentCharacter[i]][nNowCharaFrame[i]].vc拡大縮小倍率.Y = charaScale;
|
||||
TJAPlayer3.Tx.Characters_Balloon_Broke[this.iCurrentCharacter[i]][nNowCharaFrame[i]].t2D描画(TJAPlayer3.app.Device,
|
||||
(TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0])
|
||||
+ chara_x,
|
||||
chara_y);
|
||||
TJAPlayer3.Tx.Characters_Balloon_Broke[this.iCurrentCharacter[i]][nNowCharaFrame[i]].t2D描画(TJAPlayer3.app.Device,
|
||||
TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLX(i) + chara_x,
|
||||
TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLY(i) + 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);
|
||||
TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画(
|
||||
TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLX(i) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0],
|
||||
TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLY(i) + TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, nowOpacity, true, player : i);
|
||||
|
||||
if (endAnime)
|
||||
{
|
||||
@ -515,14 +516,15 @@ namespace TJAPlayer3
|
||||
TJAPlayer3.Tx.Characters_Balloon_Miss[this.iCurrentCharacter[i]][nNowCharaFrame[i]].Opacity = nowOpacity;
|
||||
TJAPlayer3.Tx.Characters_Balloon_Miss[this.iCurrentCharacter[i]][nNowCharaFrame[i]].vc拡大縮小倍率.X = charaScale;
|
||||
TJAPlayer3.Tx.Characters_Balloon_Miss[this.iCurrentCharacter[i]][nNowCharaFrame[i]].vc拡大縮小倍率.Y = charaScale;
|
||||
TJAPlayer3.Tx.Characters_Balloon_Miss[this.iCurrentCharacter[i]][nNowCharaFrame[i]].t2D描画(TJAPlayer3.app.Device,
|
||||
(TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0])
|
||||
+ chara_x,
|
||||
chara_y);
|
||||
TJAPlayer3.Tx.Characters_Balloon_Miss[this.iCurrentCharacter[i]][nNowCharaFrame[i]].t2D描画(TJAPlayer3.app.Device,
|
||||
TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLX(i) + chara_x,
|
||||
TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLY(i) + 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);
|
||||
TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画(
|
||||
TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLX(i) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0],
|
||||
TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLY(i) + TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, nowOpacity, true, player : i);
|
||||
|
||||
if (endAnime)
|
||||
{
|
||||
@ -536,20 +538,21 @@ namespace TJAPlayer3
|
||||
TJAPlayer3.Tx.Characters_Balloon_Breaking[this.iCurrentCharacter[i]][nNowCharaFrame[i]].vc拡大縮小倍率.X = charaScale;
|
||||
TJAPlayer3.Tx.Characters_Balloon_Breaking[this.iCurrentCharacter[i]][nNowCharaFrame[i]].vc拡大縮小倍率.Y = charaScale;
|
||||
TJAPlayer3.Tx.Characters_Balloon_Breaking[this.iCurrentCharacter[i]][nNowCharaFrame[i]].t2D描画(TJAPlayer3.app.Device,
|
||||
(TJAPlayer3.Skin.nScrollFieldX[0] - TJAPlayer3.stage演奏ドラム画面.actLaneTaiko.nDefaultJudgePos[0, 0]) +
|
||||
chara_x,
|
||||
chara_y);
|
||||
TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLX(i) + chara_x,
|
||||
TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLY(i) + 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);
|
||||
TJAPlayer3.stage演奏ドラム画面.PuchiChara.On進行描画(
|
||||
TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLX(i) + TJAPlayer3.Skin.Game_PuchiChara_BalloonX[0],
|
||||
TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLY(i) + TJAPlayer3.Skin.Game_PuchiChara_BalloonY[i], false, 255, true, player : i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void ReturnDefaultAnime(int player, bool resetCounter)
|
||||
public void ReturnDefaultAnime(int player, bool resetCounter)
|
||||
{
|
||||
if (TJAPlayer3.stage演奏ドラム画面.bIsGOGOTIME[player] && TJAPlayer3.Skin.Characters_GoGoTime_Ptn[this.iCurrentCharacter[player]] != 0)
|
||||
{
|
||||
|
@ -286,8 +286,10 @@ namespace TJAPlayer3
|
||||
nX = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_X[this.st状態[i].nPlayer];
|
||||
nY = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_Y[this.st状態[i].nPlayer];
|
||||
}
|
||||
nX += TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLX(this.st状態[i].nPlayer);
|
||||
nY += TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLY(this.st状態[i].nPlayer);
|
||||
|
||||
switch( st状態[ i ].judge )
|
||||
switch ( st状態[ i ].judge )
|
||||
{
|
||||
case E判定.Perfect:
|
||||
case E判定.Great:
|
||||
@ -375,6 +377,8 @@ namespace TJAPlayer3
|
||||
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.stage演奏ドラム画面.GetJPOSCROLLX(this.st状態[i].nPlayer);
|
||||
y += TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLY(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);
|
||||
|
@ -35,16 +35,12 @@ namespace TJAPlayer3
|
||||
this.stBranch[i].nBranchレイヤー透明度 = 0;
|
||||
this.stBranch[i].nBranch文字透明度 = 0;
|
||||
this.stBranch[i].nY座標 = 0;
|
||||
|
||||
this.n総移動時間[i] = -1;
|
||||
}
|
||||
this.ctゴーゴー = new CCounter();
|
||||
|
||||
|
||||
this.n総移動時間 = -1;
|
||||
this.n総移動時間2 = -1;
|
||||
this.nDefaultJudgePos[0, 0] = TJAPlayer3.Skin.nScrollFieldX[0];
|
||||
this.nDefaultJudgePos[0, 1] = TJAPlayer3.Skin.nScrollFieldY[0];
|
||||
this.nDefaultJudgePos[1, 0] = TJAPlayer3.Skin.nScrollFieldX[1];
|
||||
this.nDefaultJudgePos[1, 1] = TJAPlayer3.Skin.nScrollFieldY[1];
|
||||
this.ctゴーゴー炎 = new CCounter(0, 6, 50, TJAPlayer3.Timer);
|
||||
base.On活性化();
|
||||
}
|
||||
@ -56,10 +52,6 @@ namespace TJAPlayer3
|
||||
this.st状態[i].ct進行 = null;
|
||||
this.stBranch[i].ct分岐アニメ進行 = null;
|
||||
}
|
||||
TJAPlayer3.Skin.nScrollFieldX[0] = this.nDefaultJudgePos[0, 0];
|
||||
TJAPlayer3.Skin.nScrollFieldY[0] = this.nDefaultJudgePos[0, 1];
|
||||
TJAPlayer3.Skin.nScrollFieldX[1] = this.nDefaultJudgePos[1, 0];
|
||||
TJAPlayer3.Skin.nScrollFieldY[1] = this.nDefaultJudgePos[1, 1];
|
||||
this.ctゴーゴー = null;
|
||||
|
||||
base.On非活性化();
|
||||
@ -723,45 +715,27 @@ namespace TJAPlayer3
|
||||
}
|
||||
var nTime = (long)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
|
||||
|
||||
if (this.n総移動時間 != -1)
|
||||
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
|
||||
{
|
||||
if (n移動方向 == 1)
|
||||
if (this.n総移動時間[i] != -1)
|
||||
{
|
||||
TJAPlayer3.Skin.nScrollFieldX[0] = this.n移動開始X + (int)((((int)nTime - this.n移動開始時刻) / (double)(this.n総移動時間)) * this.n移動距離px);
|
||||
TJAPlayer3.stage演奏ドラム画面.FlyingNotes.StartPointX[0] = this.n移動開始X + (int)((((int)nTime - this.n移動開始時刻) / (double)(this.n総移動時間)) * this.n移動距離px);
|
||||
}
|
||||
else
|
||||
{
|
||||
TJAPlayer3.Skin.nScrollFieldX[0] = this.n移動開始X - (int)((((int)nTime - this.n移動開始時刻) / (double)(this.n総移動時間)) * this.n移動距離px);
|
||||
TJAPlayer3.stage演奏ドラム画面.FlyingNotes.StartPointX[0] = this.n移動開始X - (int)((((int)nTime - this.n移動開始時刻) / (double)(this.n総移動時間)) * this.n移動距離px);
|
||||
}
|
||||
if (n移動方向[i] == 1)
|
||||
{
|
||||
TJAPlayer3.stage演奏ドラム画面.JPOSCROLLX[i] = this.n移動開始X[i] + (int)((((int)nTime - this.n移動開始時刻[i]) / (double)(this.n総移動時間[i])) * this.n移動距離px[i]);
|
||||
//TJAPlayer3.stage演奏ドラム画面.FlyingNotes.StartPointX[i] = this.n移動開始X[i] + (int)((((int)nTime - this.n移動開始時刻[i]) / (double)(this.n総移動時間[i])) * this.n移動距離px[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
TJAPlayer3.stage演奏ドラム画面.JPOSCROLLX[i] = this.n移動開始X[i] - (int)((((int)nTime - this.n移動開始時刻[i]) / (double)(this.n総移動時間[i])) * this.n移動距離px[i]);
|
||||
//TJAPlayer3.stage演奏ドラム画面.FlyingNotes.StartPointX[i] = this.n移動開始X[i] - (int)((((int)nTime - this.n移動開始時刻[i]) / (double)(this.n総移動時間[i])) * this.n移動距離px[i]);
|
||||
}
|
||||
|
||||
if (((int)nTime) > this.n移動開始時刻 + this.n総移動時間)
|
||||
{
|
||||
this.n総移動時間 = -1;
|
||||
TJAPlayer3.Skin.nScrollFieldX[0] = this.n移動目的場所X;
|
||||
TJAPlayer3.stage演奏ドラム画面.FlyingNotes.StartPointX[0] = this.n移動目的場所X;
|
||||
}
|
||||
}
|
||||
if (this.n総移動時間2 != -1)
|
||||
{
|
||||
if (n移動方向2 == 1)
|
||||
{
|
||||
TJAPlayer3.Skin.nScrollFieldX[1] = this.n移動開始X2 + (int)((((int)nTime - this.n移動開始時刻2) / (double)(this.n総移動時間2)) * this.n移動距離px2);
|
||||
TJAPlayer3.Skin.Game_Effect_FlyingNotes_StartPoint_X[1] = this.n移動開始X2 + (int)((((int)nTime - this.n移動開始時刻2) / (double)(this.n総移動時間2)) * this.n移動距離px2);
|
||||
}
|
||||
else
|
||||
{
|
||||
TJAPlayer3.Skin.nScrollFieldX[1] = this.n移動開始X2 - (int)((((int)nTime - this.n移動開始時刻2) / (double)(this.n総移動時間2)) * this.n移動距離px2);
|
||||
TJAPlayer3.Skin.Game_Effect_FlyingNotes_StartPoint_X[1] = this.n移動開始X2 - (int)((((int)nTime - this.n移動開始時刻2) / (double)(this.n総移動時間2)) * this.n移動距離px2);
|
||||
}
|
||||
|
||||
|
||||
if (((int)nTime) > this.n移動開始時刻2 + this.n総移動時間2)
|
||||
{
|
||||
this.n総移動時間2 = -1;
|
||||
TJAPlayer3.Skin.nScrollFieldX[1] = this.n移動目的場所X2;
|
||||
TJAPlayer3.stage演奏ドラム画面.FlyingNotes.StartPointX[1] = this.n移動目的場所X2;
|
||||
if (((int)nTime) > this.n移動開始時刻[i] + this.n総移動時間[i])
|
||||
{
|
||||
this.n総移動時間[i] = -1;
|
||||
TJAPlayer3.stage演奏ドラム画面.JPOSCROLLX[i] = this.n移動目的場所X[i];
|
||||
//TJAPlayer3.stage演奏ドラム画面.FlyingNotes.StartPointX[i] = this.n移動目的場所X[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -794,7 +768,9 @@ namespace TJAPlayer3
|
||||
TJAPlayer3.Tx.Judge_Frame.b加算合成 = TJAPlayer3.Skin.Game_JudgeFrame_AddBlend;
|
||||
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]));
|
||||
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]));
|
||||
}
|
||||
}
|
||||
|
||||
@ -886,6 +862,8 @@ namespace TJAPlayer3
|
||||
x = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_X[i];
|
||||
y = TJAPlayer3.Skin.Game_Effects_Hit_Explosion_Y[i];
|
||||
}
|
||||
x += TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLX(i);
|
||||
y += TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLY(i);
|
||||
|
||||
switch (st状態[i].judge)
|
||||
{
|
||||
@ -974,31 +952,19 @@ namespace TJAPlayer3
|
||||
TJAPlayer3.stage演奏ドラム画面.actLane.t分岐レイヤー_コース変化(n現在, n次回, nPlayer);
|
||||
}
|
||||
|
||||
public void t判定枠移動(double db移動時間, int n移動px, int n移動方向)
|
||||
public void t判定枠移動(double db移動時間, int n移動px, int n移動方向, int nPlayer)
|
||||
{
|
||||
this.n移動開始時刻 = (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
|
||||
this.n移動開始X = TJAPlayer3.Skin.nScrollFieldX[0];
|
||||
this.n総移動時間 = (int)(db移動時間 * 1000);
|
||||
this.n移動方向 = n移動方向;
|
||||
this.n移動距離px = n移動px;
|
||||
this.n移動開始時刻[nPlayer] = (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
|
||||
this.n移動開始X[nPlayer] = TJAPlayer3.stage演奏ドラム画面.JPOSCROLLX[nPlayer];
|
||||
this.n総移動時間[nPlayer] = (int)(db移動時間 * 1000);
|
||||
this.n移動方向[nPlayer] = n移動方向;
|
||||
this.n移動距離px[nPlayer] = n移動px;
|
||||
if (n移動方向 == 0)
|
||||
this.n移動目的場所X = TJAPlayer3.Skin.nScrollFieldX[0] - n移動px;
|
||||
this.n移動目的場所X[nPlayer] = TJAPlayer3.stage演奏ドラム画面.JPOSCROLLX[nPlayer] - n移動px;
|
||||
else
|
||||
this.n移動目的場所X = TJAPlayer3.Skin.nScrollFieldX[0] + n移動px;
|
||||
this.n移動目的場所X[nPlayer] = TJAPlayer3.stage演奏ドラム画面.JPOSCROLLX[nPlayer] + n移動px;
|
||||
}
|
||||
|
||||
public void t判定枠移動2(double db移動時間, int n移動px, int n移動方向)
|
||||
{
|
||||
this.n移動開始時刻2 = (int)(CSound管理.rc演奏用タイマ.n現在時刻 * (((double)TJAPlayer3.ConfigIni.n演奏速度) / 20.0));
|
||||
this.n移動開始X2 = TJAPlayer3.Skin.nScrollFieldX[1];
|
||||
this.n総移動時間2 = (int)(db移動時間 * 1000);
|
||||
this.n移動方向2 = n移動方向;
|
||||
this.n移動距離px2 = n移動px;
|
||||
if (n移動方向 == 0)
|
||||
this.n移動目的場所X2 = TJAPlayer3.Skin.nScrollFieldX[1] - n移動px;
|
||||
else
|
||||
this.n移動目的場所X2 = TJAPlayer3.Skin.nScrollFieldX[1] + n移動px;
|
||||
}
|
||||
#region[ private ]
|
||||
//-----------------
|
||||
//private CTexture txLane;
|
||||
@ -1056,21 +1022,12 @@ namespace TJAPlayer3
|
||||
}
|
||||
|
||||
|
||||
private int n総移動時間;
|
||||
private int n移動開始X;
|
||||
private int n移動開始時刻;
|
||||
private int n移動距離px;
|
||||
private int n移動目的場所X;
|
||||
private int n移動方向;
|
||||
private int n総移動時間2;
|
||||
private int n移動開始X2;
|
||||
private int n移動開始時刻2;
|
||||
private int n移動距離px2;
|
||||
private int n移動目的場所X2;
|
||||
private int n移動方向2;
|
||||
|
||||
internal int[,] nDefaultJudgePos = new int[5, 2];
|
||||
|
||||
private int[] n総移動時間 = new int[5];
|
||||
private int[] n移動開始X = new int[5];
|
||||
private int[] n移動開始時刻 = new int[5];
|
||||
private int[] n移動距離px = new int[5];
|
||||
private int[] n移動目的場所X = new int[5];
|
||||
private int[] n移動方向 = new int[5];
|
||||
|
||||
//-----------------
|
||||
#endregion
|
||||
|
@ -78,8 +78,8 @@ namespace TJAPlayer3
|
||||
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]);
|
||||
x += (moveValue * TJAPlayer3.Skin.Game_Judge_Move[0]) + TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLX(j);
|
||||
y += (moveValue * TJAPlayer3.Skin.Game_Judge_Move[1]) + TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLY(j);
|
||||
|
||||
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);
|
||||
|
@ -2034,12 +2034,11 @@ namespace TJAPlayer3
|
||||
|
||||
switch (TJAPlayer3.ConfigIni.nPlayerCount)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
nSenotesX = TJAPlayer3.Skin.nSENotesX[nPlayer];
|
||||
nSenotesY = TJAPlayer3.Skin.nSENotesY[nPlayer];
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
nSenotesX = TJAPlayer3.Skin.nSENotes_4P[0];
|
||||
@ -2052,7 +2051,7 @@ namespace TJAPlayer3
|
||||
}
|
||||
|
||||
this.ct手つなぎ.t進行Loop();
|
||||
int nHand = this.ct手つなぎ.n現在の値 < 30 ? this.ct手つなぎ.n現在の値 : 60 - this.ct手つなぎ.n現在の値;
|
||||
float fHand = (this.ct手つなぎ.n現在の値 < 30 ? this.ct手つなぎ.n現在の値 : 60 - this.ct手つなぎ.n現在の値) / 30.0f;
|
||||
|
||||
|
||||
//x = ( x ) - ( ( int ) ( (TJAPlayer3.Skin.Game_Note_Size[0] * pChip.dbチップサイズ倍率 ) / 2.0 ) );
|
||||
@ -2080,17 +2079,29 @@ namespace TJAPlayer3
|
||||
case 0x1A:
|
||||
case 0x1B:
|
||||
{
|
||||
int moveX = (int)(fHand * TJAPlayer3.Skin.Game_Notes_Arm_Move[0]);
|
||||
int moveY = (int)(fHand * TJAPlayer3.Skin.Game_Notes_Arm_Move[1]);
|
||||
if (TJAPlayer3.ConfigIni.eSTEALTH[TJAPlayer3.GetActualPlayer(nPlayer)] == Eステルスモード.OFF && pChip.bShow)
|
||||
{
|
||||
if (nPlayer == 0)
|
||||
if (nPlayer != TJAPlayer3.ConfigIni.nPlayerCount - 1)
|
||||
{
|
||||
TJAPlayer3.Tx.Notes_Arm?.t2D上下反転描画(device, x + 25, (y + 74) + nHand);
|
||||
TJAPlayer3.Tx.Notes_Arm?.t2D上下反転描画(device, x + 60, (y + 104) - nHand);
|
||||
//上から下
|
||||
TJAPlayer3.Tx.Notes_Arm?.t2D上下反転描画(device,
|
||||
x + TJAPlayer3.Skin.Game_Notes_Arm_Offset_Left_X[0] + moveX,
|
||||
y + TJAPlayer3.Skin.Game_Notes_Arm_Offset_Left_Y[0] + moveY);
|
||||
TJAPlayer3.Tx.Notes_Arm?.t2D上下反転描画(device,
|
||||
x + TJAPlayer3.Skin.Game_Notes_Arm_Offset_Right_X[0] - moveX,
|
||||
y + TJAPlayer3.Skin.Game_Notes_Arm_Offset_Right_Y[0] - moveY);
|
||||
}
|
||||
else if (nPlayer == 1)
|
||||
if (nPlayer != 0)
|
||||
{
|
||||
TJAPlayer3.Tx.Notes_Arm?.t2D描画(device, x + 25, (y - 44) + nHand);
|
||||
TJAPlayer3.Tx.Notes_Arm?.t2D描画(device, x + 60, (y - 14) - nHand);
|
||||
//下から上
|
||||
TJAPlayer3.Tx.Notes_Arm?.t2D描画(device,
|
||||
x + TJAPlayer3.Skin.Game_Notes_Arm_Offset_Left_X[1] + moveX,
|
||||
y + TJAPlayer3.Skin.Game_Notes_Arm_Offset_Left_Y[1] + moveY);
|
||||
TJAPlayer3.Tx.Notes_Arm?.t2D描画(device,
|
||||
x + TJAPlayer3.Skin.Game_Notes_Arm_Offset_Right_X[1] - moveX,
|
||||
y + TJAPlayer3.Skin.Game_Notes_Arm_Offset_Right_Y[1] - moveY);
|
||||
}
|
||||
NotesManager.DisplayNote(nPlayer, x, y, pChip, num9);
|
||||
NotesManager.DisplaySENotes(nPlayer, x + nSenotesX, y + nSenotesY, pChip);
|
||||
@ -2125,12 +2136,11 @@ namespace TJAPlayer3
|
||||
|
||||
switch (TJAPlayer3.ConfigIni.nPlayerCount)
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
nSenotesX = TJAPlayer3.Skin.nSENotesX[nPlayer];
|
||||
nSenotesY = TJAPlayer3.Skin.nSENotesY[nPlayer];
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
nSenotesX = TJAPlayer3.Skin.nSENotes_4P[0];
|
||||
|
@ -129,8 +129,8 @@ namespace TJAPlayer3
|
||||
|
||||
double value = (Flying[i].Counter.n現在の値 / 140.0);
|
||||
|
||||
Flying[i].X = StartPointX[Flying[i].Player] + (movingDistanceX * value);
|
||||
Flying[i].Y = TJAPlayer3.Skin.Game_Effect_FlyingNotes_StartPoint_Y[Flying[i].Player] + (int)(movingDistanceY * value);
|
||||
Flying[i].X = StartPointX[Flying[i].Player] + TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLX(Flying[i].Player) + (movingDistanceX * value);
|
||||
Flying[i].Y = TJAPlayer3.Skin.Game_Effect_FlyingNotes_StartPoint_Y[Flying[i].Player] + TJAPlayer3.stage演奏ドラム画面.GetJPOSCROLLX(Flying[i].Player) + (int)(movingDistanceY * value);
|
||||
Flying[i].Y += Math.Sin(value * Math.PI) * (Flying[i].Player == 0 ? -TJAPlayer3.Skin.Game_Effect_FlyingNotes_Sine : TJAPlayer3.Skin.Game_Effect_FlyingNotes_Sine);
|
||||
|
||||
if (TJAPlayer3.Skin.Game_Effect_FlyingNotes_IsUsingEasing)
|
||||
|
@ -23,6 +23,19 @@ Game_SENote_Size=136,30
|
||||
Game_Notes_Interval=960
|
||||
|
||||
|
||||
Game_Notes_Arm_Offset_Left_X=25,25
|
||||
|
||||
Game_Notes_Arm_Offset_Right_X=60,60
|
||||
|
||||
|
||||
Game_Notes_Arm_Offset_Left_Y=74,-44
|
||||
|
||||
Game_Notes_Arm_Offset_Right_Y=104,-14
|
||||
|
||||
|
||||
Game_Notes_Arm_Move=0,30
|
||||
|
||||
|
||||
Game_Judge_Meter=0,360
|
||||
|
||||
Game_Judge_Meter_Perfect=102,494
|
||||
|
@ -14,6 +14,9 @@ SongSelect_Bar_Anim_X=0,600,500,400,0,-400,-500,-600,0
|
||||
SongSelect_Bar_Anim_Y=0,1800,1500,1200,0,-1200,-1500,-1800,0
|
||||
|
||||
|
||||
SongSelect_Scroll_Interval=0.12
|
||||
|
||||
|
||||
SongSelect_Bar_Title_Offset=316,62
|
||||
|
||||
SongSelect_Bar_SubTitle_Offset=316,90
|
||||
@ -48,6 +51,9 @@ SongSelect_FavoriteStatus_Offset=90,30
|
||||
|
||||
|
||||
SongSelect_Bar_Title_Offset=316,62
|
||||
SongSelect_Bar_Box_Offset=316,62
|
||||
SongSelect_Bar_BackBox_Offset=316,62
|
||||
SongSelect_Bar_Random_Offset=316,62
|
||||
|
||||
SongSelect_Bar_SubTitle_Offset=316,90
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user