需要什么?
制作一个简单的插件需要进行绘图和编写代码,因此我们需要准备绘图软件和文本编辑器,这里给出几个建议:
安卓
绘图软件:Pixel Studio
文本编辑器:MT文件管理器
iOS
绘图软件:Pixel Studio
文本编辑器:Kodex
准备好这一切之后,我们就可以开始了
开始
首先我们要给我们的插件创建一个文件夹,打开:
安卓 Android/data/info.flowersoft.theotown.theotown/files/plugins/
iOS "文件"应用 -> TheoTown -> plugins
然后在plugins文件夹中创建一个新的文件夹,作为我们插件的文件夹,后续的文件我们都会放在里面
绘图
绘图教程可以看这个B站视频:点我观看~
绘制完之后将图片以PNG格式保存在插件的文件夹中
代码
我们现在开始编写代码,首先在我们插件的文件夹中创建一个JSON文件,文件名格式为xxx.json
然后我们就正式开始编写,这里先给出一个模板:
JSON
[{
"id": "$id",
"type": "residential",
"title": "标题",
"text": "描述",
"frames": [{"bmp": "image.png"}],
"draw ground": true,
"people": 10,
"width": 1,
"height": 1
}]
这就是最基本的代码,你可以直接复制并修改相关参数后直接使用,下面将会逐行解释代码作用和JSON属性:
id id为每一个草稿(draft)(点此了解草稿)提供唯一的标识符,游戏通过id识别每一个草稿,每个草稿的id都必须是唯一的,所以id的命名最好不要太过于简单
type type定义了草稿的类型,例如这里的residential是住宅类型,下面夜景中用到的animation是动画类型。在制作插件时,应根据实际选择不同的类型,以下提供一些常用的类型:
residential 住宅
commercial 商业
industrial 工业
decoration 装饰
public 公共
park 公园
commercial 商业
industrial 工业
decoration 装饰
public 公共
park 公园
sport 体育
religion 宗教
water 供水
award 奖励
energy 供电
religion 宗教
water 供水
award 奖励
energy 供电
title和text 顾名思义,插件的标题和描述
frames frames为插件提供贴图,你可以点击这里查看frames的扩展内容,这里的image.png是图片的文件名,如果你的图片文件名叫abcd.png就填入abcd.png,如果在保存图片文件时绘图软件没有要求你输入后缀.png,那么在这里输入你设定的文件名+.png即可
draw ground 在默认状态下,游戏会将一个建筑的底下绘制成水域,将draw ground设置为true的作用就是让其绘制为原本的陆地而非水域,这个属性通常都是设置为true,如果你对前面所说的不太理解,你也可以将true改为false来对比看看效果
people people设定建筑容纳的人口/工人
width和height 定义了建筑的占地大小,这里为1×1
※通常情况下,建筑的占地都需要是一个正方形,即width和height相同
※通常情况下,建筑的占地都需要是一个正方形,即width和height相同
以上就是基础的JSON属性,你还可以点击此处了解更多属性
夜景
要为建筑制作夜景,我们要对代码进行扩展:
JSON
[
{
"id": "$night_id",
"type": "animation",
"frames": [{"bmp": "night_image.png"}],
"light": true,
"light switching": true
},
{
"id": "$id",
"type": "residential",
"title": "标题",
"text": "描述",
"frames": [{"bmp": "image.png"}],
"draw ground": true,
"people": 10,
"width": 1,
"height": 1,
"animation": [{"id": "$night_id"}]
}
]
我们可以看到,相比于一个纯建筑的代码,我们多出了创建动画和使用动画的部分,下面将对代码作用进行解释:
创建动画部分
id, type, frames 同上
light 若light为true则动画会在晚上发光,即夜景的效果
light switching 若light switching为true则夜景会有开/关灯的操作,若为false那动画(夜景)全天都会发光(亮灯)
建筑部分
animation 建筑部分新增的animation用于使用我们上面创建好的夜景动画,需要注意的是,这里动画的id要与动画创建部分的id(也就是动画的id)相同
有些时候夜景动画可能会有错位的情况,这时候我们需要在animation中用到x和y来对动画的位置进行调整:
"animation": [{"id": "$night_id", "x": 3, "y": -6}]
在这里,我们将夜景动画向右移动3个像素,向上移动6个像素。也就是说,如果想把动画往右移动,就加x,往左就减x,往上移动就减y,往下就加y
小贴士
如果觉得教程看不懂,可以试试扔给AI帮你解释