Torque2D MIT 学习笔记(13) 图像资源(ImageAsset)

所有被引擎识别的资源都可以被运行时创建.图像资源(ImageAsset)和其他资源一样,继承于AssetBase.也就是说AssetBase的所有属性它都具备,另外还有一些自身的属性.

图像资源是一张由一个或者多个子图拼接而成的组合图像文件,单一图像的不多说了,只说一下组合的情况,在组合图像配置时,需要给定各个子图和对应区域的关系,资源加载时会成为一组帧序列.索引从0开始.

一个有效的图像资源至少要有一帧.

导出信息

  除了继承的属性和方法,下面列举属于自身的:(下面为属性名,都有get/set方法)

  ImageFile: // 图像文件名

  CellCountX&CellCountY: // 横纵子图数量(用于数组形式排列的子图,大小一样,排列有规则的情况)

  CellWidth&CellHeight: // 子图宽高(像素)(用于数组形式排列的子图,大小一样,排列有规则的情况)

  CellStrideX&CellStrideY: // 子图间距(像素)(用于数组形式排列的子图,大小一样,排列有规则的情况)

  CellOffsetX&CellOffsetY: // 偏移值(像素)(用于数组形式排列的子图,大小一样,排列有规则的情况)

  CellRowOrder: // 子图帧序列索引按行序递增

  FilterMode: // 采样模式,目前有近点采样和双线性采样两种

  Force16Bit: // 强制16位

  ExplicitMode: // 开启/关闭不规则子图模式

额外接口

  getFrameCount: 获取帧数量

  getFrameSize(frameindex): 获取指定帧尺寸

  getImageWidth: 获取图像宽

  getImageHeight: 获取图像高

  getImageSize: 获取图像尺寸

  getIsImagePOT: 检查原图是不是二次幂大小尺寸.

不规则子图说明

  针对没有数组概念,大小不一的子图组合,下面给予说明:

  先看在脚本中如何生成对应的图像配置:  

// Create a bare asset.
%asset = new ImageAsset();

// Configure the basic asset details.
%asset.AssetName = "Stuff";
%asset.ImageFile = "things.png"
%asset.ExplicitMode = true;

// Configure the explicit cells i.e. frames.
%asset.addExplicitCell( 0, 0, 10, 20 );
%asset.addExplicitCell( 10, 0, 30, 15 );
%asset.addExplicitCell( 40, 60, 23, 10 );

// Save it as an asset definition to be used by the asset system. 
TamlWrite( %asset, "stuff.asset.taml" );

 对应的资源文件配置如下:

<ImageAsset
    AssetName="Stuff"
    ImageFile="things.png">
    <ImageAsset.Cells>
        <Cell Offset="0 0" Width="10" Height="20"/>
        <Cell Offset="10 0" Width="30" Height="15"/>
        <Cell Offset="40 60" Width="23" Height="10"/>
    </ImageAsset.Cells>
/>

  由于这个MIT版本是今年才发布的,所以在工具方面作者说还在搞,不过应该很快可以发布了,目前对于自动生成图像资源,官方给出了一个解决方法:

 在.\tools\TexturePacker\下面给出了一个TexturePacker的导出插件,可以通过TP软件导出T2D可用的图像资源.

 (发布版的插件编写有问题,不过可以从当前的开发分支上更新一下 :) ) 

原文地址:https://www.cnblogs.com/KevinYuen/p/2944078.html