LUA教程游戏UI制作

Lua 是一个扩展式程序设计语言,它被设计成支持通用的过程式编程,并有相关数据描述的设施。 Lua 也能对面向对象编程,函数式编程,数据驱动式编程提供很好的支持。它可以作为一个强大、轻量的脚本语言,供任何需要的程序使用。 Lua 以一个用 clean C 写成的库形式提供。(所谓 Clean C ,指的 ANSI C 和 C++ 中共通的一个子集)


作为一个扩展式语言,Lua 没有 "main" 程序的概念:它只能 嵌入 一个宿主程序中工作,这个宿主程序被称作 embedding program

或简称为 host

。宿主程序可以通过调用函数执行一小段 Lua 代码,可以读写 Lua 变量,可以注入 C 函数让 Lua 代码调用。这些扩展的 C 函数,可以大大的扩展了 Lua 可以处理事务的领域,这样就可以订制出各种语言,而它们共享一个统一的句法格式的框架。 Lua 的官方发布版就包含了一个叫做 lua 的简单的宿主程序,它用 Lua 库提供了一个保证独立的 Lua 解释器。


Lua 是一个自由软件,它的使用许可决定了对它的使用过程一般没有任何保证。这份手册中描述的东西的实现,可以在 Lua 的官方网站 www.lua.org 找到,


跟其它的许多参考手册一样,这份文档有些地方比较枯燥。关于 Lua 的设计想法的探讨,可以看看 Lua 网站上提供的技术论文。

 

游戏UI设计

游戏UI设计可分为两个部分:程序编码设计与UI设计。程序编码设计字面意思应该很好理解,因为程序的工作主要是把策划的设计实现出来,和我们讨论的问题并没太大关联所以我们暂时不做描述。

    在这里主要介绍游戏UI的设计。UI的本意是用户界面,是英文User和 interface的缩写。其实他们之间还应该有个更重要的词-交互(interactive)。游戏UI设计的重点其实就在用户与界面的交互上,而不仅仅是漂亮、华丽、符合游戏风格即可。

    怎么样才能设计出一个品质优良的UI作品呢?这需要设计者去了解目标用户的喜好、使用习惯、同类产品设计方案以及设计者本身对游戏UI的理解去进行设计。设计初稿完成后还要和各个部门的同仁不断的进行讨论对设计进行修正。衡量一个优秀游戏UI的标准,不是项目组中某个权贵的单方面意见,而是项目内所有成员集体意见,并且调研大量的终端用户并要求他们给出使用心得,来做为游戏UI优劣的评判标准。

    游戏UI的设计要和用户紧密的结合,我们在意的是大众的感受和意见。游戏UI的设计贯穿整个研发过程,我们需要不断的与用户沟通听取他们的意见,并对我们的设计进行不断的修正。最终的目的都是为了设计出一套大部分人都满意的作品。

目前国内的游戏UI设计还仅仅停留在一个很初级的层面,相当于欧美80年代末的水平。大部分企划人员只给出了最基本的功能需求,然后由美术设计师根据漂不漂亮去完成,没有专门的人员,去系统的调查用户使用习惯以及不同年龄阶段的用户对UI的需求取向等等。这些制作人员的疏忽造成了目前国内产品UI要么单调乏味,要么死气沉沉,要么抄袭大作。毫无自己的特色和创新点。

 

用Java编写完整的GUI程序源代码

GUI 是Graphical User Interface 的简称,即图形用户接口。这种面向客户的系统工程设计其目的是优化产品的性能,使操作更人性化,减轻使用者的认知负担,使其更适合用户的操作需求。如Windows是以图形界面方式操作的,因为你可以用鼠标来点击按钮进行操作,很直观。而DOS就不具备GUI,所以只能通过输入命令进行操作。利用Java可以开发出非常美观实用的桌面应用程序来,而且不比其它工具差。
  本论文使用JBuilder 2005来进行GUI的制作。使用这种软件来完成GUI的设计很有优势,因为JBuilder 2005中有专门用于GUI设计的UI Design 。该页显示的是一个可视化的设计界面,主要包括一个组件选项板、一个属性页和一个设计空间。设计空间是一个工作区,用鼠标选中相应的控件后,可以将其拖曳到设计空间中,完成可视化的的设计工作。这种设计方式大大降低了本次毕业设计的难度。
  本设计的GUI是互联网数据资源质量评估和选择系统的人机交互界面,因此在设计GUI内容的时候,必须要了解怎样来评估和选择互联网数据资源。本文中,使用的是多准则决策分析方法(MCDM)。MCDM方法分为两种:一种是设计最好的候选者来满足预定目标(MODM),另一种就是从先前定义的一组具有相同属性的候选者中选择(MADM)。本次设计的系统是获取互联网上已经存在的数据,并对数据进行检测,然后选择高质量的数据。因此本设计所涉及的是MADM领域。在系统的GUI设计中,仅涉及了MADM的SAW方法。为此需要提供两类界面,一个MADM主界面和一个SAW子界面,并且通过主界面进入到子界面中。子界面主要完成SAW算法,并显示互联网数据资源评价结果。
 

