Java游戏开辟中应始终保持的10项基本原则[Java编程]
本文“Java游戏开辟中应始终保持的10项基本原则[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
关于文章中触及的两个杜撰概念:
1、画图器:众所周知,Java GUI以paint举行画图,以repaint举行图象革新,而完成repaint及paint这一联贯历程中所用到画图组件,我将其称为画图器.就我个人的领会,画图器的调用机会应始终处于repaint之后paint之前,即通过repaint触发革新后履行,当此中的具体逻辑完成其对应的图象绘制后,再通过统一接口将其图象插入paint中,为了匹配需求,画图器应始终以接口方法实现.
2、监听器:这里所说的监听器,并非特指某个Listener组件,而是包含Java游戏中所需的全部监听器调集.由于Java游戏中极大概会切换差别的游戏情势,而差别情势游戏中需求处理的鼠标或键盘事件也不尽相同.所以在Java游戏开辟中,我们需求一个可替换的监听器调集,用以变更差别游戏情势下的差别监听事件,为了匹配需求,监听器应始终以接口方法实现.
正文,关于Java游戏开辟中应始终保持的10项基本原则:
1、始终保持画布的唯一性.
实际生活中,人类通过口腔及消化道摄取的营养物质可以被心、肝、脾、肺、肾等内脏吸取,却没有人会想给自己的心、肝、脾、肺、肾上也弄个嘴,因为一致性的功效实现只要有一个就充足了.但是,有时我们不经意的在游戏中add、remove差别panel或canvas以求转换画面的行为,无异于是想给游戏的心、肝、脾、肺、肾上装嘴的不智之举,切忌Java的GUI都是画出来的,重绘就好,没有切换组件的必要,不然吃力不奉迎.
2、始终以接口方法转换监听及处理图象绘制,务必将视图及逻辑层脱离.
针对一些混合范例的游戏,比方SLG+AVG、RPG+STG,我们将面对差别情势下游戏的监听器及画图器切换问题.
这时最简单的决意莫过于为每一个游戏范例都订制一个对应的面板举行切换,这样虽表面上方费心,但却也是最吃力而不奉迎的,且不说闪耀问题需求单独办理,资源占用问题,光冗余代码就够人头痛了.
其次就是在一个面板中针对差别游戏范例利用switch判断以切换监听及画图,事件数目少时当然可以,效率也不错,但略微多一点恐怕就不那么简单,更多时则仅余忧郁,一样不倡议利用.
就我个人所见,办理这一问题的最好办法莫过于相沿MVC情势,以接口方法构建画图器及监听器,当游戏呈现变更时,我们仅仅需求切换监听及画图接口,便可以疾速改变游戏内容,而无需辨别对待差别的实现,这样即避免了组件切换的闪耀及耽误,也精简了代码,更有利于开辟时的模块划分.
3、始终以静态方法加载游戏常用资源,缓存常用对象,并及时释放无用资源.
即便历史发展到本日,Java仍旧没有完好摆脱其系统资源杀手的可憎面目,GC机制也招致我们无法合时地释放资源,new的越多,系统也变得越慢,这关于大量利用图形资源的游戏来说特别要命.所以我们要尽一切大概令常用资源静态化为唯一实例以避免反复调用,而将一些调用后不会再利用或很少利用的资源疾速 null以等候GC自动回收.不然,你将发现你的游戏距离内存溢出是那样的近……
4、始终以循环方法展开游戏,操纵线程掌握游戏流程,避免呈现僵硬现象.
事实上所谓的游戏开辟,在某种程度上不过是由程序员制作出的一种搀杂着各类图形算法,用以合时地展示各种资源的幻灯程序;唯一的辨别在于,普通幻灯程序中人机交互性较弱,而游戏的人机交互性较强罢了.
我们都知道,幻灯程序在展示中无论若何跳转展示页,也必定有其固定的begin与end页面,并且也必将能反复重新至尾次序循环其begin与end,以此构成一个幻灯片.
实际上游戏制作也一样,无论游戏流程若何改变,游戏城市有也必定会有一个主流程,大概说一个主循环体,这样我们才能由游戏开始举行到游戏完毕,而不是从一个完毕到另一个完毕,也就是说无论游戏中细节分支有多少,它的主流程处理及断定也必定是次序的.针对这一特点,决意了我们应将游戏主体代码至于一个大的循环体之内,再操纵线程掌握循环体中的游戏进度,从而更好的适应这一流程.简单的说,我们应将循环体中每一个利用到的画图器都当作于flash中的一桢,而线程的各种掌握当作时间轴,用以疗养差别桢的播放速度及调用机会,以此完成各种差别的事件交互.
5、始终在处理复杂画图时直接预备贴图而非由程序绘制.
我们都知道Java画图事实上是GDI实现,因此其绘制复杂画面的效率也便不可思议.普通强况下,除非当前的效果非编程不能实现,大概其所造成的资源损耗确切细小到可以忽视不计,不然最好的办法就是用空间换效率,预备好图片直接贴上去吧,宁可增添些程序体积,也不要让玩家因等候的愤恨而问候你祖宗八辈.
以上是“Java游戏开辟中应始终保持的10项基本原则[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |