
精灵资源选项里面有大量的参数来调整精灵的外观和行为,但是所有的参数都有默认值。大部分情况下妳只需要使用基本的选项。
每個精灵都可以 具有以下属性:
<sprite
name="my_sprite"
description="包含有共有的描述数据的资源"
pack_texture="[yes,no]"
base_angle="角度"
id="id">
<!-- 幀图片载入: -->
<image
fileseq="文件名.后缀名"
start_index="起始索引"
skip_index="索引跳跃"
leading_zeroes="前置0的个数" />
<image file="文件名" />
<image file="文件名">
<grid
pos="x,y"
size="宽度,高度"
array="x方向格子个数,y方向格子个数"
array_skipframes="跳跃个数"
spacing="宽度,高度" />
</image>
<image file="文件名">
<palette
pos="x,y" />
</image>
<image file="image4.png">
<alpha
pos="x,y"
free="true"
trans_limit="limit" />
</image>
<!-- 精灵渲染和动画状态: -->
<color
red="红色分量"
green="绿色分量"
blue="蓝色分量"
alpha="透明分量" />
<animation
speed="速度"
loop="[yes,no]"
pingpong="[yes,no]"
direction="[backward,forward]"
on_finish="[blank,last_frame,first_frame]" />
<scale x="x方向缩放" y="y方向缩放" />
<translation
origin="[top_left, top_center, top_right,
center_left, center, center_right,
bottom_left, bottom_center, bottom_right]"
x="x方向偏移"
y="y方向偏移" />
<rotation
origin="[top_left, top_center, top_right,
center_left, center, center_right,
bottom_left, bottom_center, bottom_right]"
x="x方向偏移"
y="y方向偏移" />
<frame
nr="幀号"
speed="幀延迟"
x="x方向偏移"
y="y方向偏移" />
</sprite>
在构造精灵的过程中,只有<sprite>的name 属性和最少一個<image>元素是必需的。其它元素和属性都是可选的。
设置精灵的第一步,就是告诉资源载入器要到哪里去取得所有幀的图片。这是通过指定若干個<image>元素来做到的。每個<image>元素都會指定一個图片,它可能用于若干個幀:
•.如果<image>中没有子代元素,则會将整個图片作为一個大的幀插入。
•.如果子代元素是<grid>,则會使用 CL_SpriteDescription 中的网格剪切器来提取一组幀,它们在这個图片文件中是按照网格排列的。
•.如果子代元素是<alpha>,则會使用透明度剪切器。透明度剪切器使用透明度通道来寻找被纯透明度(在trans_limit 范围内)分隔的幀。
•.最后是<palette>子代元素。这個方法會将那些以调色板颜色来定义边界的幀插入到精灵中。
如果妳有好几個精灵都是使用相同的幀组合的话,则妳可以使用<sprite>元素的description 属性来让此精灵使用其它精灵资源中的幀。
剩下的元素<color>、<animation>、<scale>、<translation>和<rotation>會改变CL_Sprite 的渲染和动画属性的默认值。
<frame>设置某個特定幀的属性。
•.属性name: 资源的名字。
有效値 :
默认値 :无,必需参数。
•.属性description: 用作此精灵的基础的其它资源的标识符。
有效値 :"字符串" - 另一個精灵资源的资源标识符
默认値 :不要将其它精灵资源作为基础。
•.属性pack_texture: 当pack_texture 被启用时,CL_Sprite會将尽可能多的幀打包到同一個材质对象中。
有效値 :"yes, no" - 启用或禁用材质打包功能
默认値 : yes
•.属性base_angle: 定义此精灵的方向。其它的角度都是相对于此角度的。
有效値 :
默认値 : "0"
•.属性id: 设置可由CL_Sprite::get_id()获取的精灵标识符。
有效値 :
默认値 : "0"
•.属性file: 图片文件名。
有效値 :
默认値 :无, 必需选项 。
•.属性fileseq: 一串图片(可选)。
有效値 :"文件名.扩展名",其中扩展名是任一种被支持的ClanLib 图片类型(比如png, jpg, tga, pcx)
默认値 :无。对于非序列化的图片,使用file 属性。
•.属性start_index: 起始索引。(fileseq)
有效値 :"整数" - 大于等于0
默认値 :"0"
•.属性skip_index: 一次迭代中跳过多少個图片。(fileseq)
有效値 : "整数" - 大于等于1
默认値 : "1"
•.属性leading_zeroes: 下载线之后的0的个数。(fileseq)
有效値 : "整数" - 大于等于0
默认値 : "0"
•.属性pos: 在图片中开始进行网格剪切的位置。
有效値 : "整数, 整数" - x-位置, y-位置
默认値 : "0, 0"
•.属性size: 每個网格的尺寸。
有效値 : "整数, 整数" - 宽度, 高度
默认値 : "1, 1"
•.属性array: 网格尺寸。
有效値 : "整数, 整数" - 宽度, 高度
默认値 : 无,必需选项。
•.属性array_skipframes: 在最后一条网格行的末尾跳过多少幀。
有效値 : "整数" - 要跳过的幀数
默认値 : "0"
•.属性spacing: 每两个网格之间的空间。
有效値 : "整数, 整数" - x-间距, y-间距
默认値 : "0, 0"
•.属性pos: 在图片中开始进行颜色板剪切的位置。
有效値 :
默认値 : "0, 0"
•.属性pos: 在图片中开始进行透明度剪切的位置。
有效値 : (整数,整数)
默认値 : "0, 0"
•.属性free: 使用“自由透明度剪切器”("Free Alpha Cutter")。
默认的透明度剪切器會将精灵的那些列剪切成同样的高度和不同的宽度。而“自由剪切器”("Free Cutter")會识别出所有矩形的非透明的像素块,并且将它们置于单独的幀中。两种算法都會从左上角(或指定位置)开始,一行行地扫描图片,从上到下。
有效値 : 空白, true
默认値 : 空白
•.属性trans_limit: 透明度限制。
有效値 : "浮点数" - 位于0.0 和1.0之间
默认値 : "0.05"
•.属性red, green, blue, alpha: 颜色。
设置精灵的红色、绿色、蓝色和透明分量。
有效値 : "浮点数" - 位于0.0 和1.0之间
默认値 : 1.0, 1.0, 1.0, 1.0
•.属性speed: 默认的幀延迟。
这個属性设置每两幀之间的延迟。妳可以使用frameX_speed 来为单独的幀重写这個参数(见下文)。
单位是毫秒。
有效値 : 整数
默认値 : 60
•.属性loop: 动画是否循环。
如果妳想让动画在到达末尾之后重放的话,则设置为循环。
有效値 : "yes, no" - 启用或禁用循环。
默认値 : "yes"
•.属性pingpong: 将动画以乒乓方式播放。
如果妳希望动画在到达末尾之后又倒着放到开始,则将播放方式设置成乒乓。
有效値 : "yes, no" - 启用或禁用乒乓。
默认値 : "no"
•.属性direction: 动画的方向。
如果妳想让动画倒着放,那麽就设置成倒放(backwards) - 从最后一幀开始,倒着播放到第一幀。
有效値 : "backward, forward" - 将动画倒放或顺放。
默认値 : "forward"
•.属性on_finish: 当动画结束时显示甚麽。
指定当动画结束时应当显示甚麽。留为空白(Blank)则什么都不显示,设为last_frame则显示动画中的最后一幀,设为first_frame则显示动画中的第一幀。
如果妳使用循环选项,则这個选项无效果。
有效値 : blank, last_frame, first_frame - 三选一
默认値 : blank
•.属性 x 和 y: 缩放比例。
设置精灵在x 和y 方向的缩放比例。値为1.0 则表示是正常大小,2.0则表示是二倍大小,等等。
有效値 : (浮点数, 浮点数)
默认値 : (1.0, 1.0)
•.属性origin: 转换操作的热点/对齐点。
这個属性设置的是将會被CL_Sprite::draw 绘制于中指定的位置的那個像素。
比如,妳的精灵的origin=top_left(默认値),然后妳调用my_sprite.draw(50, 100),那么,最上角的那個像素劊被绘制到(50, 100),而精灵的其它部分将會按照位置关系绘制在周围。如果妳设置origin=center,那么,最中心的那個像素會被绘制到(50, 100),其它部分按照位置关系绘制在周围。
有效値 : top_left, top_center, top_right, center_left, center, center_right, bottom_left, bottom_center, bottom_right
默认値 : top_left
•.属性 x 和 y: 这個参数指的是图片应当被放置到离原点(origin)多远的位置。
x=50會将图片相对普通位置向右移动50 個像素。注意,原点的値也會计算在内。
有效値 : 整数
默认値 : 0
•.属性 origin: 旋转操作的热点/对齐点。
这個参数指的是当妳对图片进行旋转时會留在原地的那個像素。
默认情况下,其値是中点(center),那么,在旋转过程中,中心的像素會保持在原位,其它像素會按照位置关系旋转。如果妳想以左上角为对称点进行旋转,则将这個参数设置为top_left,依此类推。
有效値 : top_left, top_center, top_right, center_left, center, center_right, bottom_left, bottom_center, bottom_right
默认値 : center
•.属性 x 和 y: 指定的是热点相对于原点的偏移距离。
有效値 : 整数
默认値 : 0
•.属性 speed: 覆盖这一幀的默认速度。
单位是毫秒。
有效値 : 整数
默认値 : 播放速度(play_speed )
•.属性 x 和 y: 显示这個幀时的位移。
这使得妳对一個幀设置一個位置偏移,以便相对于其它幀进行位置的微调。
有效値 : (整数, 整数) - x-位置, y-位置
默认値 : (0, 0)
HxLauncher: Launch Android applications by voice commands