报表的UI设计

除了报表的正确性,我们还需要关注报表的UI测试。所谓UI测试,并不单指根据UI设计标准对报表进行检查,还需要我们站在用户的角度去考量报表的易用性。

除了保证计算的正确性,我们还需要让报表变得更专业。变得专业,指报表应符合行业的标准,且考虑用户的使用,报表应变得更易懂,重点更突出。UI设计是变专业的关键。试想一下,如果一份报表字体不统一,大小不一致,颜色使用混乱,即使报表的计算值再具有参考价值,也无法让用户满意。因此,在设计和测试中,我们应该多重视UI。

1. 善用颜色

我在写平时的email或者交付测试报告的时候,经常被老板提醒颜色的使用。在同一个页面中,最好不要出现多于3种颜色。因为本来颜色的使用是为了突出重点,然而如果过多地使用颜色,就等于到处都是重点,最后的结果就是没有重点。因此善于使用颜色也是UI设计的关键。

¨         使用颜色区分报表的类别

这样做是为了方便用户区分报表。例如,把红色加粗字体应用于销售类报表名,把蓝色加粗字体应用于出勤类报表。那么用户以后看见红色标题的页面就知道是销售类;蓝色标题的页面就知道是出勤类了。

¨         应用颜色区分阈值数据

如,对于销售类报表,Manager们关心的是没有达到销售指标的区域。如果报表中对没有达到指标的数据均以红色字体呈现,那么Manager一打开页面一眼就可以从众多的数据中看到他最关心的部分,大大提高了阅读报表效率。

2.  统一格式

一般报表分为两大部分,表头(Head)和表体(Body)。表头,一般放置报表名称以及查询条件;表体,由表格形式的报表组成,可以为一个也可以为多个(子报表)。在统一格式方面,我们需要注意的地方有:

¨         字体

不同的地方应使用不同的标准,如,表头中的报表名称,表体中的统计值的字体和大小应该不一样;然而不同的报表的报表名称应使用一种字体和大小。

¨         表格

定义最小单元格,而报表中只能使用最小单元格的整数倍作为表格的大小。例如,UI标准定义最小单元格为(长X宽)=1cm X 0.5cm;如果遇到某单元格中需要填写的值长度为1.3cm时,此时对应单元格应该为2 cm X 0.5cm。这个有利于导出格式的一致性。

¨         单位

不同的统计值使用的单位是不一样的。不管单位是什么,我们都应该放置于一个统一的地方。例如,可以统一标注在报表的某个地方,写着(Unit:¥);或者是直接填入统计值中,如¥ 3.00。

¨         术语

使用行业术语,增加报表的专业性。

3.  导出和打印格式

一般报表的使用者,会更多地应用导出功能导出成别的格式,或者是直接打印出来查看。此时,我们就需要检查报表导出后格式有没有变形。打印时,报表会不会因为分页打印而造成报表内容缺失,或者不易被查看。

 

如何成为UI设计师

尽管交互设计与图形设计是两个差别相当大的方向,但除了顶级公司,大部分用人单位并没有把他们的职责完全分开,UI设计更多地靠一个团队来完成。从知识和技能储备的角度讲,成为UI设计师首先应该既具备美术功底,又精通各种图形软件的操作,还要熟悉一些基本的编程语言。

  Rokey为想要入行的年轻人提出了一些忠告——要想成为UI设计师,第一是要有兴趣,发自内心的创造欲望是你能够把事情做好最重要的一个因素。第二就是要有信心,这个信心包括两点,一个是对自己的信心,告诉自己这条路我可以走下去;还有一个是对这个行业有信心,因为UI行业并非一帆风顺的,有起有落。在专业技能上,初期可以临摹、模仿一些自己比较喜欢的作品,体验设计的过程是什么样的,在过程中你要思考这个作者所思考的问题,至于最终的作品是否像原来的那个并不重要。然后,你就可以开始模拟设计,先图形,后交互(如果你可以的话)。

  黎万强总结说,UI设计和产品设计很相似,都是为用户的需求而设计,针对不同的用户会出现不同的产品。好的UI设计师除了要有很好的美术技法以外,还要有成熟的设计流程与方法。设计师的综合素质是至关重要的,理性和感性结合是对UI设计师的重要要求。

 

