DOF/sqr/User/Object/Map/TileObject.nut

61 lines
1.8 KiB
Plaintext

/*
文件名:TileObject.nut
路径:User/Object/Map/TileObject.nut
创建日期:2024-11-28 23:17
文件用途:地板类
*/
class Tile extends CL_SpriteObject {
m_data = null;
function InitData(path) {
m_data = ScriptData.GetFileData(path, function(DataTable, Data) {
DataTable.pos <- 0;
while (!Data.Eof()) {
local Pack = Data.Get();
if (Pack == "[IMAGE]") {
local PathBuf = Data.Get().tolower();
if (PathBuf.len() > 0) {
DataTable.path <- "sprite/" + PathBuf;
DataTable.idx <- Data.Get();
}
} else if (Pack == "[img pos]") {
DataTable.pos <- Data.Get();
} else if (Pack == "[pass type]") {
DataTable.pass_type <- [];
while (!Data.Eof()) {
DataTable.pass_type.push(Data.Get());
}
}
}
});
}
constructor(arg) {
if (typeof arg == "integer") {
} else if (typeof arg == "string") {
InitData(arg);
if ("path" in m_data)
base.constructor(m_data.path, m_data.idx);
else {
base.constructor("sprite/character/common/circlecooltime.img", 27);
}
}
}
//设置坐标
function SetPosition(Value, ...) {
if (vargv.len() == 0) {
Value.y += m_data.pos;
X = Value.x;
Y = Value.y;
BaseObject_SetPosition(this.C_Object, Value);
} else if (vargv.len() == 1) {
vargv[0] += m_data.pos;
X = Value;
Y = vargv[0];
BaseObject_SetPosition(this.C_Object, Value, vargv[0]);
}
}
}