- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
JAVA是一门相当优秀的语言。目前JAVA领域J2EE、JSP、STRUTS等
技术不知有多么的热门,他们的主要用途是用来进行企业开发,J2ME也由于能
够被大量的移动设备所支持,因此,也有不少的程序,特别是游戏是在J2ME平
台上开发的,反而是J2SE,似乎只是被人们用来做一做程序界面的,就连
APPLET也很少有人使用了〔有了FLASH,谁还用APPLET啊〕。用JAVA来开
发桌面平台的游戏,似乎很少有人这么做,也可能大家一想到做游戏都会想到
C、C++、汇编等。
前段日子我迷上的QQ游戏中的“连连看〞,游戏之余,突发奇想,也想自
己用做一个试试,经过十来天的奋战,终于完成了。我选择了JAVA来开发这
个游戏,之所以选择JAVA,是因为:
很少有人用JAVA来开发桌面游戏,是因为JAVA在网络方面的强大优势使
人们忽略了JAVA在桌面平台上的开发,特别是游戏方面,而并不是因为JAVA
做不到,而我,却希望通过我的尝试来告诉大家:原来JAVA也能做出漂亮的桌
面游戏的〔我可不是在夸我的程序:〕〕
由于JAVA生来就是为网络效劳的,因此,一旦有需要,很容易将单机版的
游戏改为网络版的〔我现在就在做:〕〕
由于现在有很多都支持J2ME,而J2ME和J2SE是一脉相承的,因此,
用JAVA编写的游戏可以很容易移植到J2ME平台上,想想当你的游戏在上
运行是一样多么愉快的事情啊。
开发的周期并不是很长,可是开发过程中我也遇到不少困难,也有不少收获,
我希望将我的开发过程写下来,与大家共同进步:〕
在我的开发过程中,你可以发现我是这么做的:
使用数组实现算法的核心
使用布局和按钮来实现操作
使用布局实现用户界面
使用线程在同一时间做更多的事情
.
使用静态变量来减少内存的开销,并且保持信息的一致性
使用文件来保存用户的配置信息
使用声音让程序更有生气
〔之一〕动手前的准备
看看别人现成的游戏
在盖房子之前,我们都会先打好地基,然后搭起框架,最后再就是一点一点添砖
加瓦,做软件也是一样的道理,都是从大体的框加向细节局部设计实现,现在,
我们开始吧。
其实不管是做软件也好,做游戏也好,只要是写程序,在动手之前是一定会存在
需求和分析的,如果不经过一定的分析就开始动手写程序,那么,这个程序一定
会很难写下去的,最后的结果可能会导致放弃。
那么,在我们动手之前,让我们先简单的分析一下吧。由于“连连看〞并不是一
个我们凭空开发的游戏,并且网上也已经有很多别人已经开发好的版本,因此,
对于我们来说,我们已经拥有了一个很好的原型〔比方说QQ游戏中的“连连
看〞〕,分析起来也应该是轻松得多。由于QQ中的“连连看〞是网络版,为了
开发上的简便,我们先放弃网络功能,做一个简单的单机版就行了。现在,让我
们现在来看一看QQ中的连连看吧。
“连连看〞的游戏规那么其实并不复杂,首先,游戏开始的时候,地图上会有由
.
数张不同的图片随机分散在地图上〔并且每张图片会出现偶数次,通常是4次〕,
只需要在地图上找出两张相同的图片〔点〕,并且这两个点之前可以用不超过3
条的直线连接起来就可以消除这两点,如此下去,直到地图上的点全部消除完就
算游戏结束,怎么样,规那么很简单吧?:〕我们的开发就完全按照些规那么来
吧。
分析游戏规那么找出算法
通过上面的分析,我们已经知道了游戏规那么,可是,我们怎么样去实现呢?
其实所谓的实现也就是算法,那我们怎么样找出算法呢?别急,让我们来看一看
上图,或者自己动手玩一玩别人做好的。
通过对上图的观察,我们发现,可以将游戏中的地图看作是一个二维数组,其中
的所有图片〔以下称“点〞〕可以看作是数组中的一个具体的元素。那么,游戏
中相同的图片可以看作是数组中不同位置两个值相同的元素。至于直线,让我们
给组数中的每一个元素赋一个特殊的值如0,以表示地图上空白的位置。并且
同时规定:当连续的具有该特殊值的点的
文档评论(0)