41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
| import { _decorator, Component, Node, SpriteFrame, Texture2D, v2 } from 'cc';
 | |
| import { ImagePack } from '../ImagePack/ImagePack';
 | |
| const { ccclass, property } = _decorator;
 | |
| 
 | |
| @ccclass('BaseSpriteFrame')
 | |
| export class BaseSpriteFrame {
 | |
| 
 | |
|     //初始化状态
 | |
|     InitState: boolean = false;
 | |
|     //精灵帧
 | |
|     _SpriteFrame: SpriteFrame;
 | |
|     //回调函数
 | |
|     CallBackFunc: Function;
 | |
| 
 | |
|     constructor(ImgPath: string, ImgIndex: number, CallBack?: Function) {
 | |
|         if (CallBack) this.CallBackFunc = CallBack;
 | |
|         ImagePack.getInstance().ReadNpkTable("sprite/" + ImgPath.toLocaleLowerCase(), (ImgObj) => {
 | |
|             const Png = ImgObj.Png_List[ImgIndex];
 | |
|             this._SpriteFrame = new SpriteFrame();
 | |
|             let tex = new Texture2D();
 | |
|             tex.reset({
 | |
|                 width: Png.Width,
 | |
|                 height: Png.Height,
 | |
|                 format: Texture2D.PixelFormat.RGBA8888,
 | |
|                 mipmapLevel: 0,
 | |
|             });
 | |
|             tex.uploadData(Png.PNGdata);
 | |
|             // 更新 0 级 Mipmap。
 | |
|             tex.updateImage();
 | |
|             this._SpriteFrame.texture = tex;
 | |
|             this._SpriteFrame.offset = v2(Png.Xpos, -Png.Ypos);
 | |
|             console.log(this._SpriteFrame.offset);
 | |
| 
 | |
|             this.CallBackFunc(this._SpriteFrame);
 | |
|             this.InitState = true;
 | |
|         });
 | |
|     }
 | |
| }
 | |
| 
 | |
| 
 |