UI框架的Composite模式

UI组件大都会遵循Composite模式,Composite模式是将对象组合成树形结构以表示“部分-整体”的层次结构。使得客户端对单个对象和组合对象的使用具有一致性.根据GOF中对组合模式的定义,Composite模式一般由Component接口、Leaf类和Composite类组成。Composite可以再包含Leaf和Composite的。而 Leaf和Composite 又都属于 Component,所以增加,删除的是Component。
1)在UI的设计中,组件之间有一些行为含义是相同的,比如在控件上作一个点击,移动操作等等的,这些都可以定义为Component接口,然后由各个派生类去实现。
2)基本的控件是诸如Button,Edit这样的控件,相当于是这里的Leaf组件
3)Composite类保存了一个基本对象的集合。针对Component类中的每个方法,Composite类都有相同名称的方法与之对应。通常Composite类中的方法在实现时都会将集合中的对象遍历一次,然后调用每个对象中相应的方法。
 

直接操纵的UI设计

直接操纵的UI设计就是你按照真实世界中的做法,对物体进行操纵。比如你想看看手机是不是放在抽屉里了,只要打开抽屉就知道了。这听起来好像有点奇怪,因为这不是再正常不过的事情了吗?可是你想想在电脑里,就拿AVG或RPG游戏来说,你扮演的角色要喝水的时候是不是要先用鼠标点杯子,然后在弹出的菜单中选择“喝水”?这就不是直接操纵,并且在GUI中,非直接操纵的交互太普遍了,以致大家都见怪不怪了。

直接操纵的好处很多。最大的好处就是没有或几乎没有学习成本,现实当中的做法和计算机中的没有区别,预期和结果相符;其次就是出错的可能性会大幅度降低,操作时间也会下降,因为所有的结果都是可预期的;最后,直接操纵所带来的乐趣比较大,比如玩游戏的时候。写到这儿突然想起一个绝妙的例子:Westwood的经典名作“C&C”和尚洋工作室的“血狮”。这两款游戏我就不介绍了,老玩家应该都记得,不知道的可以自己Google,我要说的是它们虽然同为战争类的RTS游戏,但操作方式却大相径庭。C&C是对直接操纵的典型应用(虽然很多方面还不是):选中一个物体-比如一辆坦克-然后点击目的地,坦克就会自动开过去;可到了血狮那里,好不容易选中了一辆坦克后(血狮程序有Bug,选东西经常选不中),你还需要在菜单中选择让它干吗-是移动还是攻击?让人哭笑不得,期待了那么久的国产游戏,拿到手后却被拙劣的操作方式搞的兴趣索然(我知道尚洋也是有原因的,作为国产游戏早期的从业者,他们的开拓精神值得尊敬,这里的讨论只是就事论事)。

有人可能会问,直接操纵是不是等于所见即所得(WYSIWYG)?我觉得直接操纵肯定是所见即所得的,但反过来则不一定。比如在Photoshop里调整一个对象大小的操作就是所见即所得的,如果你通过鼠标拉动来调整,这就是直接操纵;如果在工具面板中直接输入对象大小的数值,虽然你也能即时看到结果,但这就不是直接操纵,按照我最最崇拜的HCI专家Shneiderman (1997)和Preece(1994)两口子的观点,这叫做“form fillin”。

直接操纵当然也有很多缺点。对于UI设计师和程序员来说,最大的问题就是对技术要求太高,相比非直接操纵的程序,开发人员需要付出更多努力,这一点极大地阻碍了这一交互方式的普遍应用。幸运的是,Apple公司Core Animation的出现,可能会在整个IT行业加速推动直接操纵的应用。对于普通用户来说,并不是所有操作需要直接操纵。比如按照“文件XX”的形式给一个目录下100个文件改名(其中的XX代表数字编号),直接操纵显然不如命令行来得快。

 


Page 1 of 11
  服务地区:上海 江苏 浙江 安徽 山东 福建 广东 江西 杭州 苏州 北京 深圳 广州 天津 大连 无锡 香港 台湾 新加坡 日本 美国 英国 法国 德国 意大利  
 
导航: 多媒体设计开发   软件界面设计   手机界面设计   网站设计   图标设计   VI设计   角色及短片设计