loading请求处理中...

在手机java游戏开发中坚持的原则

2021-12-01 18:07:32 阅读 11128次 标签: java开发基础java游戏开发 作者: 910156420@qq.com
    智能手机的出现和发展给行业带来了不少的发展机遇,java游戏就是其中的受利者,很多人的手机上都安装了java游戏类的游戏,也对新的java游戏需求很大,所以需要不断的进行java游戏开发。游戏开发遵循原则能更快完成,在手机java游戏开发中坚持的原则主要是什么?一品威客网小编为大家详细介绍。
在手机java游戏开发中坚持的原则
    java游戏开发开发,一方面是需要掌握技术,另一方面是要注意抓住机遇,目前刚上来的通信行业3G领域的J2ME的人才需求就比较多。是个好的机会。如果想要系统的学习,可以咨询一下乐成数字通信学院这方面的课程。3G移动嵌入式软件开发工程师—J2ME平台致力于培养深入掌握Java、J2ME、Java WEB等技术,从事基于J2ME平台的手机游戏开发、手机嵌入式软件开发的高端人才。主要就业企业为盛大数位红、捉鱼网、大头网等手机游戏开发公司或手机客户端软件开发公司

    1、始终保证repaint仅刷新需要部分,避免无谓的全局重绘。

    每repaint一次,事实上就是将paint中的图形打印到窗体上一次,窗体越大,处理的图像越复杂,repaint所造成的资源损耗也势必越多,运行效率也势必越低。但反过来说,由于Java允许我们限定repaint的范围,因而我们可以将刷新限定在某一特定区域内,更准确地说我们可以仅在需要变更画面的位置上才进行刷新,以此将损耗降低到最低限度,总体上说,即使我们会因为计算刷新区域额外花费些许时间,总体上讲也比全局repaint要快得多。

    2、始终保持画布的唯一性。

    现实生活中,人类通过口腔及消化道摄取的营养物质可以被心、肝、脾、肺、肾等内脏吸收,却没有人会想给自己的心、肝、脾、肺、肾上也弄个嘴,因为一致性的功能实现只要有一个就足够了。但是,有时我们不经意的在游戏中add、remove不同panel或canvas以求转换画面的行为,无异于是想给游戏的心、肝、脾、肺、肾上装嘴的不智之举,切忌Java的GUI都是画出来的,重绘就好,没有切换组件的必要,否则费力不讨好。

    3、始终以接口方式转换监听及处理图像绘制,务必将视图及逻辑层分开。

    针对一些混合类型的游戏,比如SLG+AVG、RPG+STG,我们将面临不同模式下游戏的监听器及绘图器切换问题。

    这时最简单的抉择莫过于为每一个游戏类型都订制一个对应的面板进行切换,这样虽表面上方省心,但却也是最费力而不讨好的,且不说闪烁问题需要单独解决,资源占用问题,光冗余代码就够人头痛了。

    其次就是在一个面板中针对不同游戏类型使用switch判断以切换监听及绘图,事件数量少时固然可以,效率也不错,但稍微多一点恐怕就不那么简单,更多时则仅余郁闷,同样不建议使用。

    就我个人所见,解决这一问题的最好方法莫过于沿用MVC模式,以接口方式构建绘图器及监听器,当游戏出现变更时,我们仅仅需要切换监听及绘图接口,就可以迅速转变游戏内容,而无需区别对待不同的实现,这样即避免了组件切换的闪烁及延迟,也精简了代码,更有利于开发时的模块划分。

    5、始终在处理复杂绘图时直接准备贴图而非由程序绘制。

    我们都知道Java绘图事实上是GDI实现,因此其绘制复杂画面的效率也就可想而知。通常强况下,除非当前的效果非编程不能实现,或者其所造成的资源损耗确实微小到可以忽略不计,否则最好的方法就是用空间换效率,准备好图片直接贴上去吧,宁可增加些程序体积,也不要让玩家因等待的愤怒而问候你祖宗八辈。

    6、始终以静态方式加载游戏常用资源,缓存常用对象,并及时释放无用资源。

    即使历史发展到今天,Java依旧没有彻底摆脱其系统资源杀手的可憎面目,GC机制也导致我们无法适时地释放资源,new的越多,系统也变得越慢,这对于大量使用图形资源的游戏来讲尤其要命。所以我们要尽一切可能令常用资源静态化为唯一实例以避免反复调用,而将一些调用后不会再使用或很少使用的资源迅速 null以等待GC自动回收。否则,你将发现你的游戏距离内存溢出是那样的近……

    4、始终以循环方式展开游戏,利用线程控制游戏流程,避免出现僵直现象。

    事实上所谓的游戏开发,在某种程度上不过是由程序员制作出的一种夹杂着各类图形算法,用以适时地展示各种资源的幻灯程序;唯一的区别在于,普通幻灯程序中人机交互性较弱,而游戏的人机交互性较强罢了。

    我们都知道,幻灯程序在展示中无论如何跳转展示页,也必然有其固定的begin与end页面,而且也势必能重复从头至尾顺序循环其begin与end,以此构成一个幻灯片。

    实际上游戏制作也一样,无论游戏流程如何转变,游戏都会有也必然会有一个主流程,或者说一个主循环体,这样我们才能由游戏开始进行到游戏结束,而不是从一个结束到另一个结束,也就是说无论游戏中细节分支有多少,它的主流程处理及判定也必然是顺序的。针对这一特性,决定了我们应将游戏主体代码至于一个大的循环体之内,再利用线程控制循环体中的游戏进度,从而更好的顺应这一流程。简单的说,我们应将循环体中每一个使用到的绘图器都当作于flash中的一桢,而线程的各种控制当作时间轴,用以调节不同桢的播放速度及调用时机,以此完成各种不同的事件交互。

    java游戏开发是一个团队紧密合作,因此开发人员要能互相配合。如果你有java游戏开发需要,无论java游戏开发还是其他游戏开发,一品威客网上有各种各样的人才,他们会为你提供好的意见。

手游开发公司推荐

成为一品威客服务商,百万订单等您来有奖注册中

留言( 展开评论

快速发任务

价格是多少?怎样找到合适的人才?

官方顾问免费为您解答

 
手游开发相关任务
DESIGN TASK 更多
flutter混合开发解决部分问题

¥100 已有0人投标

公司防伪系统开发

¥5000 已有0人投标

律所官网开发

¥5000 已有1人投标

同声传译APP开发

¥5000 已有1人投标

电视机顶盒安装包软件开发

¥5000 已有0人投标

识图小程序开发

¥3000 已有0人投标

自动截屏小程序开发

¥3000 已有0人投标