建档
This commit is contained in:
58
source/Asset/AnimationStruct.h
Normal file
58
source/Asset/AnimationStruct.h
Normal file
@@ -0,0 +1,58 @@
|
||||
#pragma once
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <variant>
|
||||
#include <unordered_map>
|
||||
#include <SDL.h>
|
||||
#include "Tool/Blob.hpp"
|
||||
#include "Tool/Tool_String.h"
|
||||
#include "Tool/Common.h"
|
||||
|
||||
class ScriptData;
|
||||
namespace AniScriptParser
|
||||
{
|
||||
using AniFlag = std::variant<
|
||||
int,
|
||||
float,
|
||||
VecPos,
|
||||
VecFPos,
|
||||
std::string,
|
||||
std::vector<int>,
|
||||
std::vector<float>>;
|
||||
struct AniFrame
|
||||
{
|
||||
std::string Img_Path; // img路径
|
||||
int Img_Index; // img索引
|
||||
VecPos Img_Pos; // img位置
|
||||
std::vector<std::vector<int>> AttackBox; // 攻击框
|
||||
std::vector<std::vector<int>> DamageBox; // 受击框
|
||||
std::unordered_map<std::string, AniFlag> Flag; // Frame特效数据
|
||||
int Delay; // 延迟
|
||||
};
|
||||
struct AniInfo
|
||||
{
|
||||
std::vector<std::string> Img_List; // img列表
|
||||
std::vector<AniFrame> Frame; // ani列表
|
||||
std::unordered_map<std::string, AniFlag> Flag; // ani特效数据
|
||||
};
|
||||
|
||||
struct AlsAniInfo
|
||||
{
|
||||
std::string path;
|
||||
std::vector<int> layer;
|
||||
};
|
||||
struct AlsInfo
|
||||
{
|
||||
std::unordered_map<std::string, AlsAniInfo> AniList; // Ani列表
|
||||
};
|
||||
|
||||
// 工具函数
|
||||
std::string Get_Ani_Flag(int data);
|
||||
std::string Get_Ani_Effect_Type(int data);
|
||||
std::string Get_Ani_Flip_Type(int data);
|
||||
std::string Get_Ani_Damage_Type(int data);
|
||||
|
||||
// Ani脚本的读取逻辑
|
||||
AniInfo StructAniInfo(Blob blob);
|
||||
AlsInfo StructAlsInfo(ScriptData &blob);
|
||||
};
|
||||
Reference in New Issue
Block a user