饥荒mod教程:分析界面

时间:2024-10-12 13:45:24

第三章:分析界面

在前一章,我们主要讲的是主界面,现在我们来讲一下在游戏过程中的界面.我们先来分析一下两个mod的界面(注:在这一章里所讲的主界面是指mod的主界面而不是饥荒游戏的主界面)

饥荒mod教程:分析界面

CJBModsTMI和testtools

饥荒mod教程:分析界面

打开CJBModsTMI(以下简称C!),的原文件夹,找到tmiscreen.lua文件,它的界面

就是这个定义在这个文件里的.

它导入了两个自定义的自定义的部件,Inv和HoverText,

饥荒mod教程:分析界面

一个是用来显示那些格子的,一个是用来显示文字的,这样可以把一个界面分成几个部分,代码看起来就不会太复杂,我们可以一部分一部分的看.

饥荒mod教程:分析界面

主界面增加了背景,导入了两个自制的控件,增加了一个关闭按钮.

下面我们来看一下关闭按钮的事件函数

饥荒mod教程:分析界面

这个应该就是一个标准的关闭函数了,首先把暂停去掉,把主界面删掉,前台显示

的界面设置为空.

我们继续看一下这个主界面的其余函数,

饥荒mod教程:分析界面

几个很简单的函数.

在这个mod的modmain文件里,创建了一个新的timkeyHand类这个类里拥有一个

keyHandler的实例,他有一个自定义函数,OnRawKey.

饥荒mod教程:分析界面

keyHandler是Input(输入)类的一个子类,他的构造函数函数为

TheInput:AddKeyHandler(fn)

TheInput是一个Input类的实例,这个函数接受一个函数作为参数,生成一个新的

事件,并向这个参数函数(fn)传递两个参数key,down.饥荒游戏的运行中,我们每一次按下键盘,或者移动鼠标等,都会被Input捕获,并处理input分析事件类型,(比如是按下键盘,还是点击鼠标)并调用对应的事件列表,

onkey,----键盘事件(包括按下和弹起)

onkeyup----键盘被弹起

onkeydown---键盘按下

onmouseup----鼠标按下

onmousedown---鼠标弹起

position----位置改变

oncontrol---窗口控制权改变

ontextinput---文本框

ongesture---手势(这个在pc版的饥荒里没有使用)

调用对应的事件列表,并再次判断具体的事件类型(比如是A键,T键被按下还是任意

键被按下)把所有符合的事件函数调用.

继续讲这个mod,modmain.lua创建了一个新的KeyHandler类,事件类型为onKey,见

input.lua

饥荒mod教程:分析界面

在modmain.lua里只是增加了一个类,还要创造一个实例才能用.

饥荒mod教程:分析界面

这一句创建了一个新的实例.

testtool这个mod比较复杂.它的主窗口文件为,testscreen.lua.

我们主要看doinit函数.

普及一下

Spinner就是

饥荒mod教程:分析界面
控件,他的构造函数为

饥荒mod教程:分析界面

options是一个型如

饥荒mod教程:分析界面

的表

width,height,宽度,高度.

textinfo主要是用来控制中间字体的,它是一个型如

饥荒mod教程:分析界面

的表.

sditable是一个布尔值,为true时,中间文本可以编辑.缺省为false.atlas和texttures是用来改变图片的.

doinit函数,首先设置背景和底板.我就不讲了

之后创建菜单列表,#1

再创建所有的Spinner控件.#1

把所有的Spinner加入spawning_spinners表里,并增加文本提示.#2

主界面设置spinners为spawning_spinners#3.

#1

饥荒mod教程:分析界面

#2

饥荒mod教程:分析界面

#3

饥荒mod教程:分析界面

回过头来继续讲一下Spinners

每个Spinners控件,内容改变时,都会调用Changed函数,并将显示文本对应的data

值传入onchanged函数.

饥荒mod教程:分析界面

每一个Spinner都有一个默认的onchanged函数,

饥荒mod教程:分析界面

不过我们可以重新定义这个函数,增加功能.

© 手抄报圈