Merge branch 'main' of https://github.com/0auBSQ/OpenTaiko
@ -59,6 +59,11 @@ namespace FDK
|
||||
/// </summary>
|
||||
private static int ColorID;
|
||||
|
||||
/// <summary>
|
||||
/// 拡大率のハンドル
|
||||
/// </summary>
|
||||
private static int ScaleID;
|
||||
|
||||
/// <summary>
|
||||
/// テクスチャの切り抜きのハンドル
|
||||
/// </summary>
|
||||
@ -66,6 +71,8 @@ namespace FDK
|
||||
|
||||
private static int CameraID;
|
||||
|
||||
private static int NoteModeID;
|
||||
|
||||
/// <summary>
|
||||
/// 描画に使用する共通のバッファを作成
|
||||
/// </summary>
|
||||
@ -100,12 +107,23 @@ namespace FDK
|
||||
uniform vec4 color;
|
||||
uniform sampler2D texture1;
|
||||
uniform vec4 textureRect;
|
||||
uniform vec2 scale;
|
||||
uniform bool noteMode;
|
||||
|
||||
varying vec2 texcoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
vec2 rect = vec2(textureRect.xy + (texcoord * textureRect.zw));
|
||||
vec2 rect;
|
||||
if (noteMode)
|
||||
{
|
||||
rect = textureRect.xy + (texcoord * textureRect.zw * scale);
|
||||
rect = rect - (floor((rect - textureRect.xy) / textureRect.zw) * textureRect.zw);
|
||||
}
|
||||
else
|
||||
{
|
||||
rect = vec2(textureRect.xy + (texcoord * textureRect.zw));
|
||||
}
|
||||
gl_FragColor = texture2D(texture1, rect) * color;
|
||||
}"
|
||||
);
|
||||
@ -114,8 +132,10 @@ namespace FDK
|
||||
//シェーダーに値を送るためのハンドルを取得------
|
||||
MVPID = Game.Gl.GetUniformLocation(ShaderProgram, "mvp"); //拡大縮小、移動、回転のMatrix
|
||||
ColorID = Game.Gl.GetUniformLocation(ShaderProgram, "color"); //色合い
|
||||
ScaleID = Game.Gl.GetUniformLocation(ShaderProgram, "scale"); //スケール
|
||||
TextureRectID = Game.Gl.GetUniformLocation(ShaderProgram, "textureRect"); //テクスチャの切り抜きの座標と大きさ
|
||||
CameraID = Game.Gl.GetUniformLocation(ShaderProgram, "camera"); //テクスチャの切り抜きの座標と大きさ
|
||||
NoteModeID = Game.Gl.GetUniformLocation(ShaderProgram, "noteMode"); //テクスチャの切り抜きの座標と大きさ
|
||||
|
||||
|
||||
//------
|
||||
@ -582,6 +602,10 @@ namespace FDK
|
||||
//this.t2D描画(devicek x, y, rc画像内の描画領域;
|
||||
}
|
||||
|
||||
public void t2D_DisplayImage_RollNote(int x, int y, RectangleF rc)
|
||||
{
|
||||
this.t2D描画(x - (rc.Width / 2 * this.vcScaleRatio.X), y - (rc.Height / 2 * this.vcScaleRatio.Y), 1f, rc, true);
|
||||
}
|
||||
|
||||
public void t2D拡大率考慮中央基準描画(int x, int y)
|
||||
{
|
||||
@ -699,7 +723,7 @@ namespace FDK
|
||||
{
|
||||
this.t2D描画((int)x, (int)y, 1f, rc画像内の描画領域);
|
||||
}
|
||||
public void t2D描画(float x, float y, float depth, RectangleF rc画像内の描画領域, bool flipX = false, bool flipY = false)
|
||||
public void t2D描画(float x, float y, float depth, RectangleF rc画像内の描画領域, bool flipX = false, bool flipY = false, bool rollMode = false)
|
||||
{
|
||||
this.color4.Alpha = this._opacity / 255f;
|
||||
|
||||
@ -729,7 +753,6 @@ namespace FDK
|
||||
|
||||
Game.Gl.UseProgram(ShaderProgram);//Uniform4よりこれが先
|
||||
|
||||
//Game.Gl.Uniform1(Texture1ID, Texture_);
|
||||
Game.Gl.BindTexture(TextureTarget.Texture2D, Texture_); //テクスチャをバインド
|
||||
|
||||
//MVPを設定----
|
||||
@ -766,12 +789,14 @@ namespace FDK
|
||||
//------
|
||||
|
||||
Game.Gl.Uniform4(ColorID, new System.Numerics.Vector4(color4.Red, color4.Green, color4.Blue, color4.Alpha)); //変色用のカラーを設定
|
||||
Game.Gl.Uniform2(ScaleID, new System.Numerics.Vector2(vcScaleRatio.X, vcScaleRatio.Y)); //変色用のカラーを設定
|
||||
|
||||
//テクスチャの切り抜きの座標と大きさを設定
|
||||
Game.Gl.Uniform4(TextureRectID, new System.Numerics.Vector4(
|
||||
rc画像内の描画領域.X / rc全画像.Width, rc画像内の描画領域.Y / rc全画像.Height, //始まり
|
||||
rc画像内の描画領域.Width / rc全画像.Width, rc画像内の描画領域.Height / rc全画像.Height)); //大きさ、終わりではない
|
||||
|
||||
Game.Gl.Uniform1(NoteModeID, rollMode ? 1 : 0);
|
||||
|
||||
//描画-----
|
||||
Game.Gl.BindVertexArray(VAO);
|
||||
@ -923,12 +948,14 @@ namespace FDK
|
||||
//------
|
||||
|
||||
Game.Gl.Uniform4(ColorID, new System.Numerics.Vector4(color4.Red, color4.Green, color4.Blue, color4.Alpha)); //変色用のカラーを設定
|
||||
Game.Gl.Uniform2(ScaleID, new System.Numerics.Vector2(vcScaleRatio.X, vcScaleRatio.Y)); //変色用のカラーを設定
|
||||
|
||||
//テクスチャの切り抜きの座標と大きさを設定
|
||||
Game.Gl.Uniform4(TextureRectID, new System.Numerics.Vector4(
|
||||
rc画像内の描画領域.X / rc全画像.Width, rc画像内の描画領域.Y / rc全画像.Height, //始まり
|
||||
rc画像内の描画領域.Width / rc全画像.Width, rc画像内の描画領域.Height / rc全画像.Height)); //大きさ、終わりではない
|
||||
|
||||
Game.Gl.Uniform1(NoteModeID, 0);
|
||||
|
||||
//描画-----
|
||||
Game.Gl.BindVertexArray(VAO);
|
||||
|
@ -6,7 +6,8 @@
|
||||
"strings": {
|
||||
"default": "First Steps",
|
||||
"fr": "Premiers Pas",
|
||||
"ja": "第一歩"
|
||||
"ja": "第一歩",
|
||||
"zh": "初来乍到"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -18,7 +19,7 @@
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"A Normal Player": {
|
||||
@ -28,7 +29,8 @@
|
||||
"strings": {
|
||||
"default": "A Normal Player",
|
||||
"fr": "Un joueur Normal",
|
||||
"ja": "ふつうなプレイヤー"
|
||||
"ja": "ふつうなプレイヤー",
|
||||
"zh": "平凡无奇"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -40,7 +42,7 @@
|
||||
1,
|
||||
0,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"A very Normal Player": {
|
||||
@ -50,7 +52,8 @@
|
||||
"strings": {
|
||||
"default": "A very Normal Player",
|
||||
"fr": "Un joueur très Normal",
|
||||
"ja": "とてもふつうなプレイヤー"
|
||||
"ja": "とてもふつうなプレイヤー",
|
||||
"zh": "非常普通"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -62,7 +65,7 @@
|
||||
1,
|
||||
0,
|
||||
10
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"An extremely Normal player": {
|
||||
@ -72,7 +75,8 @@
|
||||
"strings": {
|
||||
"default": "An extremely Normal player",
|
||||
"fr": "Un joueur extrèmement Normal",
|
||||
"ja": "ずいぶんふつうなプレイヤー"
|
||||
"ja": "ずいぶんふつうなプレイヤー",
|
||||
"zh": "极其普通"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -84,7 +88,7 @@
|
||||
1,
|
||||
0,
|
||||
100
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Hard-boiled": {
|
||||
@ -94,7 +98,8 @@
|
||||
"strings": {
|
||||
"default": "Hard-boiled",
|
||||
"fr": "Dur à cuire",
|
||||
"ja": "ハードボイルド"
|
||||
"ja": "ハードボイルド",
|
||||
"zh": "玉琢成器"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -106,7 +111,7 @@
|
||||
2,
|
||||
0,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Hard as rock": {
|
||||
@ -116,7 +121,8 @@
|
||||
"strings": {
|
||||
"default": "Hard as rock",
|
||||
"fr": "Dur comme la pierre",
|
||||
"ja": "ロックハード"
|
||||
"ja": "ロックハード",
|
||||
"zh": "坚如磐石"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -128,7 +134,7 @@
|
||||
2,
|
||||
0,
|
||||
10
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Hard as diamonds": {
|
||||
@ -138,7 +144,8 @@
|
||||
"strings": {
|
||||
"default": "Hard as diamonds",
|
||||
"fr": "Dur comme du diamant",
|
||||
"ja": "ダイヤモンドハード"
|
||||
"ja": "ダイヤモンドハード",
|
||||
"zh": "金刚钻"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -150,7 +157,7 @@
|
||||
2,
|
||||
0,
|
||||
100
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"My first Extreme": {
|
||||
@ -160,7 +167,8 @@
|
||||
"strings": {
|
||||
"default": "My first Extreme",
|
||||
"fr": "Mon premier Extrème",
|
||||
"ja": "初めてのおに"
|
||||
"ja": "初めてのおに",
|
||||
"zh": "首战魔王"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -172,7 +180,7 @@
|
||||
3,
|
||||
0,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"An Extreme player": {
|
||||
@ -182,7 +190,8 @@
|
||||
"strings": {
|
||||
"default": "An Extreme player",
|
||||
"fr": "Un joueur Extrème",
|
||||
"ja": "おにのプレイヤー"
|
||||
"ja": "おにのプレイヤー",
|
||||
"zh": "魔王斗士"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -194,7 +203,7 @@
|
||||
3,
|
||||
0,
|
||||
10
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"A very Extreme player": {
|
||||
@ -204,7 +213,8 @@
|
||||
"strings": {
|
||||
"default": "A very Extreme player",
|
||||
"fr": "Un joueur très Extrème",
|
||||
"ja": "とてもおにのプレイヤー"
|
||||
"ja": "とてもおにのプレイヤー",
|
||||
"zh": "身经百战"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -216,7 +226,7 @@
|
||||
3,
|
||||
0,
|
||||
100
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"An extremely Extreme player": {
|
||||
@ -226,7 +236,8 @@
|
||||
"strings": {
|
||||
"default": "An extremely Extreme player",
|
||||
"fr": "Un joueur extrèmement Extrème",
|
||||
"ja": "ずいぶんおにのプレイヤー"
|
||||
"ja": "ずいぶんおにのプレイヤー",
|
||||
"zh": "横扫千军"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -238,7 +249,7 @@
|
||||
3,
|
||||
0,
|
||||
1000
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Free from errors": {
|
||||
@ -248,7 +259,8 @@
|
||||
"strings": {
|
||||
"default": "Free from errors",
|
||||
"fr": "Exempt d'erreurs",
|
||||
"ja": "エラーに当たらない"
|
||||
"ja": "エラーに当たらない",
|
||||
"zh": "不容差错"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -260,7 +272,7 @@
|
||||
3,
|
||||
1,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Unbreakable combo": {
|
||||
@ -270,7 +282,8 @@
|
||||
"strings": {
|
||||
"default": "Unbreakable combo",
|
||||
"fr": "Combo indestructible",
|
||||
"ja": "アンブレイカブルコンボ"
|
||||
"ja": "アンブレイカブルコンボ",
|
||||
"zh": "连不可破"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -282,7 +295,7 @@
|
||||
3,
|
||||
1,
|
||||
10
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Everlasting combo": {
|
||||
@ -292,7 +305,8 @@
|
||||
"strings": {
|
||||
"default": "Everlasting combo",
|
||||
"fr": "Combo éternel",
|
||||
"ja": "永遠のコンボ"
|
||||
"ja": "永遠のコンボ",
|
||||
"zh": "连击永恒"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -304,7 +318,7 @@
|
||||
3,
|
||||
1,
|
||||
100
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"100%": {
|
||||
@ -314,7 +328,8 @@
|
||||
"strings": {
|
||||
"default": "100%",
|
||||
"fr": "100%",
|
||||
"ja": "100点"
|
||||
"ja": "100点",
|
||||
"zh": "百发百中"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -326,7 +341,7 @@
|
||||
3,
|
||||
2,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Aims for perfection": {
|
||||
@ -336,7 +351,8 @@
|
||||
"strings": {
|
||||
"default": "Aims for perfection",
|
||||
"fr": "Vise la perfection",
|
||||
"ja": "完璧主義"
|
||||
"ja": "完璧主義",
|
||||
"zh": "完美主义"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -348,7 +364,7 @@
|
||||
3,
|
||||
2,
|
||||
10
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Flawless": {
|
||||
@ -358,7 +374,8 @@
|
||||
"strings": {
|
||||
"default": "Flawless",
|
||||
"fr": "Sans défaut",
|
||||
"ja": "寸分の狂いもない"
|
||||
"ja": "寸分の狂いもない",
|
||||
"zh": "完美无瑕"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -370,7 +387,7 @@
|
||||
3,
|
||||
2,
|
||||
100
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Eight stars": {
|
||||
@ -380,7 +397,8 @@
|
||||
"strings": {
|
||||
"default": "Eight stars",
|
||||
"fr": "Huit étoiles",
|
||||
"ja": "八つ星"
|
||||
"ja": "八つ星",
|
||||
"zh": "八颗星"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -392,7 +410,7 @@
|
||||
8,
|
||||
0,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Nine stars": {
|
||||
@ -402,7 +420,8 @@
|
||||
"strings": {
|
||||
"default": "Nine stars",
|
||||
"fr": "Neuf étoiles",
|
||||
"ja": "九つ星"
|
||||
"ja": "九つ星",
|
||||
"zh": "九颗星"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -414,7 +433,7 @@
|
||||
9,
|
||||
0,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Challenger": {
|
||||
@ -424,7 +443,8 @@
|
||||
"strings": {
|
||||
"default": "Challenger",
|
||||
"fr": "Challenger",
|
||||
"ja": "チャレンジャー"
|
||||
"ja": "チャレンジャー",
|
||||
"zh": "挑战者"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -436,7 +456,7 @@
|
||||
10,
|
||||
0,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Sweaty challenger": {
|
||||
@ -446,7 +466,8 @@
|
||||
"strings": {
|
||||
"default": "Sweaty challenger",
|
||||
"fr": "Challenger en sueur",
|
||||
"ja": "汗だくのチャレンジャー"
|
||||
"ja": "汗だくのチャレンジャー",
|
||||
"zh": "汗流浃背"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -458,7 +479,7 @@
|
||||
11,
|
||||
0,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Challenger from another world": {
|
||||
@ -468,7 +489,8 @@
|
||||
"strings": {
|
||||
"default": "Challenger from another world",
|
||||
"fr": "Challenger d'un autre monde",
|
||||
"ja": "異世界から来たチャレンジャー"
|
||||
"ja": "異世界から来たチャレンジャー",
|
||||
"zh": "来自异世界的挑战者"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -480,7 +502,7 @@
|
||||
12,
|
||||
0,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Unbeatable warrior": {
|
||||
@ -490,7 +512,8 @@
|
||||
"strings": {
|
||||
"default": "Unbeatable warrior",
|
||||
"fr": "Guerrier imbattable",
|
||||
"ja": "無敵の勇者"
|
||||
"ja": "無敵の勇者",
|
||||
"zh": "所向披靡"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -502,7 +525,7 @@
|
||||
13,
|
||||
0,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Eight shining stars": {
|
||||
@ -512,7 +535,8 @@
|
||||
"strings": {
|
||||
"default": "Eight shining stars",
|
||||
"fr": "Huit étoiles brillantes",
|
||||
"ja": "光る八つ星"
|
||||
"ja": "光る八つ星",
|
||||
"zh": "闪亮八星"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -524,7 +548,7 @@
|
||||
8,
|
||||
1,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Nine shining stars": {
|
||||
@ -534,7 +558,8 @@
|
||||
"strings": {
|
||||
"default": "Nine shining stars",
|
||||
"fr": "Neuf étoiles brillantes",
|
||||
"ja": "光る九つ星"
|
||||
"ja": "光る九つ星",
|
||||
"zh": "闪亮九星"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -546,7 +571,7 @@
|
||||
9,
|
||||
1,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Talented drummer": {
|
||||
@ -556,7 +581,8 @@
|
||||
"strings": {
|
||||
"default": "Talented drummer",
|
||||
"fr": "Batteur talentueux",
|
||||
"ja": "有能なドラマー"
|
||||
"ja": "有能なドラマー",
|
||||
"zh": "实力鼓手"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -568,7 +594,7 @@
|
||||
10,
|
||||
1,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Tenacious warrior": {
|
||||
@ -578,7 +604,8 @@
|
||||
"strings": {
|
||||
"default": "Tenacious warrior",
|
||||
"fr": "Guerrier tenace",
|
||||
"ja": "粘り強い勇者"
|
||||
"ja": "粘り強い勇者",
|
||||
"zh": "坚韧不拔"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -590,7 +617,7 @@
|
||||
11,
|
||||
1,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Drummer from another world": {
|
||||
@ -600,7 +627,8 @@
|
||||
"strings": {
|
||||
"default": "Drummer from another world",
|
||||
"fr": "Batteur d'un autre monde",
|
||||
"ja": "異世界から来たドラマー"
|
||||
"ja": "異世界から来たドラマー",
|
||||
"zh": "来自异世界的鼓手"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -612,7 +640,7 @@
|
||||
12,
|
||||
1,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Celestial divinity": {
|
||||
@ -622,7 +650,8 @@
|
||||
"strings": {
|
||||
"default": "Celestial divinity",
|
||||
"fr": "Divinité celeste",
|
||||
"ja": "天の神性"
|
||||
"ja": "天の神性",
|
||||
"zh": "天禀神赋"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -634,7 +663,7 @@
|
||||
13,
|
||||
1,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Eight sparkling stars": {
|
||||
@ -644,7 +673,8 @@
|
||||
"strings": {
|
||||
"default": "Eight sparkling stars",
|
||||
"fr": "Huit étoiles étincelantes",
|
||||
"ja": "輝く八つ星"
|
||||
"ja": "輝く八つ星",
|
||||
"zh": "闪耀八星"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -656,7 +686,7 @@
|
||||
8,
|
||||
2,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Nine sparkling stars": {
|
||||
@ -666,7 +696,8 @@
|
||||
"strings": {
|
||||
"default": "Nine sparkling stars",
|
||||
"fr": "Neuf étoiles étincelantes",
|
||||
"ja": "輝く九つ星"
|
||||
"ja": "輝く九つ星",
|
||||
"zh": "闪耀九星"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -678,7 +709,7 @@
|
||||
9,
|
||||
2,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Outstanding drummer": {
|
||||
@ -688,7 +719,8 @@
|
||||
"strings": {
|
||||
"default": "Outstanding drummer",
|
||||
"fr": "Batteur d'exception",
|
||||
"ja": "優秀なドラマー"
|
||||
"ja": "優秀なドラマー",
|
||||
"zh": "杰出鼓手"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -700,7 +732,7 @@
|
||||
10,
|
||||
2,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Eternal legend": {
|
||||
@ -710,7 +742,8 @@
|
||||
"strings": {
|
||||
"default": "Eternal legend",
|
||||
"fr": "Légende éternelle",
|
||||
"ja": "永遠の伝説"
|
||||
"ja": "永遠の伝説",
|
||||
"zh": "永恒传说"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -722,7 +755,7 @@
|
||||
11,
|
||||
2,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"Drummer from another dimension": {
|
||||
@ -732,7 +765,8 @@
|
||||
"strings": {
|
||||
"default": "Drummer from another dimension",
|
||||
"fr": "Batteur d'une autre dimention",
|
||||
"ja": "異次元から来たドラマー"
|
||||
"ja": "異次元から来たドラマー",
|
||||
"zh": "来自异次元的鼓手"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -744,7 +778,7 @@
|
||||
12,
|
||||
2,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"I sold my real life": {
|
||||
@ -754,7 +788,8 @@
|
||||
"strings": {
|
||||
"default": "I sold my real life",
|
||||
"fr": "J'ai vendu ma vie réele",
|
||||
"ja": "現実に手を離れてしまいました"
|
||||
"ja": "現実に手を離れてしまいました",
|
||||
"zh": "超越现世"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -766,7 +801,7 @@
|
||||
13,
|
||||
2,
|
||||
1
|
||||
],
|
||||
]
|
||||
}
|
||||
},
|
||||
"First Secret": {
|
||||
@ -776,7 +811,8 @@
|
||||
"strings": {
|
||||
"default": "First Secret",
|
||||
"fr": "Mon premier secret",
|
||||
"ja": "初めての秘密"
|
||||
"ja": "初めての秘密",
|
||||
"zh": "第一份秘密"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -793,5 +829,5 @@
|
||||
"Dashy's Secrets"
|
||||
]
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
@ -61,6 +61,12 @@ Game_Chara_Balloon_4P=0,-264
|
||||
;3人プレイ以上のふうせん連打時のキャラ画像Y座標。
|
||||
Game_Chara_Balloon_5P=0,-252
|
||||
|
||||
;ふうせん連打時のキャラ画像X座標。(X,Y)
|
||||
Game_Chara_Kusudama_X=435,1035,135,1335,735
|
||||
|
||||
;ふうせん連打時のキャラ画像Y座標。(X,Y)
|
||||
Game_Chara_Kusudama_Y=630,630,630,630,630
|
||||
|
||||
;ふうせん連打アクション時に使用するタイマーの更新間隔。(ms)
|
||||
Game_Chara_Balloon_Timer=16
|
||||
|
||||
|
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 39 KiB |
After Width: | Height: | Size: 40 KiB |
BIN
OpenTaiko/Global/Characters/01 - Template/Kusudama_Broke/0.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
OpenTaiko/Global/Characters/01 - Template/Kusudama_Idle/0.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
OpenTaiko/Global/Characters/01 - Template/Kusudama_Idle/1.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
OpenTaiko/Global/Characters/01 - Template/Kusudama_Idle/2.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
OpenTaiko/Global/Characters/01 - Template/Kusudama_Idle/3.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
OpenTaiko/Global/Characters/01 - Template/Kusudama_Idle/4.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
OpenTaiko/Global/Characters/01 - Template/Kusudama_Idle/5.png
Normal file
After Width: | Height: | Size: 41 KiB |
BIN
OpenTaiko/Global/Characters/01 - Template/Kusudama_Miss/0.png
Normal file
After Width: | Height: | Size: 40 KiB |
BIN
OpenTaiko/Global/Characters/01 - Template/Kusudama_Miss/1.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
OpenTaiko/Global/Characters/01 - Template/Kusudama_Miss/2.png
Normal file
After Width: | Height: | Size: 38 KiB |
BIN
OpenTaiko/Global/Characters/01 - Template/Kusudama_Miss/3.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
OpenTaiko/Global/Characters/01 - Template/Kusudama_Miss/4.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
OpenTaiko/Global/Characters/01 - Template/Kusudama_Miss/5.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
OpenTaiko/Global/Characters/01 - Template/Kusudama_Miss/6.png
Normal file
After Width: | Height: | Size: 17 KiB |
@ -768,7 +768,6 @@ namespace TJAPlayer3
|
||||
Timer?.Update();
|
||||
SoundManager.PlayTimer?.Update();
|
||||
FPS?.Update();
|
||||
ShowWindowTitleWithSoundType();
|
||||
|
||||
if (BeatScaling != null)
|
||||
{
|
||||
@ -3143,7 +3142,7 @@ for (int i = 0; i < 3; i++) {
|
||||
delay = "(" + SoundManager.GetSoundDelay() + "ms)";
|
||||
}
|
||||
AssemblyName asmApp = Assembly.GetExecutingAssembly().GetName();
|
||||
base.Text = asmApp.Name + " Ver." + VERSION + " (" + SoundManager.GetCurrentSoundDeviceType() + delay + ") (" + ((FPS != null) ? FPS.NowFPS : "??") + " FPS)";
|
||||
base.Text = asmApp.Name + " Ver." + VERSION + " (" + SoundManager.GetCurrentSoundDeviceType() + delay + ")";
|
||||
}
|
||||
|
||||
private void t終了処理()
|
||||
|
@ -761,63 +761,6 @@ namespace TJAPlayer3
|
||||
|
||||
#endregion
|
||||
|
||||
#region 終了演出
|
||||
|
||||
End_Clear_Chara = TxC(GAME + END + @$"Clear_Chara.png");
|
||||
End_Star = TxC(GAME + END + @$"Star.png");
|
||||
|
||||
End_Clear_Text = new CTexture[2];
|
||||
End_Clear_Text[0] = TxC(GAME + END + @$"Clear_Text.png");
|
||||
End_Clear_Text[1] = TxC(GAME + END + @$"Clear_Text_End.png");
|
||||
|
||||
End_Clear_L = new CTexture[5];
|
||||
End_Clear_R = new CTexture[5];
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
End_Clear_L[i] = TxC(GAME + END + @$"Clear{Path.DirectorySeparatorChar}" + @$"Clear_L_" + i.ToString() + ".png");
|
||||
End_Clear_R[i] = TxC(GAME + END + @$"Clear{Path.DirectorySeparatorChar}" + @$"Clear_R_" + i.ToString() + ".png");
|
||||
|
||||
}
|
||||
End_Clear_Text_ = TxC(GAME + END + @$"Clear{Path.DirectorySeparatorChar}" + @$"Clear_Text.png");
|
||||
End_Clear_Text_Effect = TxC(GAME + END + @$"Clear{Path.DirectorySeparatorChar}" + @$"Clear_Text_Effect.png");
|
||||
if (End_Clear_Text_Effect != null) End_Clear_Text_Effect.b加算合成 = true;
|
||||
|
||||
ClearFailed = TxC(GAME + END + @$"ClearFailed{Path.DirectorySeparatorChar}" + "Clear_Failed.png");
|
||||
ClearFailed1 = TxC(GAME + END + @$"ClearFailed{Path.DirectorySeparatorChar}" + "Clear_Failed1.png");
|
||||
ClearFailed2 = TxC(GAME + END + @$"ClearFailed{Path.DirectorySeparatorChar}" + "Clear_Failed2.png");
|
||||
|
||||
End_ClearFailed = new CTexture[26];
|
||||
for (int i = 0; i < 26; i++)
|
||||
End_ClearFailed[i] = TxC(GAME + END + @$"ClearFailed{Path.DirectorySeparatorChar}" + i.ToString() + ".png");
|
||||
|
||||
End_FullCombo = new CTexture[67];
|
||||
for (int i = 0; i < 67; i++)
|
||||
End_FullCombo[i] = TxC(GAME + END + @$"FullCombo{Path.DirectorySeparatorChar}" + i.ToString() + ".png");
|
||||
|
||||
End_FullComboLoop = new CTexture[3];
|
||||
for (int i = 0; i < 3; i++)
|
||||
End_FullComboLoop[i] = TxC(GAME + END + @$"FullCombo{Path.DirectorySeparatorChar}" + "loop_" + i.ToString() + ".png");
|
||||
|
||||
End_DondaFullComboBg = TxC(GAME + END + @$"DondaFullCombo{Path.DirectorySeparatorChar}" + "bg.png");
|
||||
|
||||
End_DondaFullCombo = new CTexture[62];
|
||||
for (int i = 0; i < 62; i++)
|
||||
End_DondaFullCombo[i] = TxC(GAME + END + @$"DondaFullCombo{Path.DirectorySeparatorChar}" + i.ToString() + ".png");
|
||||
|
||||
End_DondaFullComboLoop = new CTexture[3];
|
||||
for (int i = 0; i < 3; i++)
|
||||
End_DondaFullComboLoop[i] = TxC(GAME + END + @$"DondaFullCombo{Path.DirectorySeparatorChar}" + "loop_" + i.ToString() + ".png");
|
||||
|
||||
|
||||
End_Goukaku = new CTexture[3];
|
||||
|
||||
for (int i = 0; i < End_Goukaku.Length; i++)
|
||||
{
|
||||
End_Goukaku[i] = TxC(GAME + END + @$"Dan" + i.ToString() + ".png");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region GameMode
|
||||
|
||||
GameMode_Timer_Tick = TxC(GAME + GAMEMODE + @$"Timer_Tick.png");
|
||||
@ -2877,27 +2820,6 @@ namespace TJAPlayer3
|
||||
Lane_Background_Sub,
|
||||
Lane_Background_GoGo;
|
||||
#endregion
|
||||
#region 終了演出
|
||||
public CTexture End_Clear_Chara;
|
||||
public CTexture[] End_Clear_Text;
|
||||
public CTexture End_Star;
|
||||
|
||||
public CTexture[] End_Clear_L,
|
||||
End_Clear_R,
|
||||
End_ClearFailed,
|
||||
End_FullCombo,
|
||||
End_FullComboLoop,
|
||||
End_DondaFullCombo,
|
||||
End_DondaFullComboLoop,
|
||||
End_Goukaku;
|
||||
public CTexture End_Clear_Text_,
|
||||
End_Clear_Text_Effect,
|
||||
ClearFailed,
|
||||
ClearFailed1,
|
||||
ClearFailed2,
|
||||
End_DondaFullComboBg;
|
||||
|
||||
#endregion
|
||||
#region ゲームモード
|
||||
public CTexture GameMode_Timer_Frame,
|
||||
GameMode_Timer_Tick;
|
||||
|
@ -71,7 +71,6 @@ namespace TJAPlayer3
|
||||
{
|
||||
this.dbFailedTime = TJAPlayer3.Timer.NowTime;
|
||||
this.ct進行 = new CCounter( 0, 300, 22, TJAPlayer3.Timer );
|
||||
this.ctEnd_ClearFailed = new CCounter(0, 69, 30, TJAPlayer3.Timer);
|
||||
if ( TJAPlayer3.ConfigIni.eGameMode != EGame.OFF )
|
||||
{
|
||||
this.ct進行 = new CCounter( 0, 4000, 2, TJAPlayer3.Timer );
|
||||
@ -125,23 +124,6 @@ namespace TJAPlayer3
|
||||
{
|
||||
int[] y = new int[] { 0, 176 };
|
||||
|
||||
this.ctEnd_ClearFailed.Tick();
|
||||
if (this.ctEnd_ClearFailed.CurrentValue <= 20 || TJAPlayer3.Tx.ClearFailed == null)
|
||||
{
|
||||
TJAPlayer3.Tx.End_ClearFailed[Math.Min(this.ctEnd_ClearFailed.CurrentValue, TJAPlayer3.Tx.End_ClearFailed.Length - 1)]?.t2D描画(505, y[i] + 145);
|
||||
}
|
||||
else if(this.ctEnd_ClearFailed.CurrentValue >= 20 && this.ctEnd_ClearFailed.CurrentValue <= 67)
|
||||
{
|
||||
TJAPlayer3.Tx.ClearFailed?.t2D描画(502, y[i] + 192);
|
||||
}
|
||||
else if (this.ctEnd_ClearFailed.CurrentValue == 68)
|
||||
{
|
||||
TJAPlayer3.Tx.ClearFailed1?.t2D描画(502, y[i] + 192);
|
||||
}
|
||||
else if (this.ctEnd_ClearFailed.CurrentValue >= 69)
|
||||
{
|
||||
TJAPlayer3.Tx.ClearFailed2?.t2D描画(502, y[i] + 192);
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
@ -251,7 +233,6 @@ namespace TJAPlayer3
|
||||
|
||||
private bool failedSongPlayed;
|
||||
private CSound soundFailed;
|
||||
private CCounter ctEnd_ClearFailed;
|
||||
//private CTexture txStageFailed;
|
||||
// private CTexture txGameFailed;
|
||||
// private CTexture txBlack;
|
||||
|
@ -593,7 +593,7 @@ namespace TJAPlayer3
|
||||
{
|
||||
base.IsFirstDraw = false;
|
||||
}
|
||||
if (this.ct進行メイン != null && (TJAPlayer3.stage演奏ドラム画面.ePhaseID == CStage.EPhase.Game_EndStage || TJAPlayer3.stage演奏ドラム画面.ePhaseID == CStage.EPhase.Game_STAGE_CLEAR_FadeOut))
|
||||
if (this.ct進行メイン != null && (TJAPlayer3.stage演奏ドラム画面.ePhaseID == CStage.EPhase.Game_EndStage || TJAPlayer3.stage演奏ドラム画面.ePhaseID == CStage.EPhase.Game_STAGE_FAILED || TJAPlayer3.stage演奏ドラム画面.ePhaseID == CStage.EPhase.Game_STAGE_CLEAR_FadeOut))
|
||||
{
|
||||
this.ct進行メイン.Tick();
|
||||
|
||||
@ -898,29 +898,6 @@ namespace TJAPlayer3
|
||||
Dan_Gold_Perfect
|
||||
}
|
||||
|
||||
void StarDraw(int x, int y, int count, int starttime = 0, int Endtime = 20)
|
||||
{
|
||||
if (count >= 0 && count <= Endtime)
|
||||
{
|
||||
count += starttime;
|
||||
|
||||
if (count <= 11)
|
||||
{
|
||||
TJAPlayer3.Tx.End_Star.vcScaleRatio.X = count * 0.09f;
|
||||
TJAPlayer3.Tx.End_Star.vcScaleRatio.Y = count * 0.09f;
|
||||
TJAPlayer3.Tx.End_Star.Opacity = 255;
|
||||
TJAPlayer3.Tx.End_Star.t2D拡大率考慮中央基準描画(x, y);
|
||||
}
|
||||
else if (count <= 20)
|
||||
{
|
||||
TJAPlayer3.Tx.End_Star.vcScaleRatio.X = 1.0f;
|
||||
TJAPlayer3.Tx.End_Star.vcScaleRatio.Y = 1.0f;
|
||||
TJAPlayer3.Tx.End_Star.Opacity = (int)(255 - (255.0f / 9.0f) * (count - 11));
|
||||
TJAPlayer3.Tx.End_Star.t2D拡大率考慮中央基準描画(x, y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------
|
||||
#endregion
|
||||
}
|
||||
|
@ -449,6 +449,7 @@ namespace TJAPlayer3
|
||||
&& ( base.ePhaseID == CStage.EPhase.Common_NORMAL ))
|
||||
{
|
||||
this.actStageFailed.Start();
|
||||
this.actEnd.Start();
|
||||
TJAPlayer3.DTX.t全チップの再生停止();
|
||||
base.ePhaseID = CStage.EPhase.Game_STAGE_FAILED;
|
||||
}
|
||||
@ -600,7 +601,6 @@ namespace TJAPlayer3
|
||||
|
||||
this.t全体制御メソッド();
|
||||
|
||||
this.actPauseMenu.t進行描画();
|
||||
//this.actEnd.On進行描画();
|
||||
this.t進行描画_STAGEFAILED();
|
||||
|
||||
@ -621,6 +621,8 @@ namespace TJAPlayer3
|
||||
if (!ifp[i]) bIsFinishedPlaying = false;
|
||||
}
|
||||
|
||||
this.actPauseMenu.t進行描画();
|
||||
|
||||
//演奏終了→演出表示→フェードアウト
|
||||
if ( bIsFinishedPlaying && base.ePhaseID == CStage.EPhase.Common_NORMAL )
|
||||
{
|
||||
|
@ -451,7 +451,7 @@ namespace TJAPlayer3
|
||||
var _center_x = (x + x末端 + image_size) / 2;
|
||||
var _center_y = _adjust + (y + y末端) / 2;
|
||||
//TJAPlayer3.Tx.Notes[(int)_gt].t2D描画(_x0, _y0, new Rectangle(rollOrigin + TJAPlayer3.Skin.Game_Notes_Size[0] + _offset, 0, TJAPlayer3.Skin.Game_Notes_Size[0], TJAPlayer3.Skin.Game_Notes_Size[1]));
|
||||
_texarr.t2D拡大率考慮中央基準描画((int)_center_x, (int)_center_y, new Rectangle(rollOrigin + TJAPlayer3.Skin.Game_Notes_Size[0] + _offset, 0, TJAPlayer3.Skin.Game_Notes_Size[0], TJAPlayer3.Skin.Game_Notes_Size[1]));
|
||||
_texarr.t2D_DisplayImage_RollNote((int)_center_x, (int)_center_y, new Rectangle(rollOrigin + TJAPlayer3.Skin.Game_Notes_Size[0] + _offset, 0, TJAPlayer3.Skin.Game_Notes_Size[0], TJAPlayer3.Skin.Game_Notes_Size[1]));
|
||||
//t2D拡大率考慮中央基準描画 t2D中心基準描画
|
||||
|
||||
// Tail
|
||||
|