85 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| /*
 | |
| 文件名:Lenheart_Ani_Class.nut
 | |
| 路径:Base/UI/Lenheart_Ani_Class.nut
 | |
| 创建日期:2024-08-06	18:56
 | |
| 文件用途:Ani
 | |
| */
 | |
| class Lenheart_Ani {
 | |
| 
 | |
|     X = 0;
 | |
|     Y = 0;
 | |
| 
 | |
|     ImgPath = null;
 | |
|     ImgFrame = null;
 | |
| 
 | |
| 
 | |
|     //播放状态
 | |
|     State = 0;
 | |
|     //循环
 | |
|     LoopFlag = true;
 | |
| 
 | |
|     //当前帧数
 | |
|     CurFrame = 0;
 | |
|     //初始化时间
 | |
|     InitTime = 0;
 | |
|     //Ani当前帧播放时间
 | |
|     PlayCurTime = 0;
 | |
| 
 | |
| 
 | |
|     //img 路径  调用帧数组
 | |
|     constructor(path, frame, Pos) {
 | |
|         ImgPath = ("Character/" + path + ".img").tolower();
 | |
|         ImgFrame = frame;
 | |
|         InitTime = Clock();
 | |
|         State = 1;
 | |
|         X = Pos[0];
 | |
|         Y = Pos[1];
 | |
|     }
 | |
| 
 | |
| 
 | |
|     function Show(dt) {
 | |
|         if (State == 1) {
 | |
|             if (ImgFrame) {
 | |
|                 local NowFrameObj = ImgFrame[CurFrame];
 | |
|                 PlayCurTime += dt;
 | |
|                 L_sq_DrawImg(ImgPath, NowFrameObj.ImgIndex, NowFrameObj.Pos[0] + X, NowFrameObj.Pos[1] + Y);
 | |
|                 if (PlayCurTime >= NowFrameObj.Delay) {
 | |
|                     CurFrame++;
 | |
|                     //播放完成
 | |
|                     if (CurFrame >= ImgFrame.len()) {
 | |
|                         if (LoopFlag) CurFrame = 0;
 | |
|                         else State = 0;
 | |
|                     }
 | |
|                     InitTime = Clock();
 | |
|                     PlayCurTime = 0;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     function ShowEx(dt,gRgba,rate_x,rate_y) {
 | |
|         if (State == 1) {
 | |
|             if (ImgFrame) {
 | |
|                 local NowFrameObj = ImgFrame[CurFrame];
 | |
|                 PlayCurTime += dt;
 | |
|                 L_sq_DrawImg(ImgPath, NowFrameObj.ImgIndex, NowFrameObj.Pos[0] + X, NowFrameObj.Pos[1] + Y,1,gRgba,rate_x,rate_y);
 | |
|                 if (PlayCurTime >= NowFrameObj.Delay) {
 | |
|                     CurFrame++;
 | |
|                     //播放完成
 | |
|                     if (CurFrame >= ImgFrame.len()) {
 | |
|                         if (LoopFlag) CurFrame = 0;
 | |
|                         else State = 0;
 | |
|                     }
 | |
|                     InitTime = Clock();
 | |
|                     PlayCurTime = 0;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     function Reset() 
 | |
|     {
 | |
|         CurFrame = 0;
 | |
|         State = 1;
 | |
|     }
 | |
| } |