1
0
mirror of synced 2024-11-24 15:40:22 +01:00

(Pre. v0.5.1) Added button borders for Dan song select confirm modal, add upper ticks for the dan song select screen, remove useless legacy assets

This commit is contained in:
0aubsq 2021-10-31 20:36:29 +01:00
parent 7669378c14
commit a060ad0c1b
4 changed files with 123 additions and 15 deletions

View File

@ -137,11 +137,6 @@ namespace TJAPlayer3
ModeSelect_Bar_Chara[i] = TxC(TITLE + @"ModeSelect_Bar_Chara_" + i.ToString() + ".png");
}
for(int i = 0; i < 6; i++)
{
ModeSelect_Bar_Text[i] = TxC(TITLE + @"ModeSelect_Bar_Text_" + i.ToString() + ".png");
}
ModeSelect_Bar[6] = TxC(TITLE + @"ModeSelect_Bar_Overlay.png");
#endregion
@ -267,8 +262,9 @@ namespace TJAPlayer3
Dani_Soul_Number = TxC(DANISELECT + "SoulNumber.png");
Dani_Exam_Number = TxC(DANISELECT + "ExamNumber.png");
Dani_Bar_Center = TxC(DANISELECT + "Bar_Center.png");
Dani_Plate = TxC(DANISELECT + "Plate.png");
for (int i = 0; i < 2; i++)
for (int i = 0; i < Challenge_Select.Length; i++)
Challenge_Select[i] = TxC(DANISELECT + "Challenge_Select_" + i.ToString() + ".png");
#endregion
@ -922,6 +918,7 @@ namespace TJAPlayer3
public CTexture[] NamePlate_Effect = new CTexture[5];
#endregion
#region 1_
public CTexture Title_Background,
Entry_Bar,
Entry_Bar_Text;
@ -934,7 +931,7 @@ namespace TJAPlayer3
public CTexture[] Entry_Donchan_Normal = new CTexture[13];
public CTexture[] ModeSelect_Bar = new CTexture[7];
public CTexture[] ModeSelect_Bar_Chara = new CTexture[6];
public CTexture[] ModeSelect_Bar_Text = new CTexture[6];
#endregion
#region 2_
@ -1005,8 +1002,9 @@ namespace TJAPlayer3
public CTexture Dani_Soul_Number;
public CTexture Dani_Exam_Number;
public CTexture Dani_Bar_Center;
public CTexture Dani_Plate;
public CTexture[] Challenge_Select = new CTexture[2];
public CTexture[] Challenge_Select = new CTexture[3];
#endregion

View File

