第二个灵魂 发表于 2015-1-18 11:20:21

了解下JAVA的利用NetBeans举行J2ME开辟(五):揭开游戏开辟的奥秘面纱

j2EE和asp比较,其实也没什么比的,原因和我上面说那些比较差不了多少,也是稳定性,安全性,J2EE比asp高,速度上比不过asp,asp也是延续着它的拖拽控件的方法,提高速度。
游戏开辟,好年夜的一个命题哦。不管是游戏的剧情计划,仍是游戏的美工制造,那都不是一两下子可以完成的事,而编程,只是个中的一小部分。可是,就算是这一小部分,我也不成能把它把握得很透辟。这篇漫笔,年夜部分都是些抄书的工具,次要是为了我的博客的完全性而存在,可是我仍然会全力把它写好,要让那些精晓Java别的范畴可是却没无机会做J2ME开辟的妙手们看看图片解解馋,让那些想做手机游戏开辟的同仁们看看J2ME的GameAPI事实为我们供应了哪些撑持,让我们晓得写游戏必要懂得哪些观点。
先来懂得一下MIDP2.0的游戏开辟包,不必怕,这组API很简便,只要戋戋5个类,它们都位于javax.microedition.lcdui.game包中。它们分离为GameCanvas类、Layer类、LayerManager类、Sprite类和TiledLayer类。上面分离来先容一下各个类的用处。
1>GameCanvas类
GameCanvas类是Canvas的子类,它代表了游戏的基础界面,复杂一点说,就是一切的游戏画面都是在GameCanvas长进行绘制的。那末GameCanvas和Canvas比拟,事实供应了些甚么更初级的功效呢?次要有两点:1、完成了双缓冲功效;2、供应了轮询键盘输出事务的办法。
双缓冲人人一定很熟习,就是我们画图的时分先把图像绘制到一个缓冲区中,等图像绘制完成后,再一次性显现到屏幕上,如许,就能够无效打消闪灼和画面扯破等征象。在GameCanvas中,我们能够经由过程getGraphics()办法获得缓冲区的Graphics对象实例,能够经由过程flushGraphics()办法来将缓冲区的内容显现到屏幕上。
轮询键盘输出事务有甚么用呢?要回覆这个成绩,我们起首要懂得一些基础的游戏框架,在年夜部分游戏中,都存在一个主轮回,这个主轮回决意了我们的游戏以每秒钟几步的频次运转,而在每步中,先查询有没有键盘输出事务,再运转游戏的逻辑运算,最初更新画面,然后再进进下一步。在Canvas中,键盘的输出事务都是经由过程回调的体例举行的,也就是说当有按键按下的时分,挪用keyPressed()办法,如许的功效一定不克不及够满意我们如许的每步都要查询键盘输出的请求。经由过程挪用getKeyStates()办法便可轮询键盘。
2>Layer类
这是一个笼统类,我们其实不间接利用它,而是利用它的两个子类——Sprite类和TiledLayer类
3>Sprite类
Sprite是精灵的意义,这是一个游戏开辟的专着名词,在我们游戏中的每个对象,我们都能够称为一个精灵。Sprite类供应了画面的翻转、扭转及复杂的碰撞检测等。要在GameCanvas上绘制一个精灵对象也很复杂,只必要挪用Sprite的paint办法,该办法必要一个Graphics范例的参数,我们把缓冲区的Graphics对象实例传送给它便可。
4>TiledLayer类
Tile也是一个二维游戏开辟的典范辞汇,是砖块的意义。这个类有甚么用呢?次要是用来构建舆图。这个事理一想也很简单分明,我们玩的游戏中,舆图常常比屏幕窗口年夜良多,岂非我们必要做这么年夜的图片吗?固然不是,我们只必要做几个小图片,它这些图片依照必定的按次平展,就能够失掉一个相称年夜的舆图。TiledLayer类就为我们供应了如许的功效。
5>LayerManager类
这个类次要是用来办理Layer,它能够在画布上分条理的绘制精灵和舆图,如许,就能够对照便利的办理谁在前、谁在后、谁遮挡谁等成绩。
上面来看实例。方才已说过,游戏计划是一个很庞大的历程,没有专业的步队是很难弄的。固然,我们也不是没有另类的弄法,那就是翻版。想想我们从小时分到如今玩过哪些典范游戏?俄罗斯方块、超等玛丽、合金弹头、雷电、街霸、拳皇等等,另有前两年十分盛行的“是汉子系列”,这些游戏各有各的运转平台,厥后又年夜部分移植到PC平台,如今,我们何不尝尝将它们移植得手机上呢?经由过程后面的先容,不丢脸出,这些典范的2D游戏都可使用下面的几个类来归纳综合:飞机、枪弹、仇人都是Sprite,年夜海、天空、丛林、戈壁都是TileLayer,我们所面对的困难,就是汇集和制造图片素材罢了。
这里的实例是“是汉子就下一百层”的手机翻版,下载地点:http://www.j2medev.com/Soft/src/game/200610/802.html,作者,归正不是我。上面是运转最终效果:

<p>
而学习JAVA我觉得最应该避免的就是:只学习,不思考,只记忆,不实践!

再现理想 发表于 2015-1-20 14:55:41

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

小妖女 发表于 2015-1-29 11:29:06

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

柔情似水 发表于 2015-2-3 13:58:12

是一种突破用户端机器环境和CPU

admin 发表于 2015-2-6 08:17:17

你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。

深爱那片海 发表于 2015-2-10 22:21:03

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

活着的死人 发表于 2015-3-1 16:18:29

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

分手快乐 发表于 2015-3-3 01:36:10

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

飘灵儿 发表于 2015-3-11 08:21:05

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

不帅 发表于 2015-3-11 12:47:01

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

若天明 发表于 2015-3-11 13:50:39

《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。

小女巫 发表于 2015-3-18 15:39:58

我大二,Java也只学了一年,觉得还是看thinking in java好,有能力的话看英文原版(中文版翻的不怎么好),还能提高英文文档阅读能力。

因胸联盟 发表于 2015-3-26 01:53:55

Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
页: [1]
查看完整版本: 了解下JAVA的利用NetBeans举行J2ME开辟(五):揭开游戏开辟的奥秘面纱