180 lines
5.9 KiB
ReStructuredText
180 lines
5.9 KiB
ReStructuredText
创建武将并添加技能
|
||
==================
|
||
|
||
欲创建技能,必先有武将;而想要创建武将,先要创建拓展包。拓展包是一个武将的容身之处。
|
||
|
||
之前的fk_study应该都还在吧?我们看看在搭建环境的那一章中,我们所编写的代码:
|
||
|
||
.. code:: lua
|
||
|
||
local extension = Package("fk_study")
|
||
|
||
Fk:loadTranslationTable{
|
||
["fk_study"] = "fk学习包",
|
||
}
|
||
|
||
local study_sunce = General(extension, "study_sunce", "wu", 4)
|
||
Fk:loadTranslationTable{
|
||
["study_sunce"] = "孙伯符",
|
||
}
|
||
|
||
return { extension }
|
||
|
||
在这个Lua文件中,我们创建了一个拓展包,并往拓展包中添加了一名武将。
|
||
|
||
--------------
|
||
|
||
创建拓展包
|
||
----------
|
||
|
||
创建拓展包的格式基本是固定的,在Lua文件的第一行写上这样的:
|
||
|
||
::
|
||
|
||
local extension = Package("xxxx")
|
||
|
||
其中xxxx为拓展包的名字,可以随意填写。然后在Lua的最后一行写上:
|
||
|
||
::
|
||
|
||
return { extension }
|
||
|
||
这样就能让fk知道这有个拓展包了,于是fk就能读取并将其加载到游戏里面。
|
||
|
||
--------------
|
||
|
||
翻译
|
||
----
|
||
|
||
fk的编程约定之一就是不要在代码中含有中文。需要显示为中文的部分,应该单独写在“翻译表”里面,而在主体代码涉及的字符串应使用英文,或者自定义的变量名。
|
||
|
||
加载翻译表的基本格式为:
|
||
|
||
.. code:: lua
|
||
|
||
Fk:loadTranslationTable{
|
||
["源文本"] = "译文",
|
||
......
|
||
}
|
||
|
||
像这样就可以插入许多条翻译了。
|
||
|
||
--------------
|
||
|
||
创建武将
|
||
--------
|
||
|
||
创建武将的格式为:
|
||
|
||
::
|
||
|
||
local xxx = General(拓展包, 武将名, 势力, 体力值, 体力上限, 性别)
|
||
|
||
其中:
|
||
|
||
- 拓展包表示武将所在的拓展包,无脑extension完事
|
||
- 武将名是武将的内部名称,不要和别人重复了。如果你在做自己的拓展包的话建议加前缀
|
||
- 势力是武将的势力,目前有这几种:\ ``"wei"``\ ,\ ``"shu"``\ ,\ ``"wu"``\ ,\ ``"qun"``\ ,\ ``"god"``\ ,分别代表魏蜀吴群神
|
||
- 体力值是武将的初始体力值
|
||
- 体力上限是武将的体力上限,可以不写,不写的话默认等于体力值
|
||
- 性别是武将的性别,默认为男性,有以下几种取值可能:
|
||
|
||
- ``General.Male``\ :男性
|
||
- ``General.Female``\ :女性
|
||
|
||
--------------
|
||
|
||
为武将添加游戏已有技能
|
||
----------------------
|
||
|
||
fk本身不内置多少技能,但玩家还是可以给武将添加已有的技能,避免重复劳动。
|
||
|
||
比如我们的fk_study包,现在要给白板孙伯符加一个技能“制衡”,那么可以这样写:
|
||
|
||
::
|
||
|
||
study_sunce:addSkill("zhiheng")
|
||
|
||
这样的一行代码必须在创建武将之后再添加。也就是说,添加之后,Lua文件大概像这样:
|
||
|
||
::
|
||
|
||
local study_sunce = General(extension, "study_sunce", "wu", 4)
|
||
study_sunce:addSkill("zhiheng") -- 在这里新增
|
||
Fk:loadTranslationTable{
|
||
["study_sunce"] = "孙伯符",
|
||
}
|
||
|
||
保存一下,进游戏就能发现多了个技能。
|
||
|
||
.. figure:: ../pic/diy3-pic1.webp
|
||
:alt: 添加已有技能
|
||
|
||
添加已有技能
|
||
|
||
--------------
|
||
|
||
为武将制图
|
||
----------
|
||
|
||
此时我们还没有为武将制作图片。没有图片的武将,默认会用貂蝉的剪影作为图片。(其实手刹里面未知武将是周瑜的剪影,不过谁在乎呢)
|
||
|
||
总之我们来为武将制图。首先找一张心仪的图片。然后我们要找一个切图的软件,用PS也好,gimp也好,都随意,这里不赘述怎么用软件。
|
||
|
||
fk中,武将的图片应该为250x292分辨率,并且是jpg格式。为了观感舒适,武将的人脸应该位于图片的中上方。
|
||
|
||
.. figure:: ../pic/diy3-pic2.webp
|
||
:alt: 使用GIMP切图。我倾向于开5x5参考线,并让人脸位于2行3列的格子里面
|
||
|
||
使用GIMP切图。我倾向于开5x5参考线,并让人脸位于2行3列的格子里面
|
||
|
||
最后用jpg格式导出图片,图片的名字是武将的内部名称,在这里就是study_sunce。
|
||
|
||
注意了,JPG图片的质量不能拉到100%,不然图片体积会很大,给他人下载你的拓展包带来不便。一般质量为90为好,此时图片大约三四十KB大小。这里图像质量只调了60,这样看起来不至于完全失真,图片的体积也相当较小。
|
||
|
||
至此我们做好了图片,接下来就是把图片放到游戏去。
|
||
|
||
去我们的拓展包文件夹,新建文件夹image,再在里面新建文件夹generals,把图丢进去。这样一来,拓展包的文件结构如下:
|
||
|
||
::
|
||
|
||
packages/fk_study
|
||
├── image
|
||
│ └── generals
|
||
│ └── study_sunce.jpg
|
||
└── init.lua
|
||
|
||
然后打开游戏,进入武将一览,就能看到武将的图片了。
|
||
|
||
--------------
|
||
|
||
为武将制作阵亡语音
|
||
------------------
|
||
|
||
每个武将都有自己的阵亡语音。fk采用mp3格式保存语音。
|
||
|
||
怎么处理mp3音频就不叙述了,可以考虑用audacity这款软件调节mp3的音量、去掉首尾的延迟等等。但是依然需要注意一点——mp3语音的体积不能太大了。为此我的建议是使用格式工厂对mp3文件再进行一次格式转换,将转换后mp3文件的码率设为128kbps,这样一来一句语音差不多就是三四十KB的感觉,而音质却不至于非常模糊。
|
||
|
||
阵亡语音放到拓展包文件夹下的audio/death里面,命名规则是武将的内部名称。
|
||
|
||
--------------
|
||
|
||
更新拓展包
|
||
----------
|
||
|
||
我们也做了这么多了,是时候更新一下了。
|
||
|
||
在我们拓展包文件夹那里右键一下,Git Bash Here,然后:
|
||
|
||
.. code:: sh
|
||
|
||
$ git add .
|
||
$ git commit -m "image and audio for sunce"
|
||
$ git push
|
||
|
||
至此,就完成了拓展包的更新。其他使用你的拓展包的人此时就能通过fk拓展包管理的“更新拓展包”功能,更新到你所做的这个状态。
|
||
|
||
(我自己在写这一系列的文章的时候,也是确实创建了一个拓展包仓库的。
|
||
https://gitee.com/notify-ctrl/fk_study
|
||
如有疑问,可以去查看那个仓库是怎么弄的。)
|