@ -46,6 +46,8 @@ namespace TJAPlayer3
ctDanAnimeIn = new CCounter();
ctDaniIn = new CCounter(0, 3000, 1, TJAPlayer3.Timer);
ctDanTick = new CCounter(0, 510, 3, TJAPlayer3.Timer);
ctExamConditionsAnim = new CCounter(0, 4000, 1, TJAPlayer3.Timer);
stバー情報 = new STバー情報[TJAPlayer3.Songs管理.list曲ルート_Dan.Count];
@ -82,6 +84,7 @@ namespace TJAPlayer3
ctDaniMoveAnime.t進行();
ctDaniIn.t進行();
ctDanAnimeIn.t進行();
ctDanTick.t進行Loop();
ctExamConditionsAnim.t進行Loop();
@ -92,10 +95,10 @@ namespace TJAPlayer3
ctDanAnimeIn.t開始(0, 90, 2f, TJAPlayer3.Timer);
DaniInAnime = true;
}
}
}
#region [ ]
if (stバー情報.Length != 0)
{
TJAPlayer3.Tx.DanC_ExamType.vc拡大縮小倍率.X = 0.81f;
@ -131,6 +134,68 @@ namespace TJAPlayer3
#endregion
#region [Upper plates]
// stバー情報[n現在の選択行]
int tickWidth = TJAPlayer3.Tx.Dani_Plate.szテクスチャサイズ.Width / 7;
int tickHeight = TJAPlayer3.Tx.Dani_Plate.szテクスチャサイズ.Height;
for (int idx = -13; idx < 14; idx++)
{
int currentSong = n現在の選択行 + idx;
if (currentSong < 0)
continue;
if (currentSong >= stバー情報.Length)
break;
int xPos = 640 + idx * (tickWidth - 4);
int yPos = idx == 0 ? 25 : 10;
#region [Plate background]
TJAPlayer3.Tx.Dani_Plate.Opacity = 255;
TJAPlayer3.Tx.Dani_Plate.t2D拡大率考慮上中央基準描画(TJAPlayer3.app.Device, xPos, yPos, new Rectangle(0, 0, tickWidth, tickHeight));
#endregion
#region [Dan grade title]
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTextureTate(stバー情報[currentSong].ttkタイトル[stバー情報[currentSong].ttkタイトル.Length - 1])
.t2D拡大率考慮上中央基準描画(TJAPlayer3.app.Device, xPos + 2, yPos + 36);
#endregion
#region [Plate flash]
if (idx == 0)
{
TJAPlayer3.Tx.Dani_Plate.Opacity = Math.Abs(255 - ctDanTick.n現在の値);
TJAPlayer3.Tx.Dani_Plate.t2D拡大率考慮上中央基準描画(TJAPlayer3.app.Device, xPos, yPos, new Rectangle(tickWidth * 6, 0, tickWidth, tickHeight));
}
#endregion
#region [Goukaku plate]
int currentRank = Math.Min(stバー情報[currentSong].clearGrade, 6) - 1;
if (currentRank >= 0)
{
TJAPlayer3.Tx.DanResult_Rank.vc拡大縮小倍率.X = 0.24f;
TJAPlayer3.Tx.DanResult_Rank.vc拡大縮小倍率.Y = 0.24f;
TJAPlayer3.Tx.DanResult_Rank.t2D拡大率考慮上中央基準描画(TJAPlayer3.app.Device, xPos - 2, yPos - 24, new Rectangle(334 * currentRank, 0, 334, 334));
}
#endregion
}
#endregion
return 0;
}
@ -143,6 +208,8 @@ namespace TJAPlayer3
private CCounter ctDanAnimeIn;
private CCounter ctDanTick;
private CCounter ctDaniMoveAnime;
public int n現在の選択行;
@ -205,7 +272,7 @@ namespace TJAPlayer3
#region [Song information]
for (int i = 0; i < stバー情報[currentSong].ttkタイトル.Length; i++)
for (int i = 0; i < stバー情報[currentSong].ttkタイトル.Length - 1; i++)
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(stバー情報[currentSong].ttkタイトル[i]).t2D描画(TJAPlayer3.app.Device, scroll + 401 + Anime, 173 + i * 73);
for (int i = 0; i < stバー情報[currentSong].n曲難易度.Length; i++)
TJAPlayer3.Tx.Dani_Difficulty_Cymbol.t2D中心基準描画(TJAPlayer3.app.Device, scroll + 377 + Anime, 180 + i * 73, new Rectangle(stバー情報[currentSong].n曲難易度[i] * 53, 0, 53, 53));
@ -304,7 +371,7 @@ namespace TJAPlayer3
{
var song = TJAPlayer3.Songs管理.list曲ルート_Dan[i];
stバー情報[i].ttkタイトル = new TitleTextureKey[TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count];
stバー情報[i].ttkタイトル = new TitleTextureKey[TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count + 1];
stバー情報[i].n曲難易度 = new int[TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count];
stバー情報[i].n曲レベル = new int[TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count];
for (int j = 0; j < TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count; j++)
@ -313,7 +380,12 @@ namespace TJAPlayer3
stバー情報[i].n曲難易度[j] = song.DanSongs[j].Difficulty;
stバー情報[i].n曲レベル[j] = song.DanSongs[j].Level;
stバー情報[i].List_DanSongs = song.DanSongs;
}
}
string tmp = song.strタイトル.Substring(0, 2);
stバー情報[i].ttkタイトル[TJAPlayer3.Songs管理.list曲ルート_Dan[i].DanSongs.Count] = new TitleTextureKey(tmp, pfDanSong, Color.Black, Color.Transparent, 700);
stバー情報[i].clearGrade = song.arスコア[6]..nクリア[0];
stバー情報[i].txBarCenter = TJAPlayer3.tテクスチャの生成(Path.GetDirectoryName(song.arスコア[6]..) + @"\Bar_Center.png");
stバー情報[i].txDanPlate = TJAPlayer3.tテクスチャの生成(Path.GetDirectoryName(song.arスコア[6]..) + @"\Dan_Plate.png");

