From 17d5a5079c85cb403fcbaf9b7425f07e67c9e880 Mon Sep 17 00:00:00 2001 From: Takkkom <76614532+Takkkom@users.noreply.github.com> Date: Fri, 3 Jun 2022 14:03:53 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=97=E3=83=81=E3=82=AD=E3=83=A3=E3=83=A9?= =?UTF-8?q?=E3=82=92=E5=88=86=E9=9B=A2=20(#232)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * プチキャラを分離 * commit漏れ --- TJAPlayer3/Character/PuchiChara.cs | 52 +++++++++--------- TJAPlayer3/Common/CSkin.cs | 1 + TJAPlayer3/Stages/01.StartUp/TextureLoader.cs | 20 +++++-- .../Stages/06.SongLoading/FastRender.cs | 2 +- TJAPlayer3/Stages/11.Heya/CStageHeya.cs | 8 +-- Test/Global/PuchiChara/0.png | Bin 9987 -> 0 bytes Test/Global/PuchiChara/0/Chara.png | Bin 0 -> 13029 bytes 7 files changed, 48 insertions(+), 35 deletions(-) delete mode 100644 Test/Global/PuchiChara/0.png create mode 100644 Test/Global/PuchiChara/0/Chara.png diff --git a/TJAPlayer3/Character/PuchiChara.cs b/TJAPlayer3/Character/PuchiChara.cs index d402ada0..d0ec54de 100644 --- a/TJAPlayer3/Character/PuchiChara.cs +++ b/TJAPlayer3/Character/PuchiChara.cs @@ -59,14 +59,16 @@ namespace TJAPlayer3 if (Counter == null || SineCounter == null || TJAPlayer3.Tx.PuchiChara == null) return base.On進行描画(); Counter.t進行Loop(); SineCounter.t進行LoopDb(); - SineCounterIdle.t進行Loop(); - + SineCounterIdle.t進行Loop(); + + int p = TJAPlayer3.GetActualPlayer(player); + /* TJAPlayer3.act文字コンソール.tPrint(700, 500, C文字コンソール.Eフォント種別.白, Counter.n現在の値.ToString()); TJAPlayer3.act文字コンソール.tPrint(700, 520, C文字コンソール.Eフォント種別.白, SineCounter.n現在の値.ToString()); TJAPlayer3.act文字コンソール.tPrint(700, 540, C文字コンソール.Eフォント種別.白, SineCounterIdle.n現在の値.ToString()); - */ - + */ + if (inGame) sineY = (double)SineCounter.n現在の値; else @@ -76,32 +78,30 @@ namespace TJAPlayer3 sineY = Math.Sin(sineY * (Math.PI / 180)) * (TJAPlayer3.Skin.Game_PuchiChara_Sine * (isBalloon ? TJAPlayer3.Skin.Game_PuchiChara_Scale[1] : TJAPlayer3.Skin.Game_PuchiChara_Scale[0])); - // TJAPlayer3.act文字コンソール.tPrint(700, 580, C文字コンソール.Eフォント種別.白, sineY.ToString()); - - TJAPlayer3.Tx.PuchiChara.vc拡大縮小倍率 = new Vector3((isBalloon ? TJAPlayer3.Skin.Game_PuchiChara_Scale[1] : TJAPlayer3.Skin.Game_PuchiChara_Scale[0])); - TJAPlayer3.Tx.PuchiChara.Opacity = alpha; + // TJAPlayer3.act文字コンソール.tPrint(700, 580, C文字コンソール.Eフォント種別.白, sineY.ToString()); - // (isGrowing ? TJAPlayer3.Skin.Game_PuchiChara[1] : 0) => Height - - /* To do : - ** - ** - Yellow light color filter when isGrowing is true - */ - - int p = TJAPlayer3.GetActualPlayer(player); - - int puriChar = Math.Max(0, Math.Min(TJAPlayer3.Skin.Puchichara_Ptn - 1, TJAPlayer3.NamePlateConfig.data.PuchiChara[p])); - - int puriColumn = puriChar % 5; - int puriRow = puriChar / 5; + int puriChar = Math.Max(0, Math.Min(TJAPlayer3.Skin.Puchichara_Ptn - 1, TJAPlayer3.NamePlateConfig.data.PuchiChara[p])); - int adjustedX = x - 32; - int adjustedY = y - 32; + var chara = TJAPlayer3.Tx.PuchiChara[puriChar]; - TJAPlayer3.Tx.PuchiChara.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, adjustedX, adjustedY + (int)sineY, new Rectangle((Counter.n現在の値 + 2 * puriColumn) * TJAPlayer3.Skin.Game_PuchiChara[0], puriRow * TJAPlayer3.Skin.Game_PuchiChara[1], TJAPlayer3.Skin.Game_PuchiChara[0], TJAPlayer3.Skin.Game_PuchiChara[1])); + if (chara != null) + { + chara.vc拡大縮小倍率 = new Vector3((isBalloon ? TJAPlayer3.Skin.Game_PuchiChara_Scale[1] : TJAPlayer3.Skin.Game_PuchiChara_Scale[0])); + chara.Opacity = alpha; + + // (isGrowing ? TJAPlayer3.Skin.Game_PuchiChara[1] : 0) => Height + + /* To do : + ** + ** - Yellow light color filter when isGrowing is true + */ + + int adjustedX = x - 32; + int adjustedY = y - 32; + + chara.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, adjustedX, adjustedY + (int)sineY, new Rectangle((Counter.n現在の値 + 2) * TJAPlayer3.Skin.Game_PuchiChara[0], 0, TJAPlayer3.Skin.Game_PuchiChara[0], TJAPlayer3.Skin.Game_PuchiChara[1])); + } - // TJAPlayer3.Tx.PuchiChara.t2D中心基準描画(TJAPlayer3.app.Device, x, y + (int)sineY, new Rectangle((Counter.n現在の値 + 2 * puriColumn) * TJAPlayer3.Skin.Game_PuchiChara[0], puriRow * TJAPlayer3.Skin.Game_PuchiChara[1], TJAPlayer3.Skin.Game_PuchiChara[0], TJAPlayer3.Skin.Game_PuchiChara[1])); - return base.On進行描画(); } diff --git a/TJAPlayer3/Common/CSkin.cs b/TJAPlayer3/Common/CSkin.cs index d071feb7..8b82cd76 100644 --- a/TJAPlayer3/Common/CSkin.cs +++ b/TJAPlayer3/Common/CSkin.cs @@ -2629,6 +2629,7 @@ namespace TJAPlayer3 #region Puchichara public int Puchichara_Ptn; + public string[] Puchicharas_Name; #endregion diff --git a/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs b/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs index c92fc43c..27cbbb94 100644 --- a/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs +++ b/TJAPlayer3/Stages/01.StartUp/TextureLoader.cs @@ -692,14 +692,26 @@ namespace TJAPlayer3 DanC_Small_ExamCymbol = TxC(GAME + DANC + @"Small_ExamCymbol.png"); DanC_ExamCymbol = TxC(GAME + DANC + @"ExamCymbol.png"); DanC_MiniNumber = TxC(GAME + DANC + @"MiniNumber.png"); - + #endregion #region PuchiChara - PuchiChara = TxCGlobal(PUCHICHARA + @"0.png"); + var puchicharaDirs = System.IO.Directory.GetDirectories(TJAPlayer3.strEXEのあるフォルダ + GLOBAL + PUCHICHARA); + TJAPlayer3.Skin.Puchichara_Ptn = puchicharaDirs.Length; - TJAPlayer3.Skin.Puchichara_Ptn = 5 * Math.Max(1, (PuchiChara.szテクスチャサイズ.Height / 256)); + PuchiChara = new CTexture[TJAPlayer3.Skin.Puchichara_Ptn]; + TJAPlayer3.Skin.Puchicharas_Name = new string[TJAPlayer3.Skin.Puchichara_Ptn]; + + for (int i = 0; i < TJAPlayer3.Skin.Puchichara_Ptn; i++) + { + PuchiChara[i] = TxCAbsolute($@"{puchicharaDirs[i]}\Chara.png"); + PuchiChara[i].vc拡大縮小倍率 = new SharpDX.Vector3(TJAPlayer3.Skin.Game_PuchiChara_Scale[0]); + + TJAPlayer3.Skin.Puchicharas_Name[i] = System.IO.Path.GetFileName(puchicharaDirs[i]); + } + + ///TJAPlayer3.Skin.Puchichara_Ptn = 5 * Math.Max(1, (PuchiChara.szテクスチャサイズ.Height / 256)); #endregion @@ -1839,7 +1851,7 @@ namespace TJAPlayer3 public CTexture DanC_Screen; #endregion #region PuchiChara - public CTexture PuchiChara; + public CTexture[] PuchiChara; #endregion #region Training public CTexture Tokkun_DownBG, diff --git a/TJAPlayer3/Stages/06.SongLoading/FastRender.cs b/TJAPlayer3/Stages/06.SongLoading/FastRender.cs index a02ecb88..d38ceb52 100644 --- a/TJAPlayer3/Stages/06.SongLoading/FastRender.cs +++ b/TJAPlayer3/Stages/06.SongLoading/FastRender.cs @@ -30,7 +30,7 @@ namespace TJAPlayer3 NullCheckAndRender(ref TJAPlayer3.Tx.Mob[i]); } - NullCheckAndRender(ref TJAPlayer3.Tx.PuchiChara); + //NullCheckAndRender(ref TJAPlayer3.Tx.PuchiChara); } diff --git a/TJAPlayer3/Stages/11.Heya/CStageHeya.cs b/TJAPlayer3/Stages/11.Heya/CStageHeya.cs index d5e496f0..675ee7b3 100644 --- a/TJAPlayer3/Stages/11.Heya/CStageHeya.cs +++ b/TJAPlayer3/Stages/11.Heya/CStageHeya.cs @@ -228,13 +228,13 @@ namespace TJAPlayer3 if (i != 0) { - TJAPlayer3.Tx.PuchiChara?.tUpdateColor4(C変換.ColorToColor4(Color.DarkGray)); + TJAPlayer3.Tx.PuchiChara[pos]?.tUpdateColor4(C変換.ColorToColor4(Color.DarkGray)); TJAPlayer3.Tx.Heya_Center_Menu_Box_Slot?.tUpdateColor4(C変換.ColorToColor4(Color.DarkGray)); TJAPlayer3.Tx.Heya_Lock?.tUpdateColor4(C変換.ColorToColor4(Color.DarkGray)); } else { - TJAPlayer3.Tx.PuchiChara?.tUpdateColor4(C変換.ColorToColor4(Color.White)); + TJAPlayer3.Tx.PuchiChara[pos]?.tUpdateColor4(C変換.ColorToColor4(Color.White)); TJAPlayer3.Tx.Heya_Center_Menu_Box_Slot?.tUpdateColor4(C変換.ColorToColor4(Color.White)); TJAPlayer3.Tx.Heya_Lock?.tUpdateColor4(C変換.ColorToColor4(Color.White)); } @@ -244,13 +244,13 @@ namespace TJAPlayer3 int puriColumn = pos % 5; int puriRow = pos / 5; - TJAPlayer3.Tx.PuchiChara?.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 620 + 302 * i, 320 + (int)(PuchiChara.sineY), + TJAPlayer3.Tx.PuchiChara[pos]?.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, 620 + 302 * i, 320 + (int)(PuchiChara.sineY), new Rectangle((PuchiChara.Counter.n現在の値 + 2 * puriColumn) * TJAPlayer3.Skin.Game_PuchiChara[0], puriRow * TJAPlayer3.Skin.Game_PuchiChara[1], TJAPlayer3.Skin.Game_PuchiChara[0], TJAPlayer3.Skin.Game_PuchiChara[1])); - TJAPlayer3.Tx.PuchiChara?.tUpdateColor4(C変換.ColorToColor4(Color.White)); + TJAPlayer3.Tx.PuchiChara[pos]?.tUpdateColor4(C変換.ColorToColor4(Color.White)); #region [Database related values] diff --git a/Test/Global/PuchiChara/0.png b/Test/Global/PuchiChara/0.png deleted file mode 100644 index 1240b47d84eb25d3addf0ef9814493fab63638bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9987 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 literal 0 HcmV?d00001