68 lines
1.8 KiB
Plaintext
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);
|
|
}
|
|
}
|
|
} |