logo资料库

饥荒mod教程--界面.pdf

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
《饥荒补遗》 本文来自: ------------------------------------------------------------------------------- - 联系方式: QQ:1486276329,1723386660 Email:1486276329@qq.com blog: http://www.cnblogs.com/czfblog/ 阅读本文如有不解之处,请联系我! 小帆 著 14 年 1 月 31 日.
第三章:分析界面 在前一章,我们主要讲的是主界面,现在我们来讲一下在游戏过程中的界面. 我们先来分析一下两个 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 函数,
不过我们可以重新定义这个函数,增加功能.
分享到:
收藏