1
0
mirror of synced 2024-11-24 07:30:21 +01:00
This commit is contained in:
0auBSQ 2023-01-22 20:17:26 +09:00
commit de3febf001
13 changed files with 487 additions and 43 deletions

View File

@ -22,14 +22,14 @@ namespace TJAPlayer3
private static readonly Dictionary<int, string> dictionnary = new Dictionary<int, string>
{
[0] = "",//"更改系统语言",
[0] = "更改系统游玩时和菜单的语言",
[1] = "系统语言",
[2] = "<< 返回上级菜单",
[3] = "",//"返回至上级菜单",
[3] = "返回至上级菜单",
[4] = "重新载入曲目",
[5] = "",//"重新扫描曲目文件夹并载入曲目",
[5] = "重新扫描曲目文件夹并载入曲目",
[6] = "玩家数量",
[7] = "",//"选择玩家数量",
[7] = "选择玩家数量,以决定是否由2人游玩",
[8] = "完美模式",
[9] = "选择多少个“不可”\n" +
"会导致演奏失败\n" +
@ -56,16 +56,16 @@ namespace TJAPlayer3
"— 4左向半圆",
[18] = "此选项作用不明会导致CPU占用增加\n" +
"当曲目播放速度低于0.9x时可能会出现问题",
[19] = "",//"切换全屏/窗口模式",
[19] = "切换全屏/窗口模式",
[20] = "从DTXMania移植的无效设置\n" +
"没有任何作用",
[21] = "",//"选择随机选曲时是否采用子文件夹",
[21] = "选择随机选曲时是否进入子文件夹",
[22] = "打开后帧率会保持60fps音符滚动会更加顺畅\n" +
"但输入延迟会增加\n" +
"关闭后帧率不会受到限制,输入延迟会降低但\n" +
"音符滚动会更加不稳定",
[23] = "若此选项开启但文件夹中没有视频,背景会变为全黑",
[24] = "",//"背景动画开关",
[24] = "选择是否播放背景动画",
[25] = "曲目预览等待时间\n" +
"降低该值或将导致预览在滚动曲目列表时就开始播放\n" +
"范围0—10000ms",
@ -76,7 +76,7 @@ namespace TJAPlayer3
[28] = "背景视频不可见时请调高此选项\n" +
"— 0完全透明,\n" +
"— 255完全不透明",
[29] = "",//"音乐播放开关",
[29] = "选择是否播放音乐",
[30] = "选择是否在曲目文件夹中自动存储score.ini文件\n" +
"曲目偏移量被保存在该文件中,\n" +
"所以关闭敲击音效时请打开此选项",
@ -128,13 +128,13 @@ namespace TJAPlayer3
"关闭会确保无声音延迟,但音符滚动会更加不稳定\n" +
"关闭时DTXMania会使用其原始的计时器\n" +
"此选项只在启用WASAPI或ASIO时生效",
[47] = "",//"显示角色图片",
[48] = "",//"显示舞者图片",
[49] = "",//"显示人群图片",
[50] = "",//"显示跑者图片",
[51] = "",//"显示页脚图片",
[47] = "显示角色图片",
[48] = "显示舞者图片",
[49] = "显示人群图片",
[50] = "显示跑者图片",
[51] = "显示页脚图片",
[52] = "选择是否在加载曲目时就开始渲染图片",
[53] = "",//"显示小角色图片",
[53] = "显示小角色图片",
[54] = "从System文件夹中选择皮肤",
[55] = "二级菜单:设置系统按键",
[56] = "玩家1自动演奏",
@ -172,7 +172,7 @@ namespace TJAPlayer3
[74] = "锁定音符模式",
[75] = "切换是否会将空白处的敲击判断为“不可”",
[76] = "最小连打显示",
[77] = "选择开始显示连的数量\n" +
[77] = "选择开始显示连的数量\n" +
"范围1—99999",
[78] = "判定圆圈调整",
[79] = "升高此值会使判定区域右移\n" +
@ -194,7 +194,7 @@ namespace TJAPlayer3
[87] = "谱面分歧动画",
[88] = "— TYPE-A第二代\n" +
"— TYPE-B第三代",
[89] = "幸存者模式",
[89] = "生存模式",
[90] = "此模式不可用\n" +
"此模式实现了一个类似stepmania的计时器系统\n" +
"但部分代码缺失导致功能受限",

View File

@ -43,7 +43,7 @@ namespace TJAPlayer3
const string TAIKO = @"6_Taiko\";
const string GAUGE = @"7_Gauge\";
public const string FOOTER = @"8_Footer\";
const string END = @"9_End\";
public const string END = @"9_End\";
const string EFFECTS = @"10_Effects\";
const string BALLOON = @"11_Balloon\";
const string LANE = @"12_Lane\";

View File

@ -31,11 +31,14 @@ namespace TJAPlayer3
bSongsPlayed = false;
this.ct進行メイン = new CCounter(0, 300, 22, TJAPlayer3.Timer);
/*
this.ctEnd_ClearFailed = new CCounter(0, 69, 30, TJAPlayer3.Timer);
this.ctEnd_FullCombo = new CCounter(0, 66, 33, TJAPlayer3.Timer);
this.ctEnd_FullComboLoop = new CCounter(0, 2, 30, TJAPlayer3.Timer);
this.ctEnd_DondaFullCombo = new CCounter(0, 61, 33, TJAPlayer3.Timer);
this.ctEnd_DondaFullComboLoop = new CCounter(0, 2, 30, TJAPlayer3.Timer);
*/
// モードの決定。クリア失敗・フルコンボも事前に作っとく。
if (TJAPlayer3.stage選曲.n確定された曲の難易度[0] == (int)Difficulty.Tower)
@ -134,6 +137,20 @@ namespace TJAPlayer3
this.b再生済み = false;
if (!base.b活性化してない)
{
var origindir = CSkin.Path($"{TextureLoader.BASE}{TextureLoader.GAME}{TextureLoader.END}");
FailedScript = new EndAnimeScript($@"{origindir}ClearFailed\Script.lua");
FailedScript.Init();
ClearScript = new EndAnimeScript($@"{origindir}Clear\Script.lua");
ClearScript.Init();
FullComboScript = new EndAnimeScript($@"{origindir}FullCombo\Script.lua");
FullComboScript.Init();
DondaFullComboScript = new EndAnimeScript($@"{origindir}DondaFullCombo\Script.lua");
DondaFullComboScript.Init();
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
this.soundClear[i] = TJAPlayer3.Sound管理.tサウンドを生成する(CSkin.Path(@"Sounds\Clear.ogg"), ESoundGroup.SoundEffect);
@ -150,6 +167,10 @@ namespace TJAPlayer3
{
if (!base.b活性化してない)
{
FailedScript.Dispose();
ClearScript.Dispose();
FullComboScript.Dispose();
DondaFullComboScript.Dispose();
for (int i = 0; i < TJAPlayer3.ConfigIni.nPlayerCount; i++)
{
this.soundClear[i]?.t解放する();
@ -166,8 +187,13 @@ namespace TJAPlayer3
// ------------------------------------
private void showEndEffect_Failed(int i)
{
FailedScript.Update(i);
FailedScript.Draw(i);
int[] y = new int[] { 0, 176 };
/*
this.ctEnd_ClearFailed.t進行();
if (this.ctEnd_ClearFailed.n現在の値 <= 20 || TJAPlayer3.Tx.ClearFailed == null)
{
@ -185,9 +211,14 @@ namespace TJAPlayer3
{
TJAPlayer3.Tx.ClearFailed2?.t2D描画(TJAPlayer3.app.Device, 502, y[i] + 192);
}
*/
}
private void showEndEffect_Clear(int i)
{
ClearScript.Update(i);
ClearScript.Draw(i);
/*
int[] y = new int[] { 210, 386 };
#region[ ]
//登場アニメは20フレーム。うち最初の5フレームは半透過状態。
@ -355,10 +386,16 @@ namespace TJAPlayer3
}
#endregion
*/
}
private void showEndEffect_FullCombo(int i)
{
FullComboScript.Update(i);
FullComboScript.Draw(i);
/*
int[] y = new int[] { 0, 176 };
this.ctEnd_FullCombo.t進行();
@ -369,10 +406,15 @@ namespace TJAPlayer3
this.ctEnd_FullComboLoop.t進行Loop();
TJAPlayer3.Tx.End_FullComboLoop[this.ctEnd_FullComboLoop.n現在の値]?.t2D描画(TJAPlayer3.app.Device, 330, y[i] + 196);
}
*/
}
private void showEndEffect_DondaFullCombo(int i)
{
DondaFullComboScript.Update(i);
DondaFullComboScript.Draw(i);
/*
int[] y = new int[] { 0, 176 };
this.ctEnd_DondaFullCombo.t進行();
@ -410,18 +452,22 @@ namespace TJAPlayer3
switch (this.Mode[i])
{
case EndMode.StageFailed:
FailedScript.PlayEndAnime(i);
this.soundFailed[i]?.t再生を開始する();
TJAPlayer3.Skin.voiceClearFailed[TJAPlayer3.GetActualPlayer(i)]?.t再生する();
break;
case EndMode.StageCleared:
ClearScript.PlayEndAnime(i);
this.soundClear[i]?.t再生を開始する();
TJAPlayer3.Skin.voiceClearClear[TJAPlayer3.GetActualPlayer(i)]?.t再生する();
break;
case EndMode.StageFullCombo:
FullComboScript.PlayEndAnime(i);
this.soundFullCombo[i]?.t再生を開始する();
TJAPlayer3.Skin.voiceClearFullCombo[TJAPlayer3.GetActualPlayer(i)]?.t再生する();
break;
case EndMode.StageDondaFullCombo:
DondaFullComboScript.PlayEndAnime(i);
this.soundDondaFullCombo[i]?.t再生を開始する();
TJAPlayer3.Skin.voiceClearAllPerfect[TJAPlayer3.GetActualPlayer(i)]?.t再生する();
break;
@ -469,16 +515,24 @@ namespace TJAPlayer3
#region[ private ]
//-----------------
private EndAnimeScript FailedScript;
private EndAnimeScript ClearScript;
private EndAnimeScript FullComboScript;
private EndAnimeScript DondaFullComboScript;
bool b再生済み;
bool bリザルトボイス再生済み;
bool bSongsPlayed = false;
CCounter ct進行メイン;
/*
CCounter ctEnd_ClearFailed;
CCounter ctEnd_FullCombo;
CCounter ctEnd_FullComboLoop;
CCounter ctEnd_DondaFullCombo;
CCounter ctEnd_DondaFullComboLoop;
*/
CCounter ct進行Loop;
CSound[] soundClear = new CSound[4];

View File

@ -0,0 +1,83 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NLua;
using FDK;
namespace TJAPlayer3
{
class EndAnimeScript : ScriptBG
{
private LuaFunction LuaPlayEndAnime;
public EndAnimeScript(string filePath) : base(filePath)
{
if (LuaScript != null)
{
LuaPlayEndAnime = LuaScript.GetFunction("playEndAnime");
}
}
public new void Dispose()
{
base.Dispose();
LuaPlayEndAnime?.Dispose();
}
public void PlayEndAnime(int player)
{
if (LuaScript == null) return;
try
{
LuaPlayEndAnime.Call(player);
}
catch (Exception ex)
{
}
}
public new void Update(int player)
{
if (LuaScript == null) return;
try
{
float currentFloorPositionMax140 = 0;
if (TJAPlayer3.stage選曲.r確定された曲.arスコア[5] != null)
{
int maxFloor = TJAPlayer3.stage選曲.r確定された曲.arスコア[5]..nTotalFloor;
int nightTime = Math.Max(140, maxFloor / 2);
currentFloorPositionMax140 = Math.Min(TJAPlayer3.stage演奏ドラム画面.actPlayInfo.NowMeasure[0] / (float)nightTime, 1f);
}
LuaUpdateValues.Call(TJAPlayer3.FPS.DeltaTime, TJAPlayer3.FPS.n現在のFPS, TJAPlayer3.stage演奏ドラム画面.bIsAlreadyCleared, (double)currentFloorPositionMax140);
/*LuaScript.SetObjectToPath("fps", TJAPlayer3.FPS.n現在のFPS);
LuaScript.SetObjectToPath("deltaTime", TJAPlayer3.FPS.DeltaTime);
LuaScript.SetObjectToPath("isClear", TJAPlayer3.stage演奏ドラム画面.bIsAlreadyCleared);
LuaScript.SetObjectToPath("towerNightOpacity", (double)(255 * currentFloorPositionMax140));*/
if (!TJAPlayer3.stage演奏ドラム画面.bPAUSE) LuaUpdate.Call(player);
}
catch (Exception ex)
{
LuaScript.Dispose();
LuaScript = null;
}
}
public new void Draw(int player)
{
if (LuaScript == null) return;
try
{
LuaDraw.Call(player);
}
catch (Exception ex)
{
LuaScript.Dispose();
LuaScript = null;
}
}
}
}

View File

@ -35,6 +35,10 @@ namespace TJAPlayer3
{
Textures[fileName]?.t2D描画(TJAPlayer3.app.Device, (int)x, (int)y);
}
public void DrawRectGraph(double x, double y, int rect_x, int rect_y, int rect_width, int rect_height, string fileName)
{
Textures[fileName]?.t2D描画(TJAPlayer3.app.Device, (int)x, (int)y, new System.Drawing.RectangleF(rect_x, rect_y, rect_width, rect_height));
}
public void DrawGraphCenter(double x, double y, string fileName)
{
Textures[fileName]?.t2D拡大率考慮中央基準描画(TJAPlayer3.app.Device, (int)x, (int)y);
@ -71,15 +75,15 @@ namespace TJAPlayer3
{
public Dictionary<string, CTexture> Textures;
private Lua LuaScript;
protected Lua LuaScript;
private LuaFunction LuaSetConstValues;
private LuaFunction LuaUpdateValues;
private LuaFunction LuaClearIn;
private LuaFunction LuaClearOut;
private LuaFunction LuaInit;
private LuaFunction LuaUpdate;
private LuaFunction LuaDraw;
protected LuaFunction LuaSetConstValues;
protected LuaFunction LuaUpdateValues;
protected LuaFunction LuaClearIn;
protected LuaFunction LuaClearOut;
protected LuaFunction LuaInit;
protected LuaFunction LuaUpdate;
protected LuaFunction LuaDraw;
public ScriptBG(string filePath)
{
@ -93,7 +97,8 @@ namespace TJAPlayer3
LuaScript["func"] = new ScriptBGFunc(Textures, Path.GetDirectoryName(filePath));
try
{
using (var streamAPI = new StreamReader("BGScriptAPI.lua", Encoding.UTF8))
{
using (var stream = new StreamReader(filePath, Encoding.UTF8))
@ -111,6 +116,12 @@ namespace TJAPlayer3
LuaUpdate = LuaScript.GetFunction("update");
LuaDraw = LuaScript.GetFunction("draw");
}
catch (Exception ex)
{
LuaScript.Dispose();
LuaScript = null;
}
}
public void Dispose()
{
List<CTexture> texs = new List<CTexture>();

View File

@ -153,6 +153,7 @@
<Compile Include="Songs\C曲リストードComparers\C曲リストードComparerSubtitle.cs" />
<Compile Include="Stages\01.StartUp\CCharacter.cs" />
<Compile Include="Stages\01.StartUp\CPuchichara.cs" />
<Compile Include="Stages\07.Game\Taiko\EndAnimeScript.cs" />
<Compile Include="Stages\07.Game\Taiko\NotesManager.cs" />
<Compile Include="Stages\07.Game\Taiko\ScriptBG.cs" />
<Compile Include="Stages\15.OpenEncyclopedia\CEncyclopediaControler.cs" />

View File

@ -0,0 +1,148 @@
--func:DrawText(x, y, text);
--func:DrawNum(x, y, num);
--func:AddGraph("filename");
--func:DrawGraph(x, y, filename);
--func:DrawRectGraph(x, y, rect_x, rect_y, rect_width, rect_height, filename);
--func:SetOpacity(opacity, "filename");
--func:SetScale(xscale, yscale, "filename");
--func:SetColor(r, g, b, "filename");
local y = { 210, 386 }
local sideTextureCount = 4
local animeCounter = { 0, 0 }
local nowFrame = { 0, 0 }
local textScales = { 1.04, 1.11, 1.15, 1.19, 1.23, 1.26, 1.30, 1.31, 1.32, 1.32, 1.32, 1.30, 1.30, 1.26, 1.25, 1.19, 1.15, 1.11, 1.05, 1.0 }
local textOpacitys = { 43, 85, 128, 170, 213, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 }
local side_ret = { 1.0, 0.99, 0.98, 0.97, 0.96, 0.95, 0.96, 0.97, 0.98, 0.99, 1.0 }
function clearIn(player)
end
function clearOut(player)
end
function playEndAnime(player)
animeCounter = { 0, 0 }
end
function init()
func:AddGraph("Clear_Text.png")
func:AddGraph("Clear_Text_Effect.png")
for i = 0 , sideTextureCount do
func:AddGraph("Clear_L_"..tostring(i)..".png")
func:AddGraph("Clear_R_"..tostring(i)..".png")
end
end
function update(player)
animeCounter[player + 1] = animeCounter[player + 1] + (45.4 * deltaTime)
nowFrame[player + 1] = math.floor(animeCounter[player + 1] + 0.5)
end
function draw(player)
if nowFrame[player + 1] >= 17 then
if nowFrame[player + 1] <= 36 then
func:SetScale(1.0, textScales[nowFrame[player + 1] - 17 + 1], "Clear_Text.png")
func:SetOpacity(textOpacitys[nowFrame[player + 1] - 17 + 1], "Clear_Text.png")
func:DrawRectGraph(634, y[player + 1] - ((90 * textScales[nowFrame[player + 1] - 17 + 1]) - 90), 0, 0, 90, 90, "Clear_Text.png")
else
func:SetScale(1.0, 1.0, "Clear_Text.png")
func:DrawRectGraph(634, y[player + 1], 0, 0, 90, 90, "Clear_Text.png")
end
end
if nowFrame[player + 1] >= 19 then
if nowFrame[player + 1] <= 38 then
func:SetScale(1.0, textScales[nowFrame[player + 1] - 19 + 1], "Clear_Text.png")
func:SetOpacity(textOpacitys[nowFrame[player + 1] - 19 + 1], "Clear_Text.png")
func:DrawRectGraph(692, y[player + 1] - ((90 * textScales[nowFrame[player + 1] - 19 + 1]) - 90), 90, 0, 90, 90, "Clear_Text.png")
else
func:SetScale(1.0, 1.0, "Clear_Text.png")
func:DrawRectGraph(692, y[player + 1], 90, 0, 90, 90, "Clear_Text.png")
end
end
if nowFrame[player + 1] >= 21 then
if nowFrame[player + 1] <= 40 then
func:SetScale(1.0, textScales[nowFrame[player + 1] - 21 + 1], "Clear_Text.png")
func:SetOpacity(textOpacitys[nowFrame[player + 1] - 21 + 1], "Clear_Text.png")
func:DrawRectGraph(750, y[player + 1] - ((90 * textScales[nowFrame[player + 1] - 21 + 1]) - 90), 180, 0, 90, 90, "Clear_Text.png")
else
func:SetScale(1.0, 1.0, "Clear_Text.png")
func:DrawRectGraph(750, y[player + 1], 180, 0, 90, 90, "Clear_Text.png")
end
end
if nowFrame[player + 1] >= 23 then
if nowFrame[player + 1] <= 42 then
func:SetScale(1.0, textScales[nowFrame[player + 1] - 23 + 1], "Clear_Text.png")
func:SetOpacity(textOpacitys[nowFrame[player + 1] - 23 + 1], "Clear_Text.png")
func:DrawRectGraph(819, y[player + 1] - ((90 * textScales[nowFrame[player + 1] - 23 + 1]) - 90), 270, 0, 90, 90, "Clear_Text.png")
else
func:SetScale(1.0, 1.0, "Clear_Text.png")
func:DrawRectGraph(819, y[player + 1], 270, 0, 90, 90, "Clear_Text.png")
end
end
if nowFrame[player + 1] >= 25 then
if nowFrame[player + 1] <= 44 then
func:SetScale(1.0, textScales[nowFrame[player + 1] - 25 + 1], "Clear_Text.png")
func:SetOpacity(textOpacitys[nowFrame[player + 1] - 25 + 1], "Clear_Text.png")
func:DrawRectGraph(890, y[player + 1] + 2 - ((90 * textScales[nowFrame[player + 1] - 25 + 1]) - 90), 360, 0, 90, 90, "Clear_Text.png")
else
func:SetScale(1.0, 1.0, "Clear_Text.png")
func:DrawRectGraph(890, y[player + 1] + 2, 360, 0, 90, 90, "Clear_Text.png")
end
end
if nowFrame[player + 1] >= 50 and nowFrame[player + 1] < 90 then
if nowFrame[player + 1] < 70 then
func:SetOpacity((nowFrame[player + 1] - 50) * (255 / 20), "Clear_Text_Effect.png")
func:DrawGraph(634, y[player + 1] - 2, "Clear_Text_Effect.png")
else
func:SetOpacity(255 - ((nowFrame[player + 1] - 70) * (255 / 20)), "Clear_Text_Effect.png")
func:DrawGraph(634, y[player + 1] - 2, "Clear_Text_Effect.png")
end
end
if nowFrame[player + 1] <= 11 then
func:DrawGraph(697, y[player + 1] - 30, "Clear_L_1.png")
func:SetOpacity((11.0 / nowFrame[player + 1]) * 255, "Clear_L_1.png")
func:DrawGraph(738, y[player + 1] - 30, "Clear_R_1.png")
func:SetOpacity((11.0 / nowFrame[player + 1]) * 255, "Clear_R_1.png")
elseif nowFrame[player + 1] <= 35 then
func:DrawGraph(697 - ((nowFrame[player + 1] - 12) * 10), y[player + 1] - 30, "Clear_L_0.png")
func:DrawGraph(738 + ((nowFrame[player + 1] - 12) * 10), y[player + 1] - 30, "Clear_R_0.png")
elseif nowFrame[player + 1] <= 46 then
func:DrawGraph(466, y[player + 1] - 30, "Clear_L_0.png")
func:SetScale(side_ret[nowFrame[player + 1] - 36 + 1], 1.0, "Clear_L_0.png")
func:DrawGraph(1136 - 180 * side_ret[nowFrame[player + 1] - 36 + 1], y[player + 1] - 30, "Clear_R_0.png")
func:SetScale(side_ret[nowFrame[player + 1] - 36 + 1], 1.0, "Clear_R_0.png")
elseif nowFrame[player + 1] <= 49 then
func:DrawGraph(466, y[player + 1] - 30, "Clear_L_1.png")
func:DrawGraph(956, y[player + 1] - 30, "Clear_R_1.png")
elseif nowFrame[player + 1] <= 54 then
func:DrawGraph(466, y[player + 1] - 30, "Clear_L_2.png")
func:DrawGraph(956, y[player + 1] - 30, "Clear_R_2.png")
elseif nowFrame[player + 1] <= 58 then
func:DrawGraph(466, y[player + 1] - 30, "Clear_L_3.png")
func:DrawGraph(956, y[player + 1] - 30, "Clear_R_3.png")
else
func:DrawGraph(466, y[player + 1] - 30, "Clear_L_4.png")
func:DrawGraph(956, y[player + 1] - 30, "Clear_R_4.png")
end
func:DrawNum(0, 0, nowFrame[player + 1])
end

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,57 @@
--func:DrawText(x, y, text);
--func:DrawNum(x, y, num);
--func:AddGraph("filename");
--func:DrawGraph(x, y, filename);
--func:SetOpacity(opacity, "filename");
--func:SetScale(xscale, yscale, "filename");
--func:SetColor(r, g, b, "filename");
local x = { 505, 505 }
local y = { 145, 321 }
local animeCounter = { 0, 0 }
local nowFrame = { 0, 0 }
local textureCount = 25
local useExtraAnime = true
function clearIn(player)
end
function clearOut(player)
end
function playEndAnime(player)
animeCounter = { 0, 0 }
nowFrame = { 0, 0 }
end
function init()
for i = 0 , textureCount do
func:AddGraph(tostring(i)..".png")
end
if useExtraAnime then
func:AddGraph("Clear_Failed.png")
func:AddGraph("Clear_Failed1.png")
func:AddGraph("Clear_Failed2.png")
end
end
function update(player)
animeCounter[player + 1] = animeCounter[player + 1] + (33.3 * deltaTime)
nowFrame[player + 1] = math.floor(animeCounter[player + 1] + 0.5)
end
function draw(player)
if nowFrame[player + 1] <= 20 or not(useExtraAnime) then
func:DrawGraph(x[player + 1], y[player + 1], tostring(math.min(nowFrame[player + 1], textureCount))..".png")
elseif nowFrame[player + 1] >= 20 and nowFrame[player + 1] <= 67 then
func:DrawGraph(x[player + 1] - 3, y[player + 1] + 47, "Clear_Failed.png")
elseif nowFrame[player + 1] == 68 then
func:DrawGraph(x[player + 1] - 3, y[player + 1] + 47, "Clear_Failed1.png")
elseif nowFrame[player + 1] >= 69 then
func:DrawGraph(x[player + 1] - 3, y[player + 1] + 47, "Clear_Failed2.png")
end
end

View File

@ -0,0 +1,47 @@
--func:DrawText(x, y, text);
--func:DrawNum(x, y, num);
--func:AddGraph("filename");
--func:DrawGraph(x, y, filename);
--func:SetOpacity(opacity, "filename");
--func:SetScale(xscale, yscale, "filename");
--func:SetColor(r, g, b, "filename");
local x = { 332, 332 }
local y = { 192, 368 }
local animeCounter = { 0, 0 }
local nowFrame = { 0, 0 }
local textureCount = 61
function clearIn(player)
end
function clearOut(player)
end
function playEndAnime(player)
animeCounter = { 0, 0 }
nowFrame = { 0, 0 }
end
function init()
func:AddGraph("bg.png")
for i = 0 , textureCount do
func:AddGraph(tostring(i)..".png")
end
end
function update(player)
animeCounter[player + 1] = animeCounter[player + 1] + (30.3 * deltaTime)
nowFrame[player + 1] = math.floor(animeCounter[player + 1] + 0.5)
end
function draw(player)
if nowFrame[player + 1] >= 34 then
func:DrawGraph(x[player + 1], y[player + 1], "bg.png")
end
if nowFrame[player + 1] <= 20 or not(useExtraAnime) then
func:DrawGraph(x[player + 1] - 2, y[player + 1] - 142, tostring(math.min(nowFrame[player + 1], textureCount))..".png")
end
end

View File

@ -0,0 +1,43 @@
--func:DrawText(x, y, text);
--func:DrawNum(x, y, num);
--func:AddGraph("filename");
--func:DrawGraph(x, y, filename);
--func:SetOpacity(opacity, "filename");
--func:SetScale(xscale, yscale, "filename");
--func:SetColor(r, g, b, "filename");
local x = { 330, 330 }
local y = { 50, 226 }
local animeCounter = { 0, 0 }
local nowFrame = { 0, 0 }
local textureCount = 66
function clearIn(player)
end
function clearOut(player)
end
function playEndAnime(player)
animeCounter = { 0, 0 }
nowFrame = { 0, 0 }
end
function init()
for i = 0 , textureCount do
func:AddGraph(tostring(i)..".png")
end
end
function update(player)
animeCounter[player + 1] = animeCounter[player + 1] + (30.3 * deltaTime)
nowFrame[player + 1] = math.floor(animeCounter[player + 1] + 0.5)
end
function draw(player)
if nowFrame[player + 1] <= 20 or not(useExtraAnime) then
func:DrawGraph(x[player + 1], y[player + 1], tostring(math.min(nowFrame[player + 1], textureCount))..".png")
end
end