70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.9 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);
 | |
|             SetSize(Point2.x - Point1.x, Point2.y - Point1.y);
 | |
|         } 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);
 | |
|             SetSize(X2 - X1, Y2 - Y1);
 | |
|         }
 | |
|     }
 | |
| } |