DOF/sqr/Core/BaseClass/SpriteObject/SpriteClass.nut

68 lines
1.8 KiB
Plaintext

/*
文件名:SpriteClass.nut
路径:BaseClass/SpriteObject/SpriteClass.nut
创建日期:2024-05-05 09:35
文件用途:精灵类
*/
class CL_SpriteObject extends CL_BaseObject {
SpriteFrame = null;
function _typeof() {
return "sprite";
}
constructor(...) {
local C_Object;
//创建空精灵
if (vargv.len() == 0) {
C_Object = Sprite_Create();
base.constructor(C_Object);
}
//通过精灵指针创建
else if (vargv.len() == 1) {
C_Object = vargv[0];
base.constructor(C_Object, true);
}
//通过路径创建
else if (vargv.len() == 2) {
C_Object = Sprite_Create();
base.constructor(C_Object);
local Path = vargv[0];
local Idx = vargv[1];
local Sf = CL_SpriteFrameObject(Path, Idx);
SetFrame(Sf);
}
}
//设置精灵帧
function SetFrame(SpriteFrame) {
this.SpriteFrame = SpriteFrame;
Sprite_SetFrame(this.C_Object, SpriteFrame.C_Object);
}
//设置混合模式
function SetMode(Mode) {
Sprite_SetMode(this.C_Object, Mode);
}
//设置描边
function SetOutline(Flag, Color = 0xffffffff) {
Sprite_SetOutline(this.C_Object, Flag, Color);
}
//设置裁切
function SetCropRect(Parameter1, Parameter2, ...) {
if (vargv.len() == 0) {
local Point1 = Parameter1;
local Point2 = Parameter2;
Sprite_SetCropRect(this.C_Object, Point1, Point2);
} else if (vargv.len() == 2) {
local X1 = Parameter1;
local Y1 = Parameter2;
local X2 = vargv[0];
local Y2 = vargv[1];
Sprite_SetCropRect(this.C_Object, X1, Y1, X2, Y2);
}
}
}