帧(frames)用于为建筑、动画等提供贴图,其基础用法是:"frames": [{"bmp": "image.png"}],其中
image.png填写的是贴图的文件名
多个动画
你可以为一个建筑草稿提供多个帧,这可以让建筑可以旋转或切换不同贴图
可旋转建筑(旋转感知)
通过为建筑提供4个帧并启用旋转感知可以让建筑可以旋转:
JSON
[{
// 其它代码
"frames": [
{
"bmp": "image1.png"
},
{
"bmp": "image2.png"
},
{
"bmp": "image3.png"
},
{
"bmp": "image4.png"
}
],
"rotation aware": true
}]
四个帧按照顺时针的顺序排列,你也可以通过设置帧的参数来简化代码(这需要4个方向的建筑宽度相等),"w": 99代表截取的宽度为99,"count": 4代表以99为宽度截取4次贴图:
JSON
[{
// 其它代码
"frames": [
{
"bmp": "image1.png",
"w": 99, // 这里是每一个帧的宽度
"count": 4
}
],
"rotation aware": true
}]
假如这里的rotation aware设置为false,也就是只提供4个贴图,那建筑就可以有4个贴图并可以切换(就像游戏自带的小型花园一样)
动画
动画使用frames与建筑用法基本相同,也是"frames": [{"bmp":
"image.png"}],但由于动画显示机制,动画的帧需要对显示位置进行调整,详见动画相关内容
同样地,动画也可以旋转,用法与上面相同,不过如果rotation aware设置为false,那就会变成可以自动切换的动画,动画会在提供的几个帧中轮流切换
贴图截取和移动
贴图截取
你可以为帧设置一些参数,以截取贴图,参数有:
- x 设置截取的起点的x坐标
- y 设置截取的起点的y坐标
- w 设置截取的宽度
- h 设置截取的高度
- count 设置截取的次数,默认为1次
例如,下面的代码表示以(0, 0)为起点,向右截取16像素,向下截取6像素,即截取16×6的贴图
JSON
"frames": [
{
"bmp": "image.png",
"x": 0,
"y": 0,
"w": 16,
"h": 6
}
]
贴图移动
你可以利用下面的参数来移动贴图:
- handle x 在X轴上移动贴图(左加右减)
- handle y 在Y轴上移动贴图(上加下减)
例如,下面的代码就是将贴图向左移动6像素,向上移动2像素:
JSON
"frames": [
{
"bmp": "image.png",
"handle x": 6,
"handle y": 2
}
]