JAVA网页编程之J2ME潜艇年夜战游戏计划与完成
再举这样一个例子:如果你想对一个数字取绝对值,你会怎么做呢?java的做法是intc=Math.abs(-166);而ruby的做法是:c=-166.abs。呵呵,这就看出了java与ruby的区别。计划择要本文给出了一个飞机射击类(潜艇)游戏的计划历程和响应的流程图,并供应了Demo版源代码下载地点,游戏在sunwtkv2.2下调试经由过程。
声明:本游戏所用的资本年夜多不属于作者,代码仅供非贸易用处的进修参考。
以下为游戏的几张截图
<br>
游戏计划
1游戏操纵流程:
游戏的初始画面是一个implusive的List列表格局,选择newgame今后就能够启动游戏,游戏是以全屏体例开启,但仍有效于停息/入手下手和加入的命令呼应功效键。在游戏傍边启动停息,海水和陆地生物仍将持续举动,但敌方潜艇和一切鱼雷都将运动上去,玩家的把持也将不起感化,直到游戏被再次启动为止。从游戏形态加入将回到菜单界面,再次选择加入将加入程序。
以下是游戏的整体流程图:
<br>
2算法处置
游戏本身是一个单态布局(singletone),由一个Controller来处置今朝应当展现的屏幕和形态。次要的显现类包含主画面,游戏画布,匡助画面和一些帮助的Alert,个中最主要是游戏画面。游戏是在MIDP2的形态下运转的,以是画面承继了GameCanvas。游戏中的脚色图层全体加载在一个宏大于手机屏幕巨细的图层办理器上。当玩家地位挪动时,图层办理器同步盘算出玩家的绝对地位,挪动以后图层的显现地位。
这个游戏的实质就是在midlet启动后把全部画布作为一个线程,每隔25ms扫描一下用户按键操纵,每隔50ms扫描一次仇人和鱼雷等物体的活动形态,关于对照苛求的枪弹射出及时呼应,则承继了keyPressed办法。
在扫描玩家挪动操纵时,按键编码被传进到玩家潜艇的呼应办法。在扫描仇人和鱼雷活动时,分两步完成。
第一步,实行各个物体画面的挪动办法。程序其实不为每一个新增鱼雷大概仇人开启一个新线程,太多线程会形成程序的功能直线下落;而是为每个物体范例保存一个Vector数组,每当一个新物体发生,他将起首被到场改范例所属的数组中,然后才在图层上画出;当物体打消时,除在图层上被打消,也必要从呼应数组中删除。如许就构成一种注册机制,一切游戏物体的发生和打消都必要向画布注册,画布具有分歧范例物体的一切“名单”,以是,当实行挪动命令时,只必要遍历各个范例数组,顺次实行个中每一个元素的挪动办法便可。
第二步,就是一样平常意义上重画,这里利用flushGraphics()替换了传统的repaint(),因为本游戏是以导进图片为操纵对象,图片地位的变动已在第一步被实行,以是没有怎样触及到象素级的重画,只是在游戏初始化形态时必要加载各个物体数组所对应的图层到新的图层办理器。
画布触发流程简图:
(因为手上没有rose,只要临时用EclipseUML的流程丹青出草图,多少有成绩的中央必要商讨,也但愿善于此到的伴侣不惜斧正)
<br>
3类布局
以以下出了次要构成类的寄义布局,并以游戏画布为中央列出一个类联系关系图。
Controller:把持类,用以把持以后屏幕显现哪个Displayable类。
SubObject:接口范例。玩家潜艇,仇人潜艇和鱼雷等可挪动图层范例皆扩大于此接口。
Sub:玩家潜艇。包括了地位,性命值等成员变量和挪动,开仗等办法。
EnemySub,MoveableSprite,Tinfish:仇人潜艇,陆地生物,鱼雷。都是可挪动图层范例,一旦发生就在画布中注册,由工夫触发器保护其活动和性命形态。
SubCanvas:游戏主画布。存储着游戏舆图信息,游戏形态,玩家书息,同步保护着仇人潜艇,鱼雷,陆地生物的活动和保存形态。
SubCanvas联系关系类图:
<br>
4源代码
本程序的源代码,包含jad,搅浑过的jar和一个rar文件,全体能够在http://www.hyweb.net/BrowseFiles.aspx?Folder=Public/My%20Project高低载到,代码中包括了较为具体的正文。这份程序只是一个demo版本,有一些遗留成绩(玩家性命值显现,功能优化)还必要进一步完美,有任何好的倡议,请必定接洽我.^_^
JAVA学习必须明确这是一项投资,对于大多数的人来说,学习JAVA是为了就业,还有就是刚走向工作位置的朋友想尽快赶上工作的节奏。 应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展 是一种突破用户端机器环境和CPU 让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。 至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。 学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。 是一种语言,用以产生「小应用程序(Applet(s)) 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading) 是一种使用者不需花费很多时间学习的语言
页:
[1]