View File

@ -1,5 +1,7 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@ -34,7 +36,12 @@ namespace TJAPlayer3
TJAPlayer3.Tx.Challenge_Select[0].Opacity = TJAPlayer3.stage段位選択.bDifficultyIn ? ctBarIn.n現在の値 : 255 - ctBarOut.n現在の値;
TJAPlayer3.Tx.Challenge_Select[1].Opacity = TJAPlayer3.stage段位選択.bDifficultyIn ? ctBarIn.n現在の値 : 255 - ctBarOut.n現在の値;
TJAPlayer3.Tx.Challenge_Select[2].Opacity = TJAPlayer3.stage段位選択.bDifficultyIn ? ctBarIn.n現在の値 : 255 - ctBarOut.n現在の値;
TJAPlayer3.Tx.Challenge_Select[0].t2D描画(TJAPlayer3.app.Device, 0, 0);
TJAPlayer3.Tx.Challenge_Select[2].t2D描画(TJAPlayer3.app.Device, 228 + 228 * (2 - n現在の選択行), 0, new Rectangle(228 + 228 * (2 - n現在の選択行), 0, 228, 720));
TJAPlayer3.Tx.Challenge_Select[1].t2D描画(TJAPlayer3.app.Device, 0, 0);
if (ctBarIn.b終了値に達した && !TJAPlayer3.stage段位選択.b選択した)

View File

@ -2356,8 +2356,39 @@ namespace TJAPlayer3
}
return texture;
}
}
#region [Yes I do code bloating, what will you do ? =)]
public CTexture ResolveTitleTextureTate(TitleTextureKey titleTextureKey)
{
if (!_titledictionary.TryGetValue(titleTextureKey, out var texture))
{
texture = GenerateTitleTextureTate(titleTextureKey);
_titledictionary.Add(titleTextureKey, texture);
}
return texture;
}
private static CTexture GenerateTitleTextureTate(TitleTextureKey titleTextureKey)
{
using (var bmp = new Bitmap(titleTextureKey.cPrivateFastFont.DrawPrivateFont(
titleTextureKey.str文字, titleTextureKey.forecolor, titleTextureKey.backcolor, true)))
{
CTexture tx文字テクスチャ = TJAPlayer3.tテクスチャの生成(bmp, false);
if (tx文字テクスチャ.szテクスチャサイズ.Width > titleTextureKey.maxWidth)
{
tx文字テクスチャ.vc拡大縮小倍率.X = (float)(((double)titleTextureKey.maxWidth) / tx文字テクスチャ.szテクスチャサイズ.Width);
tx文字テクスチャ.vc拡大縮小倍率.Y = (float)(((double)titleTextureKey.maxWidth) / tx文字テクスチャ.szテクスチャサイズ.Width);
}
return tx文字テクスチャ;
}
}
#endregion
private static CTexture GenerateTitleTexture(TitleTextureKey titleTextureKey)
{
using (var bmp = new Bitmap(titleTextureKey.cPrivateFastFont.DrawPrivateFont(