多语言展示
当前在线:789今日阅读:23今日分享:31

饥荒mod教程:分析界面

第三章:分析界面在前一章,我们主要讲的是主界面,现在我们来讲一下在游戏过程中的界面.我们先来分析一下两个mod的界面(注:在这一章里所讲的主界面是指mod的主界面而不是饥荒游戏的主界面)CJBModsTMI和testtools打开CJBModsTMI(以下简称C!),的原文件夹,找到tmiscreen.lua文件,它的界面就是这个定义在这个文件里的.它导入了两个自定义的自定义的部件,Inv和HoverText,一个是用来显示那些格子的,一个是用来显示文字的,这样可以把一个界面分成几个部分,代码看起来就不会太复杂,我们可以一部分一部分的看.主界面增加了背景,导入了两个自制的控件,增加了一个关闭按钮.下面我们来看一下关闭按钮的事件函数这个应该就是一个标准的关闭函数了,首先把暂停去掉,把主界面删掉,前台显示的界面设置为空.我们继续看一下这个主界面的其余函数,几个很简单的函数.在这个mod的modmain文件里,创建了一个新的timkeyHand类这个类里拥有一个keyHandler的实例,他有一个自定义函数,OnRawKey.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在modmain.lua里只是增加了一个类,还要创造一个实例才能用.这一句创建了一个新的实例.testtool这个mod比较复杂.它的主窗口文件为,testscreen.lua.我们主要看doinit函数.普及一下Spinner就是控件,他的构造函数为options是一个型如的表width,height,宽度,高度.textinfo主要是用来控制中间字体的,它是一个型如的表.sditable是一个布尔值,为true时,中间文本可以编辑.缺省为false.atlas和texttures是用来改变图片的.doinit函数,首先设置背景和底板.我就不讲了之后创建菜单列表,#1再创建所有的Spinner控件.#1把所有的Spinner加入spawning_spinners表里,并增加文本提示.#2主界面设置spinners为spawning_spinners#3.#1#2#3回过头来继续讲一下Spinners每个Spinners控件,内容改变时,都会调用Changed函数,并将显示文本对应的data值传入onchanged函数.每一个Spinner都有一个默认的onchanged函数,不过我们可以重新定义这个函数,增加功能.
推荐信息