1
0
mirror of synced 2025-02-17 19:09:25 +01:00

縦書きの文字に対応 (#401)

* 縦書きの文字に対応

* 少し改善

* Footerに対応
This commit is contained in:
Takkkom 2023-02-19 13:55:26 +09:00 committed by GitHub
parent 747f0ca553
commit 6d032372c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 406 additions and 82 deletions

View File

@ -547,8 +547,10 @@ namespace TJAPlayer3
#region[ ]
//大きさを計算していく。
int nWidth = 160;
int nHeight = 0;
for( int i = 0; i < strName.Length; i++ )
int nNowHeight = 0;
for ( int i = 0; i < strName.Length; i++ )
{
Size strSize = System.Windows.Forms.TextRenderer.MeasureText( strName[ i ], this._font, new Size( int.MaxValue, int.MaxValue ),
System.Windows.Forms.TextFormatFlags.NoPrefix |
@ -575,12 +577,30 @@ namespace TJAPlayer3
if( strName[ i ] == "ー" || strName[ i ] == "-" || strName[ i ] == "" || strName[ i ] == "<" || strName[ i ] == ">" || strName[ i ] == "(" || strName[ i ] == ")" || strName[ i ] == "「" || strName[ i ] == "」" || strName[ i ] == "[" || strName[ i ] == "]" )
{
nHeight += ( rect正確なサイズ.Width ) + 4;
nNowHeight += ( rect正確なサイズ.Width ) + 4;
}
else if( strName[ i ] == "_" )
{
nNowHeight += ( rect正確なサイズ.Height ) + 6;
}
else if( strName[ i ] == "_" ){ nHeight += ( rect正確なサイズ.Height ) + 6; }
else if( strName[ i ] == " " )
{ nHeight += ( 12 ); }
else { nHeight += ( rect正確なサイズ.Height ) + 10; }
{
nNowHeight += ( 12 );
}
else if (strName[i] == "\n")
{
nWidth += 12;
nNowHeight = 0;
}
else
{
nNowHeight += ( rect正確なサイズ.Height ) + 10;
}
if (nNowHeight > nHeight)
{
nHeight = nNowHeight;
}
//念のため解放
bmpDummy.Dispose();
@ -592,10 +612,11 @@ namespace TJAPlayer3
#endregion
Bitmap bmpCambus = new Bitmap( 160, nHeight );
Bitmap bmpCambus = new Bitmap(nWidth, nHeight );
Graphics Gcambus = Graphics.FromImage( bmpCambus );
//キャンバス作成→1文字ずつ作成してキャンバスに描画という形がよさそうかな?
int nNowPosX = 0;
int nNowPos = 0;
int nAdded = 0;
int nEdge補正X = 0;
@ -759,9 +780,18 @@ namespace TJAPlayer3
if( i == 0 )
{
nNowPos = 4;
nNowPosX = nWidth - bmpCambus.Width;
}
Gcambus.DrawImage( bmpV, nNowPosX + (bmpCambus.Width / 2) - (bmpV.Width / 2) + n補正, nNowPos + nY補正 );
if (strName[i] == "\n")
{
nNowPosX -= bmpV.Size.Width * 2;
nNowPos = 0;
}
else
{
nNowPos += bmpV.Size.Height - 6;
}
Gcambus.DrawImage( bmpV, (bmpCambus.Width / 2) - (bmpV.Width / 2) + n補正, nNowPos + nY補正 );
nNowPos += bmpV.Size.Height - 6;
if( bmpV != null ) bmpV.Dispose(); bmpV = null;
if( gCal != null ) gCal.Dispose(); gCal = null;

View File

@ -1439,6 +1439,14 @@ namespace TJAPlayer3
Title_ModeSelect_Bar_Move[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Title_ModeSelect_Bar_Move_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Title_ModeSelect_Bar_Move_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Title_ModeSelect_Overlay_Move")
{
string[] strSplit = strParam.Split(',');
@ -1447,6 +1455,14 @@ namespace TJAPlayer3
Title_ModeSelect_Overlay_Move[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Title_ModeSelect_Overlay_Move_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
Title_ModeSelect_Overlay_Move_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Title_ModeSelect_Bar_Chara_X")
{
string[] strSplit = strParam.Split(',');
@ -1479,6 +1495,10 @@ namespace TJAPlayer3
{
Title_ModeSelect_Bar_Center_Title_Move = int.Parse(strParam);
}
else if (strCommand == "Title_ModeSelect_Bar_Center_Title_Move_X")
{
Title_ModeSelect_Bar_Center_Title_Move_X = int.Parse(strParam);
}
else if (strCommand == "Title_ModeSelect_Bar_Center_BoxText")
{
string[] strSplit = strParam.Split(',');
@ -1487,6 +1507,14 @@ namespace TJAPlayer3
Title_ModeSelect_Bar_Center_BoxText[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "Title_VerticalText")
{
Title_VerticalText = C変換.bONorOFF(strParam[0]);
}
else if (strCommand == "Title_VerticalBar")
{
Title_VerticalBar = C変換.bONorOFF(strParam[0]);
}
#endregion
#region Config
@ -1879,9 +1907,27 @@ namespace TJAPlayer3
else if (strCommand == "SongSelect_BoxText_Scale")
{
SongSelect_BoxText_Scale = int.Parse(strParam);
}
else if (strCommand == "SongSelect_VerticalText")
{
SongSelect_VerticalText = C変換.bONorOFF(strParam[0]);
}
else if (strCommand == "SongSelect_Bar_Center_Move_X")
{
SongSelect_Bar_Center_Move_X = int.Parse(strParam);
}
else if (strCommand == "SongSelect_Title_MaxSize")
{
SongSelect_Title_MaxSize = int.Parse(strParam);
}
else if (strCommand == "SongSelect_SubTitle_MaxSize")
{
SongSelect_SubTitle_MaxSize = int.Parse(strParam);
}
else if (strCommand == "SongSelect_Bar_Center_Move")
{
SongSelect_Bar_Center_Move = int.Parse(strParam);
@ -1934,6 +1980,30 @@ namespace TJAPlayer3
SongSelect_Level_Number_Interval[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "SongSelect_Level_X")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 4; i++)
{
SongSelect_Level_X[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "SongSelect_Level_Y")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 4; i++)
{
SongSelect_Level_Y[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "SongSelect_Level_Move")
{
string[] strSplit = strParam.Split(',');
for (int i = 0; i < 2; i++)
{
SongSelect_Level_Move[i] = int.Parse(strSplit[i]);
}
}
else if (strCommand == "SongSelect_Box_Opening_Interval")
{
SongSelect_Box_Opening_Interval = float.Parse(strParam);
@ -7496,7 +7566,9 @@ namespace TJAPlayer3
};
public int[] Title_ModeSelect_Bar_Move = new int[] { 40, 100 };
public int[] Title_ModeSelect_Bar_Move_X = new int[] { 0, 0 };
public int[] Title_ModeSelect_Overlay_Move = new int[] { 40, 120 };
public int[] Title_ModeSelect_Overlay_Move_X = new int[] { 0, 0 };
public int[] Title_ModeSelect_Bar_Chara_X = new int[] { 446, 835 };
public int[] Title_ModeSelect_Bar_Chara_Y = new int[] { 360, 360 };
@ -7505,9 +7577,13 @@ namespace TJAPlayer3
public int[] Title_ModeSelect_Bar_Center_Title = new int[] { 631, 379 };
public int Title_ModeSelect_Bar_Center_Title_Move = 60;
public int Title_ModeSelect_Bar_Center_Title_Move_X = 0;
public int[] Title_ModeSelect_Bar_Center_BoxText = new int[] { 640, 397 };
public bool Title_VerticalText = false;
public bool Title_VerticalBar = false;
#endregion
#region SongSelect
@ -7545,8 +7621,13 @@ namespace TJAPlayer3
public int SongSelect_MusicName_Scale = 22;
public int SongSelect_Subtitle_Scale = 13;
public int SongSelect_BoxText_Scale = 14;
public bool SongSelect_VerticalText = false;
public int SongSelect_Title_MaxSize = 550;
public int SongSelect_SubTitle_MaxSize = 510;
public int SongSelect_Bar_Center_Move = 62;
public int SongSelect_Bar_Center_Move_X = 0;
public int[] SongSelect_Bar_Select = new int[] { 309, 235 };
@ -7556,6 +7637,10 @@ namespace TJAPlayer3
public int[] SongSelect_Level_Number_X = new int[] { 485, 607, 729, 851 };
public int[] SongSelect_Level_Number_Y = new int[] { 400, 400, 400, 400 };
public int[] SongSelect_Level_X = new int[] { 485, 607, 729, 851 };
public int[] SongSelect_Level_Y = new int[] { 400, 400, 400, 400 };
public int[] SongSelect_Level_Move = new int[] { 0, -17 };
public int[] SongSelect_Level_Number_Interval = new int[] { 11, 0 };
public float SongSelect_Box_Opening_Interval = 1f;

View File

@ -203,6 +203,7 @@ namespace TJAPlayer3
#region 3_
SongSelect_Background = TxC(SONGSELECT + @"Background.png");
SongSelect_Header = TxC(SONGSELECT + @"Header.png");
SongSelect_Footer = TxC(SONGSELECT + @"Footer.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");
@ -1874,6 +1875,7 @@ namespace TJAPlayer3
public CTexture SongSelect_Background,
SongSelect_Header,
SongSelect_Footer,
SongSelect_Auto,
SongSelect_Level,
SongSelect_Branch,

View File

@ -739,8 +739,8 @@ namespace TJAPlayer3
_bar.color4 = C変換.ColorToColor4(Color.DarkGray);
if (_chara != null)
_chara.color4 = C変換.ColorToColor4(Color.DarkGray);
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(_menu.ttkBoxText).color4 = C変換.ColorToColor4(Color.DarkGray);
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(_menu.ttkTitle).color4 = C変換.ColorToColor4(Color.DarkGray);
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(_menu.ttkBoxText, TJAPlayer3.Skin.Title_VerticalText).color4 = C変換.ColorToColor4(Color.DarkGray);
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(_menu.ttkTitle, TJAPlayer3.Skin.Title_VerticalText).color4 = C変換.ColorToColor4(Color.DarkGray);
}
else
{
@ -748,8 +748,8 @@ namespace TJAPlayer3
_bar.color4 = C変換.ColorToColor4(Color.White);
if (_chara != null)
_chara.color4 = C変換.ColorToColor4(Color.White);
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(_menu.ttkBoxText).color4 = C変換.ColorToColor4(Color.White);
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(_menu.ttkTitle).color4 = C変換.ColorToColor4(Color.White);
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(_menu.ttkBoxText, TJAPlayer3.Skin.Title_VerticalText).color4 = C変換.ColorToColor4(Color.White);
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(_menu.ttkTitle, TJAPlayer3.Skin.Title_VerticalText).color4 = C変換.ColorToColor4(Color.White);
}
#endregion
@ -759,12 +759,18 @@ namespace TJAPlayer3
{
float barAnimef = (ctBarMove.n現在の値 / 100.0f) - 1.5f;
float barAnime = TJAPlayer3.Skin.Title_ModeSelect_Bar_Move[0] +
float barAnime = TJAPlayer3.Skin.Title_ModeSelect_Bar_Move[0] +
(barAnimef * (TJAPlayer3.Skin.Title_ModeSelect_Bar_Move[1] - TJAPlayer3.Skin.Title_ModeSelect_Bar_Move[0]));
float barAnimeX = TJAPlayer3.Skin.Title_ModeSelect_Bar_Move_X[0] +
(barAnimef * (TJAPlayer3.Skin.Title_ModeSelect_Bar_Move_X[1] - TJAPlayer3.Skin.Title_ModeSelect_Bar_Move_X[0]));
float overlayAnime = TJAPlayer3.Skin.Title_ModeSelect_Overlay_Move[0] +
(barAnimef * (TJAPlayer3.Skin.Title_ModeSelect_Overlay_Move[1] - TJAPlayer3.Skin.Title_ModeSelect_Overlay_Move[0]));
float overlayAnimeX = TJAPlayer3.Skin.Title_ModeSelect_Overlay_Move_X[0] +
(barAnimef * (TJAPlayer3.Skin.Title_ModeSelect_Overlay_Move_X[1] - TJAPlayer3.Skin.Title_ModeSelect_Overlay_Move_X[0]));
//int BarAnime = ctBarAnimeIn.n現在の値 >= (int)(26 * 16.6f) + 100 ? 0 : ctBarAnimeIn.n現在の値 >= (int)(26 * 16.6f) && ctBarAnimeIn.n現在の値 <= (int)(26 * 16.6f) + 100 ? 40 + (int)((ctBarAnimeIn.n現在の値 - (26 * 16.6)) / 100f * 71f) : ctBarAnimeIn.n現在の値 < (int)(26 * 16.6f) ? 40 : 111;
@ -773,18 +779,30 @@ namespace TJAPlayer3
if (_bar != null)
{
_bar.Opacity = 255;
_bar.vc拡大縮小倍率.X = 1.0f;
_bar.vc拡大縮小倍率.Y = 1.0f;
_bar.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_X[0], TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Y[0] - barAnime,
_bar.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_X[0] - (TJAPlayer3.Skin.Title_VerticalBar ? barAnimeX : 0),
TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Y[0] - (TJAPlayer3.Skin.Title_VerticalBar ? 0 : barAnime),
new Rectangle(TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Rect[0][0],
TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Rect[0][1],
TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Rect[0][2],
TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Rect[0][3]));
_bar.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_X[1], TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Y[1] + barAnime,
_bar.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_X[1] + (TJAPlayer3.Skin.Title_VerticalBar ? barAnimeX : 0),
TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Y[1] + (TJAPlayer3.Skin.Title_VerticalBar ? 0 : barAnime),
new Rectangle(TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Rect[1][0],
TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Rect[1][1],
TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Rect[1][2],
TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Rect[1][3]));
_bar.vc拡大縮小倍率.Y = (barAnime / TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Rect[2][3]) * 2.0f;
if (TJAPlayer3.Skin.Title_VerticalBar)
{
_bar.vc拡大縮小倍率.X = (barAnimeX / TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Rect[2][2]) * 2.0f;
}
else
{
_bar.vc拡大縮小倍率.Y = (barAnime / TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Rect[2][3]) * 2.0f;
}
_bar.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_X[2], TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Y[2],
new Rectangle(TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Rect[2][0],
TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Rect[2][1],
@ -797,18 +815,29 @@ namespace TJAPlayer3
{
CTexture _overlap = TJAPlayer3.Tx.ModeSelect_Bar[CMainMenuTab.__MenuCount];
_overlap.vc拡大縮小倍率.X = 1.0f;
_overlap.vc拡大縮小倍率.Y = 1.0f;
_overlap.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_X[0], TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Y[0],
new Rectangle(TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Rect[0][0],
TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Rect[0][1],
TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Rect[0][2],
TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Rect[0][3]));
_overlap.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_X[1], TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Y[1] + overlayAnime,
_overlap.t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_X[1] + (TJAPlayer3.Skin.Title_VerticalBar ? overlayAnimeX : 0),
TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Y[1] + (TJAPlayer3.Skin.Title_VerticalBar ? 0 : overlayAnime),
new Rectangle(TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Rect[1][0],
TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Rect[1][1],
TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Rect[1][2],
TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Rect[1][3]));
_overlap.vc拡大縮小倍率.Y = (overlayAnime / TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Rect[2][3]);
if (TJAPlayer3.Skin.Title_VerticalBar)
{
_overlap.vc拡大縮小倍率.X = (overlayAnimeX / TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Rect[2][2]);
}
else
{
_overlap.vc拡大縮小倍率.Y = (overlayAnime / TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Rect[2][3]);
}
_overlap.t2D拡大率考慮上中央基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_X[2], TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Y[2],
new Rectangle(TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Rect[2][0],
TJAPlayer3.Skin.Title_ModeSelect_Bar_Overlay_Rect[2][1],
@ -836,9 +865,11 @@ namespace TJAPlayer3
new Rectangle(_chara.szテクスチャサイズ.Width / 2, 0, _chara.szテクスチャサイズ.Width / 2, _chara.szテクスチャサイズ.Height));
}
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(_menu.ttkTitle)?.t2D中心基準描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Title[0], TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Title[1] - (TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Title_Move * BarAnimeCount));
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(_menu.ttkTitle, TJAPlayer3.Skin.Title_VerticalText)?.t2D中心基準描画(TJAPlayer3.app.Device,
TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Title[0] + (TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Title_Move_X * BarAnimeCount),
TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Title[1] - (TJAPlayer3.Skin.Title_ModeSelect_Bar_Center_Title_Move * BarAnimeCount));
CTexture currentText = TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(_menu.ttkBoxText);
CTexture currentText = TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(_menu.ttkBoxText, TJAPlayer3.Skin.Title_VerticalText);
if (currentText != null)
{
currentText.Opacity = (int)(BarAnimeCount * 255f);
@ -876,6 +907,7 @@ namespace TJAPlayer3
if (_bar != null)
{
_bar.vc拡大縮小倍率.X = 1.0f;
_bar.vc拡大縮小倍率.Y = 1.0f;
_bar.t2D描画(TJAPlayer3.app.Device, pos.X + BarAnimeX - BarMoveX, pos.Y + BarAnimeY - BarMoveY);
}
@ -884,13 +916,14 @@ namespace TJAPlayer3
{
CTexture _overlap = TJAPlayer3.Tx.ModeSelect_Bar[CMainMenuTab.__MenuCount];
_overlap.vc拡大縮小倍率.X = 1.0f;
_overlap.vc拡大縮小倍率.Y = 1.0f;
_overlap.t2D描画(TJAPlayer3.app.Device, pos.X + BarAnimeX - BarMoveX, pos.Y + BarAnimeY - BarMoveY);
}
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(_menu.ttkTitle)?.t2D中心基準描画(TJAPlayer3.app.Device, pos.X + BarAnimeX - BarMoveX + TJAPlayer3.Skin.Title_ModeSelect_Title_Offset[0], pos.Y + BarAnimeY - BarMoveY + TJAPlayer3.Skin.Title_ModeSelect_Title_Offset[1]);
TJAPlayer3.stage選曲.act曲リスト.ResolveTitleTexture(_menu.ttkTitle, TJAPlayer3.Skin.Title_VerticalText)?.t2D中心基準描画(TJAPlayer3.app.Device, pos.X + BarAnimeX - BarMoveX + TJAPlayer3.Skin.Title_ModeSelect_Title_Offset[0], pos.Y + BarAnimeY - BarMoveY + TJAPlayer3.Skin.Title_ModeSelect_Title_Offset[1]);
}
}
}

View File

@ -866,7 +866,8 @@ namespace TJAPlayer3
ctDifficultyIn.t進行();
float BarAnimeCount = this.ctBarOpen.n現在の値 <= 200 ? 0 : (float)Math.Sin(((this.ctBarOpen.n現在の値 - 200) * 1.5f) * (Math.PI / 180));
int centerMove = (int)(BarAnimeCount * TJAPlayer3.Skin.SongSelect_Bar_Center_Move);
int centerMove = (int)(BarAnimeCount * TJAPlayer3.Skin.SongSelect_Bar_Center_Move);
int centerMoveX = (int)(BarAnimeCount * TJAPlayer3.Skin.SongSelect_Bar_Center_Move_X);
if (BarAnimeCount == 1.0)
ctScoreFrameAnime.t進行Loop();
@ -1513,14 +1514,14 @@ namespace TJAPlayer3
#region [ ]
if (ctDifficultyIn.n現在の値 >= 1000 && TJAPlayer3.stage選曲.act難易度選択画面.bIsDifficltSelect)
ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル).Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000);
ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル, TJAPlayer3.Skin.SongSelect_VerticalText).Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000);
else
ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル).Opacity = 255;
ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル, TJAPlayer3.Skin.SongSelect_VerticalText).Opacity = 255;
if (n現在のスクロールカウンタ != 0)
ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル).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 + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[0], y - Box_Y + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[1]);
else if (n見た目の行番号 != barCenterNum)
ResolveTitleTexture(this.stバー情報[nパネル番号].ttkタイトル).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 + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[0], y - Box_Y + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[1]);
#endregion
//-----------------
@ -1603,7 +1604,7 @@ namespace TJAPlayer3
if (!r現在選択中の曲.isChangedBoxType)
boxType = nStrジャンルtoNum(r現在選択中の曲.strジャンル);
DrawBarCenter(TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType], TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum], TJAPlayer3.Skin.SongSelect_Bar_Y[barCenterNum], centerMove, true, true, true);
DrawBarCenter(TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType], TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum], TJAPlayer3.Skin.SongSelect_Bar_Y[barCenterNum], centerMoveX, centerMove, true, true, true);
#endregion
@ -1628,7 +1629,7 @@ namespace TJAPlayer3
int x = TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum] + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_X[i];
int y = TJAPlayer3.Skin.SongSelect_Bar_Y[barCenterNum] + TJAPlayer3.Skin.SongSelect_DanStatus_Offset_Y[i];
displayDanStatus(x, (int)(y - centerMove / 1.1f), currentRank, 0.2f);
displayDanStatus((int)(x - centerMoveX / 1.1f), (int)(y - centerMove / 1.1f), currentRank, 0.2f);
}
}
@ -1649,7 +1650,7 @@ namespace TJAPlayer3
int x = TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum] + TJAPlayer3.Skin.SongSelect_TowerStatus_Offset_X[i];
int y = TJAPlayer3.Skin.SongSelect_Bar_Y[barCenterNum] + TJAPlayer3.Skin.SongSelect_TowerStatus_Offset_Y[i];
displayTowerStatus(x, (int)(y - centerMove / 1.1f), currentRank, 0.3f);
displayTowerStatus((int)(x - centerMoveX / 1.1f), (int)(y - centerMove / 1.1f), currentRank, 0.3f);
}
}
else if (this.r現在選択中の曲.arスコア[3] != null || this.r現在選択中の曲.arスコア[4] != null)
@ -1669,7 +1670,7 @@ namespace TJAPlayer3
int x = TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum] + TJAPlayer3.Skin.SongSelect_RegularCrowns_Offset_X[i];
int y = TJAPlayer3.Skin.SongSelect_Bar_Y[barCenterNum] + TJAPlayer3.Skin.SongSelect_RegularCrowns_Offset_Y[i];
displayRegularCrowns(x, (int)(y - centerMove / 1.1f), , , 0.8f + BarAnimeCount / 620f);
displayRegularCrowns((int)(x - centerMoveX / 1.1f), (int)(y - centerMove / 1.1f), , , 0.8f + BarAnimeCount / 620f);
}
}
@ -1679,7 +1680,8 @@ namespace TJAPlayer3
#region [Favorite status]
displayFavoriteStatus(TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum] + TJAPlayer3.Skin.SongSelect_FavoriteStatus_Offset[0],
displayFavoriteStatus(
(int)(TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum] + TJAPlayer3.Skin.SongSelect_FavoriteStatus_Offset[0] - centerMoveX / 1.1f),
(int)(TJAPlayer3.Skin.SongSelect_Bar_Y[barCenterNum] + TJAPlayer3.Skin.SongSelect_FavoriteStatus_Offset[1] - centerMove / 1.1f), this.r現在選択中の曲.uniqueId, 1f + BarAnimeCount / 620f);
#endregion
@ -1687,7 +1689,7 @@ namespace TJAPlayer3
#region [Level number big]
tPrintLevelNumberBig(
TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum] + TJAPlayer3.Skin.SongSelect_Level_Offset[0],
(int)(TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum] + TJAPlayer3.Skin.SongSelect_Level_Offset[0] - centerMoveX / 1.1f),
(int)(TJAPlayer3.Skin.SongSelect_Bar_Y[barCenterNum] + TJAPlayer3.Skin.SongSelect_Level_Offset[1] - centerMove / 1.1f),
this.r現在選択中の曲
);
@ -1706,7 +1708,7 @@ namespace TJAPlayer3
if (!r現在選択中の曲.isChangedBoxType)
boxType = nStrジャンルtoNum(r現在選択中の曲.strジャンル);
DrawBarCenter(TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType], TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum], TJAPlayer3.Skin.SongSelect_Bar_Y[barCenterNum], centerMove, true, true, false);
DrawBarCenter(TJAPlayer3.Tx.SongSelect_Bar_Genre[boxType], TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum], TJAPlayer3.Skin.SongSelect_Bar_Y[barCenterNum], centerMoveX, centerMove, true, true, false);
#endregion
}
@ -1714,7 +1716,7 @@ namespace TJAPlayer3
{
#region [ BackBox ]
DrawBarCenter(TJAPlayer3.Tx.SongSelect_Bar_Genre_Back, TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum], TJAPlayer3.Skin.SongSelect_Bar_Y[barCenterNum], centerMove, false, false, false);
DrawBarCenter(TJAPlayer3.Tx.SongSelect_Bar_Genre_Back, TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum], TJAPlayer3.Skin.SongSelect_Bar_Y[barCenterNum], centerMoveX, centerMove, false, false, false);
#endregion
}
@ -1722,7 +1724,7 @@ namespace TJAPlayer3
{
#region [Random box]
DrawBarCenter(TJAPlayer3.Tx.SongSelect_Bar_Genre_Random, TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum], TJAPlayer3.Skin.SongSelect_Bar_Y[barCenterNum], centerMove, false, false, false);
DrawBarCenter(TJAPlayer3.Tx.SongSelect_Bar_Genre_Random, TJAPlayer3.Skin.SongSelect_Bar_X[barCenterNum], TJAPlayer3.Skin.SongSelect_Bar_Y[barCenterNum], centerMoveX, centerMove, false, false, false);
#endregion
}
@ -1794,6 +1796,7 @@ namespace TJAPlayer3
{
TJAPlayer3.Tx.SongSelect_Frame_Score[0].Opacity = difSelectOpacity;
TJAPlayer3.Tx.SongSelect_Level_Number.Opacity = difSelectOpacity;
if (TJAPlayer3.Tx.SongSelect_Level != null) TJAPlayer3.Tx.SongSelect_Level.Opacity = difSelectOpacity;
}
else if (ctDifficultyIn.n現在の値 >= 1000)
{
@ -1801,6 +1804,7 @@ namespace TJAPlayer3
TJAPlayer3.Tx.SongSelect_Frame_Score[0].Opacity = difInOpacity;
TJAPlayer3.Tx.SongSelect_Level_Number.Opacity = difInOpacity;
if (TJAPlayer3.Tx.SongSelect_Level != null) TJAPlayer3.Tx.SongSelect_Level.Opacity = difInOpacity;
}
#endregion
@ -1816,9 +1820,22 @@ namespace TJAPlayer3
TJAPlayer3.Tx.SongSelect_Frame_Score[0].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_Frame_Score_X[displayingDiff], TJAPlayer3.Skin.SongSelect_Frame_Score_Y[displayingDiff], new Rectangle(width * i, 0, width, height));
if (avaliable)
t小文字表示(TJAPlayer3.Skin.SongSelect_Level_Number_X[displayingDiff], TJAPlayer3.Skin.SongSelect_Level_Number_Y[displayingDiff],
{
t小文字表示(TJAPlayer3.Skin.SongSelect_Level_Number_X[displayingDiff], TJAPlayer3.Skin.SongSelect_Level_Number_Y[displayingDiff],
TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[i]);
int level_width = TJAPlayer3.Tx.SongSelect_Level.szテクスチャサイズ.Width / 7;
int level_height = TJAPlayer3.Tx.SongSelect_Level.szテクスチャサイズ.Height;
for (int i2 = 0; i2 < TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[i]; i2++)
{
TJAPlayer3.Tx.SongSelect_Level?.t2D描画(TJAPlayer3.app.Device,
TJAPlayer3.Skin.SongSelect_Level_X[displayingDiff] + (TJAPlayer3.Skin.SongSelect_Level_Move[0] * i2),
TJAPlayer3.Skin.SongSelect_Level_Y[displayingDiff] + (TJAPlayer3.Skin.SongSelect_Level_Move[1] * i2),
new RectangleF(level_width * i, 0, level_width, level_height));
}
}
#endregion
}
@ -1873,28 +1890,44 @@ namespace TJAPlayer3
{
TJAPlayer3.Tx.SongSelect_Frame_Score[1].Opacity = difSelectOpacity;
TJAPlayer3.Tx.SongSelect_Level_Number.Opacity = difSelectOpacity;
}
if (TJAPlayer3.Tx.SongSelect_Level != null) TJAPlayer3.Tx.SongSelect_Level.Opacity = difSelectOpacity;
}
else if (ctDifficultyIn.n現在の値 >= 1000)
{
int difInOpacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000);
TJAPlayer3.Tx.SongSelect_Frame_Score[1].Opacity = difInOpacity;
TJAPlayer3.Tx.SongSelect_Level_Number.Opacity = difInOpacity;
}
if (TJAPlayer3.Tx.SongSelect_Level != null) TJAPlayer3.Tx.SongSelect_Level.Opacity = difInOpacity;
}
#endregion
#region [Displayables]
int width = TJAPlayer3.Tx.SongSelect_Frame_Score[0].sz画像サイズ.Width / 5;
int height = TJAPlayer3.Tx.SongSelect_Frame_Score[0].sz画像サイズ.Height;
int width = TJAPlayer3.Tx.SongSelect_Frame_Score[1].sz画像サイズ.Width / 5;
int height = TJAPlayer3.Tx.SongSelect_Frame_Score[1].sz画像サイズ.Height;
TJAPlayer3.Tx.SongSelect_Frame_Score[1].t2D描画(TJAPlayer3.app.Device, TJAPlayer3.Skin.SongSelect_Frame_Score_X[(diff - 5)], TJAPlayer3.Skin.SongSelect_Frame_Score_Y[(diff - 5)], new Rectangle(width * (diff - 5), 0, width, height));
if (avaliable)
{
t小文字表示(TJAPlayer3.Skin.SongSelect_Level_Number_X[(diff - 5)], TJAPlayer3.Skin.SongSelect_Level_Number_Y[(diff - 5)],
TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[diff]);
int level_width = TJAPlayer3.Tx.SongSelect_Level.szテクスチャサイズ.Width / 7;
int level_height = TJAPlayer3.Tx.SongSelect_Level.szテクスチャサイズ.Height;
for (int i2 = 0; i2 < TJAPlayer3.stage選曲.r現在選択中のスコア..nレベル[diff]; i2++)
{
TJAPlayer3.Tx.SongSelect_Level?.t2D描画(TJAPlayer3.app.Device,
TJAPlayer3.Skin.SongSelect_Level_X[(diff - 5)] + (TJAPlayer3.Skin.SongSelect_Level_Move[0] * i2),
TJAPlayer3.Skin.SongSelect_Level_Y[(diff - 5)] + (TJAPlayer3.Skin.SongSelect_Level_Move[1] * i2),
new RectangleF(level_width * diff, 0, level_width, level_height));
}
}
#endregion
}
@ -2030,21 +2063,21 @@ namespace TJAPlayer3
this.ttk選択している曲のサブタイトル = this.ttkサブタイトルテクスチャを生成する(this.stバー情報[nパネル番号].strサブタイトル, this.stバー情報[nパネル番号].ForeColor, this.stバー情報[nパネル番号].BackColor);
if (this.ttk選択している曲のサブタイトル != null)
tx選択している曲のサブタイトル = ResolveTitleTexture(ttk選択している曲のサブタイトル);
tx選択している曲のサブタイトル = ResolveTitleTexture(ttk選択している曲のサブタイトル, TJAPlayer3.Skin.SongSelect_VerticalText);
//サブタイトルがあったら700
if (ttk選択している曲の曲名 != null)
{
if (!ctBoxOpen.b終了値に達した)
ResolveTitleTexture(this.ttk選択している曲の曲名).Opacity = (int)(ctBoxOpen.n現在の値 >= 1200 && ctBoxOpen.n現在の値 <= 1620 ? 255 - (ctBoxOpen.n現在の値 - 1200) * 2.55f :
ResolveTitleTexture(this.ttk選択している曲の曲名, TJAPlayer3.Skin.SongSelect_VerticalText).Opacity = (int)(ctBoxOpen.n現在の値 >= 1200 && ctBoxOpen.n現在の値 <= 1620 ? 255 - (ctBoxOpen.n現在の値 - 1200) * 2.55f :
ctBoxOpen.n現在の値 >= 2000 ? (ctBoxOpen.n現在の値 - 2000) * 2.55f : ctBoxOpen.n現在の値 <= 1200 ? 255 : 0);
else
{
if (!TJAPlayer3.stage選曲.act難易度選択画面.bIsDifficltSelect)
ResolveTitleTexture(this.ttk選択している曲の曲名).Opacity = 255;
ResolveTitleTexture(this.ttk選択している曲の曲名, TJAPlayer3.Skin.SongSelect_VerticalText).Opacity = 255;
else if (ctDifficultyIn.n現在の値 >= 1000)
ResolveTitleTexture(this.ttk選択している曲の曲名).Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000);
ResolveTitleTexture(this.ttk選択している曲の曲名, TJAPlayer3.Skin.SongSelect_VerticalText).Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000);
}
}
@ -2061,18 +2094,30 @@ namespace TJAPlayer3
tx選択している曲のサブタイトル.Opacity = (int)255.0f - (ctDifficultyIn.n現在の値 - 1000);
}
tx選択している曲のサブタイトル.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, xAnime + TJAPlayer3.Skin.SongSelect_Bar_SubTitle_Offset[0], y + TJAPlayer3.Skin.SongSelect_Bar_SubTitle_Offset[1] - (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMove : centerMove / 1.1f));
tx選択している曲のサブタイトル.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device,
xAnime + TJAPlayer3.Skin.SongSelect_Bar_SubTitle_Offset[0] + (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMoveX : centerMoveX / 1.1f),
y + TJAPlayer3.Skin.SongSelect_Bar_SubTitle_Offset[1] - (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMove : centerMove / 1.1f));
if (this.ttk選択している曲の曲名 != null)
{
ResolveTitleTexture(this.ttk選択している曲の曲名).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, xAnime + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[0], y + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[1] - (r現在選択中の曲.eード種別 != C曲リストード.Eード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMove : centerMove / 1.1f) : 0));
ResolveTitleTexture(this.ttk選択している曲の曲名, TJAPlayer3.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device,
xAnime + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[0] +
(r現在選択中の曲.eード種別 != C曲リストード.Eード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMoveX : centerMoveX / 1.1f) : 0),
y + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[1] -
(r現在選択中の曲.eード種別 != C曲リストード.Eード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMove : centerMove / 1.1f) : 0));
}
}
else
{
if (this.ttk選択している曲の曲名 != null)
{
ResolveTitleTexture(this.ttk選択している曲の曲名).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, xAnime + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[0], y + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[1] - (r現在選択中の曲.eード種別 != C曲リストード.Eード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMove : centerMove / 1.1f) : 0));
ResolveTitleTexture(this.ttk選択している曲の曲名, TJAPlayer3.Skin.SongSelect_VerticalText).t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device,
xAnime + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[0] +
(r現在選択中の曲.eード種別 != C曲リストード.Eード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMoveX : centerMoveX / 1.1f) : 0),
y + TJAPlayer3.Skin.SongSelect_Bar_Title_Offset[1] -
(r現在選択中の曲.eード種別 != C曲リストード.Eード種別.BACKBOX ? (this.stバー情報[nパネル番号].eバー種別 == Eバー種別.Box ? centerMove : centerMove / 1.1f) : 0));
}
}
//-----------------
@ -2444,56 +2489,160 @@ namespace TJAPlayer3
private int nCurrentPosition = 0;
private int nNumOfItems = 0;
private void DrawBarCenter(CTexture texture, int x, int y, int move, bool changeColor, bool drawOverlay, bool fullScaleOverlay)
{
private void DrawBarCenter(CTexture texture, int x, int y, int moveX, int move, bool changeColor, bool drawOverlay, bool fullScaleOverlay)
{
if (changeColor)
{
texture.color4 = C変換.ColorToColor4(r現在選択中の曲.BoxColor);
}
float openAnime = 1;
if (ctBoxOpen.n現在の値 >= 1300 && ctBoxOpen.n現在の値 <= 1940)
{
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.X = 1.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1300) * 0.28125f) * (Math.PI / 180)) * 1.0f;
texture.vc拡大縮小倍率.X = 1.0f - (float)Math.Sin(((ctBoxOpen.n現在の値 - 1300) * 0.28125f) * (Math.PI / 180)) * 1.0f;
}
else
{
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.X = 1.0f;
texture.vc拡大縮小倍率.X = 1.0f;
openAnime -= (float)Math.Sin(((ctBoxOpen.n現在の値 - 1300) * 0.28125f) * (Math.PI / 180)) * 1.0f;
}
int texture_xoffset = (int)(texture.szテクスチャサイズ.Width * (texture.vc拡大縮小倍率.X - 1)) / 2;
int overlay_xoffset = (int)(TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.szテクスチャサイズ.Width * (TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.X - 1)) / 2;
CTexture overlay = TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay;
int width = texture.sz画像サイズ.Width;
float texture_xoffset = ((texture.szテクスチャサイズ.Width / 3) * (1.0f - openAnime));
float overlay_xoffset = ((overlay.szテクスチャサイズ.Width / 3) * (1.0f - openAnime));
float moveX_xoffset = (TJAPlayer3.Skin.SongSelect_Bar_Center_Move_X * (1.0f - openAnime));
int width = texture.sz画像サイズ.Width / 3;
int height = texture.sz画像サイズ.Height / 3;
texture.t2D描画(TJAPlayer3.app.Device, x - texture_xoffset, y - move, new Rectangle(0, 0, width, height));
texture.vc拡大縮小倍率.Y = 1.0f + ((move / (float)height) * 2.0f);
texture.t2D描画(TJAPlayer3.app.Device, x - texture_xoffset, y + height - move, new Rectangle(0, height, width, height));
texture.vc拡大縮小倍率.X = 1.0f * openAnime;
texture.vc拡大縮小倍率.Y = 1.0f;
texture.t2D描画(TJAPlayer3.app.Device, x - texture_xoffset, y + (height * 2) + move, new Rectangle(0, height * 2, width, height));
texture.t2D描画(TJAPlayer3.app.Device, x + (texture_xoffset * 1.5f) + moveX_xoffset - moveX, y - move, new Rectangle(0, 0, width, height));
texture.vc拡大縮小倍率.X = 1.0f * openAnime;
texture.vc拡大縮小倍率.Y = 1.0f + ((move / (float)height) * 2.0f);
texture.t2D描画(TJAPlayer3.app.Device, x + (texture_xoffset * 1.5f) + moveX_xoffset - moveX, y + height - move, new Rectangle(0, height, width, height));
texture.vc拡大縮小倍率.X = 1.0f * openAnime;
texture.vc拡大縮小倍率.Y = 1.0f;
texture.t2D描画(TJAPlayer3.app.Device, x + (texture_xoffset * 1.5f) + moveX_xoffset - moveX, y + (height * 2) + move, new Rectangle(0, height * 2, width, height));
texture.vc拡大縮小倍率.X = (1.0f + ((moveX / (float)width) * 2.0f)) * openAnime;
texture.vc拡大縮小倍率.Y = 1.0f;
texture.t2D描画(TJAPlayer3.app.Device, x + (texture_xoffset / 2) + moveX_xoffset - moveX + width, y - move, new Rectangle(width, 0, width, height));
texture.vc拡大縮小倍率.X = (1.0f + ((moveX / (float)width) * 2.0f)) * openAnime;
texture.vc拡大縮小倍率.Y = 1.0f + ((move / (float)height) * 2.0f);
texture.t2D描画(TJAPlayer3.app.Device, x + (texture_xoffset / 2) + moveX_xoffset - moveX + width, y + height - move, new Rectangle(width, height, width, height));
texture.vc拡大縮小倍率.X = (1.0f + ((moveX / (float)width) * 2.0f)) * openAnime;
texture.vc拡大縮小倍率.Y = 1.0f;
texture.t2D描画(TJAPlayer3.app.Device, x + (texture_xoffset / 2) + moveX_xoffset - moveX + width, y + (height * 2) + move, new Rectangle(width, height * 2, width, height));
texture.vc拡大縮小倍率.X = 1.0f * openAnime;
texture.vc拡大縮小倍率.Y = 1.0f;
texture.t2D描画(TJAPlayer3.app.Device, x - (texture_xoffset / 2) - moveX_xoffset + moveX + (width * 2), y - move, new Rectangle(width * 2, 0, width, height));
texture.vc拡大縮小倍率.X = 1.0f * openAnime;
texture.vc拡大縮小倍率.Y = 1.0f + ((move / (float)height) * 2.0f);
texture.t2D描画(TJAPlayer3.app.Device, x - (texture_xoffset / 2) - moveX_xoffset + moveX + (width * 2), y + height - move, new Rectangle(width * 2, height, width, height));
texture.vc拡大縮小倍率.X = 1.0f * openAnime;
texture.vc拡大縮小倍率.Y = 1.0f;
texture.t2D描画(TJAPlayer3.app.Device, x - (texture_xoffset / 2) - moveX_xoffset + moveX + (width * 2), y + (height * 2) + move, new Rectangle(width * 2, height * 2, width, height));
if (drawOverlay)
{
if (fullScaleOverlay)
{
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D描画(TJAPlayer3.app.Device, x - overlay_xoffset, y - move, new Rectangle(0, 0, width, height));
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.Y = 1.0f + ((move / (float)height) * 2.0f);
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D描画(TJAPlayer3.app.Device, x - overlay_xoffset, y + height - move, new Rectangle(0, height, width, height));
overlay.vc拡大縮小倍率.X = 1.0f * openAnime;
overlay.vc拡大縮小倍率.Y = 1.0f;
overlay.t2D描画(TJAPlayer3.app.Device, x + (overlay_xoffset * 1.5f) + moveX_xoffset - moveX, y - move, new Rectangle(0, 0, width, height));
overlay.vc拡大縮小倍率.X = 1.0f * openAnime;
overlay.vc拡大縮小倍率.Y = 1.0f + ((move / (float)height) * 2.0f);
overlay.t2D描画(TJAPlayer3.app.Device, x + (overlay_xoffset * 1.5f) + moveX_xoffset - moveX, y + height - move, new Rectangle(0, height, width, height));
}
else
{
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D描画(TJAPlayer3.app.Device, x - overlay_xoffset, y, new Rectangle(0, 0, width, height));
overlay.vc拡大縮小倍率.X = 1.0f * openAnime;
overlay.vc拡大縮小倍率.Y = 1.0f;
overlay.t2D描画(TJAPlayer3.app.Device, x + (overlay_xoffset * 1.5f) + moveX_xoffset - moveX, y, new Rectangle(0, 0, width, height));
overlay.vc拡大縮小倍率.X = 1.0f * openAnime;
overlay.vc拡大縮小倍率.Y = 1.0f + ((move / (float)height) * 1.0f);
overlay.t2D描画(TJAPlayer3.app.Device, x + (overlay_xoffset * 1.5f) + moveX_xoffset - moveX, y + height, new Rectangle(0, height, width, height));
}
overlay.vc拡大縮小倍率.X = 1.0f * openAnime;
overlay.vc拡大縮小倍率.Y = 1.0f;
overlay.t2D描画(TJAPlayer3.app.Device, x + (overlay_xoffset * 1.5f) + moveX_xoffset - moveX, y + (height * 2) + move, new Rectangle(0, height * 2, width, height));
if (fullScaleOverlay)
{
overlay.vc拡大縮小倍率.X = (1.0f + ((moveX / (float)width) * 2.0f)) * openAnime;
overlay.vc拡大縮小倍率.Y = 1.0f;
overlay.t2D描画(TJAPlayer3.app.Device, x + (overlay_xoffset / 2) + moveX_xoffset - moveX + width, y - move, new Rectangle(width, 0, width, height));
overlay.vc拡大縮小倍率.X = (1.0f + ((moveX / (float)width) * 2.0f)) * openAnime;
overlay.vc拡大縮小倍率.Y = 1.0f + ((move / (float)height) * 2.0f);
overlay.t2D描画(TJAPlayer3.app.Device, x + (overlay_xoffset / 2) + moveX_xoffset - moveX + width, y + height - move, new Rectangle(width, height, width, height));
}
else
{
overlay.vc拡大縮小倍率.X = (1.0f + ((moveX / (float)width) * 2.0f)) * openAnime;
overlay.vc拡大縮小倍率.Y = 1.0f;
overlay.t2D描画(TJAPlayer3.app.Device, x + (overlay_xoffset / 2) + moveX_xoffset - moveX + width, y, new Rectangle(width, 0, width, height));
overlay.vc拡大縮小倍率.X = (1.0f + ((moveX / (float)width) * 2.0f)) * openAnime;
overlay.vc拡大縮小倍率.Y = 1.0f + ((move / (float)height) * 1.0f);
overlay.t2D描画(TJAPlayer3.app.Device, x + (overlay_xoffset / 2) + moveX_xoffset - moveX + width, y + height, new Rectangle(width, height, width, height));
}
overlay.vc拡大縮小倍率.X = (1.0f + ((moveX / (float)width) * 2.0f)) * openAnime;
overlay.vc拡大縮小倍率.Y = 1.0f;
overlay.t2D描画(TJAPlayer3.app.Device, x + (overlay_xoffset / 2) + moveX_xoffset - moveX + width, y + (height * 2) + move, new Rectangle(width, height * 2, width, height));
if (fullScaleOverlay)
{
overlay.vc拡大縮小倍率.X = 1.0f * openAnime;
overlay.vc拡大縮小倍率.Y = 1.0f;
overlay.t2D描画(TJAPlayer3.app.Device, x - (texture_xoffset / 2) - moveX_xoffset + moveX + (width * 2), y - move, new Rectangle(width * 2, 0, width, height));
overlay.vc拡大縮小倍率.X = 1.0f * openAnime;
overlay.vc拡大縮小倍率.Y = 1.0f + ((move / (float)height) * 2.0f);
overlay.t2D描画(TJAPlayer3.app.Device, x - (texture_xoffset / 2) - moveX_xoffset + moveX + (width * 2), y + height - move, new Rectangle(width * 2, height, width, height));
}
else
{
overlay.vc拡大縮小倍率.X = 1.0f * openAnime;
overlay.vc拡大縮小倍率.Y = 1.0f;
overlay.t2D描画(TJAPlayer3.app.Device, x - (texture_xoffset / 2) - moveX_xoffset + moveX + (width * 2), y, new Rectangle(width * 2, 0, width, height));
overlay.vc拡大縮小倍率.X = 1.0f * openAnime;
overlay.vc拡大縮小倍率.Y = 1.0f + ((move / (float)height) * 1.0f);
overlay.t2D描画(TJAPlayer3.app.Device, x - (texture_xoffset / 2) - moveX_xoffset + moveX + (width * 2), y + height, new Rectangle(width * 2, height, width, height));
}
overlay.vc拡大縮小倍率.X = 1.0f * openAnime;
overlay.vc拡大縮小倍率.Y = 1.0f;
overlay.t2D描画(TJAPlayer3.app.Device, x - (texture_xoffset / 2) - moveX_xoffset + moveX + (width * 2), y + (height * 2) + move, new Rectangle(width * 2, height * 2, width, height));
/*
if (fullScaleOverlay)
{
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D描画(TJAPlayer3.app.Device, x - overlay_xoffset - moveX, y - move, new Rectangle(0, 0, width, height));
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.Y = 1.0f + ((move / (float)height) * 2.0f);
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D描画(TJAPlayer3.app.Device, x - overlay_xoffset - moveX, y + height - move, new Rectangle(0, height, width, height));
}
else
{
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D描画(TJAPlayer3.app.Device, x - overlay_xoffset - moveX, y, new Rectangle(0, 0, width, height));
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.Y = 1.0f + (move / (float)height);
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D描画(TJAPlayer3.app.Device, x - overlay_xoffset, y + height, new Rectangle(0, height, width, height));
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D描画(TJAPlayer3.app.Device, x - overlay_xoffset - moveX, y + height, new Rectangle(0, height, width, height));
}
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.vc拡大縮小倍率.Y = 1.0f;
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D描画(TJAPlayer3.app.Device, x - overlay_xoffset, y + (height * 2) + move, new Rectangle(0, height * 2, width, height));
TJAPlayer3.Tx.SongSelect_Bar_Genre_Overlay.t2D描画(TJAPlayer3.app.Device, x - overlay_xoffset - moveX, y + (height * 2) + move, new Rectangle(0, height * 2, width, height));
*/
}
/*
@ -2943,12 +3092,12 @@ namespace TJAPlayer3
private TitleTextureKey ttk曲名テクスチャを生成する( string str文字, Color forecolor, Color backcolor, CPrivateFastFont pf)
{
return new TitleTextureKey(str文字, pf, forecolor, backcolor, 550);
return new TitleTextureKey(str文字, pf, forecolor, backcolor, TJAPlayer3.Skin.SongSelect_Title_MaxSize);
}
private TitleTextureKey ttkサブタイトルテクスチャを生成する( string str文字, Color forecolor, Color backcolor)
{
return new TitleTextureKey(str文字, pfSubtitle, forecolor, backcolor, 510);
return new TitleTextureKey(str文字, pfSubtitle, forecolor, backcolor, TJAPlayer3.Skin.SongSelect_SubTitle_MaxSize);
}
public CTexture ResolveTitleTexture(TitleTextureKey titleTextureKey)
@ -2959,11 +3108,25 @@ namespace TJAPlayer3
_titledictionary.Add(titleTextureKey, texture);
}
return texture;
}
return texture;
}
#region [Yes I do code bloating, what will you do ? =)]
#region [Yes I do code bloating, what will you do ? =)]
public CTexture ResolveTitleTexture(TitleTextureKey titleTextureKey, bool bVertical)
{
if (!_titledictionary.TryGetValue(titleTextureKey, out var texture))
{
if (bVertical)
texture = GenerateTitleTextureTate(titleTextureKey);
else
texture = GenerateTitleTexture(titleTextureKey);
_titledictionary.Add(titleTextureKey, texture);
}
return texture;
}
public CTexture ResolveTitleTextureTate(TitleTextureKey titleTextureKey)
{
if (!_titledictionary.TryGetValue(titleTextureKey, out var texture))
@ -2981,10 +3144,11 @@ namespace TJAPlayer3
titleTextureKey.str文字, titleTextureKey.forecolor, titleTextureKey.backcolor, true)))
{
CTexture tx文字テクスチャ = TJAPlayer3.tテクスチャの生成(bmp, false);
if (tx文字テクスチャ.szテクスチャサイズ.Width > titleTextureKey.maxWidth)
if (tx文字テクスチャ.szテクスチャサイズ.Height > titleTextureKey.maxWidth)
{
tx文字テクスチャ.vc拡大縮小倍率.X = (float)(((double)titleTextureKey.maxWidth) / tx文字テクスチャ.szテクスチャサイズ.Width);
tx文字テクスチャ.vc拡大縮小倍率.Y = (float)(((double)titleTextureKey.maxWidth) / tx文字テクスチャ.szテクスチャサイズ.Width);
//tx文字テクスチャ.vc拡大縮小倍率.X = (float)(((double)titleTextureKey.maxWidth) / tx文字テクスチャ.szテクスチャサイズ.Height);
tx文字テクスチャ.vc拡大縮小倍率.X = 1.0f;
tx文字テクスチャ.vc拡大縮小倍率.Y = (float)(((double)titleTextureKey.maxWidth) / tx文字テクスチャ.szテクスチャサイズ.Height);
}
return tx文字テクスチャ;

View File

@ -435,7 +435,8 @@ namespace TJAPlayer3
}
TJAPlayer3.Tx.SongSelect_Header?.t2D描画(TJAPlayer3.app.Device, 0, 0);
TJAPlayer3.Tx.SongSelect_Footer?.t2D描画(TJAPlayer3.app.Device, 0, 0);
tTimerDraw(100 - ctTimer.n現在の値);
tSongNumberDraw(TJAPlayer3.Skin.SongSelect_SongNumber_X[0], TJAPlayer3.Skin.SongSelect_SongNumber_Y[0], NowSong);

View File

@ -60,6 +60,12 @@ SongSelect_Subtitle_Scale=13
SongSelect_BoxText_Scale=14
SongSelect_Title_MaxSize=550
SongSelect_SubTitle_MaxSize=510
SongSelect_VerticalText=0
SongSelect_Bar_Center_Move=62

View File

@ -67,4 +67,7 @@ Title_ModeSelect_Bar_Chara_Move=45
Title_ModeSelect_Bar_Center_Title=631,379
Title_ModeSelect_Bar_Center_Title_Move=60
Title_ModeSelect_Bar_Center_BoxText=640,397
Title_ModeSelect_Bar_Center_BoxText=640,397
Title_VerticalText=0
Title_VerticalBar=0