Skip to content


毕业设计 - 手机版泡泡堂

23,673 浏览

第2章 开发平台与主要技术

2.1 开发平台
本游戏开发平台为Eclipse3.2.2 + EclipseME1.6.6 + JDK1.5.0.9 + Wireless Toolkit 2.5 + Proguard3.6,模拟测试平台为N6230、N6255、WTK模拟器与semc_java_me_cldc_sdk_2_2_4(索爱全系列模拟器),真机测试平台为诺基亚N6070、诺基亚N6080、索爱K750C、摩托罗拉V1。图形处理工具为Fireworks 8.0、ACDSee 3.1、PNG Mate 2.0。
2.1.1 Eclipse
2001 年11 月 IBM 宣布捐出了价值 4 千万美金的开发软件给开放源码的 Eclipse 项目。
Eclipse 是替代IBM Visual Age for Java(以下简称IVJ)的下一代IDE 开发环境,但它未来的目标不仅仅是成为专门开发Java 程序的IDE 环境,根据Eclipse 的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。更难能可贵的是,Eclipse 是一个开放源代码的项目,任何人都可以下载Eclipse的源代码,并且在此基础上开发自己的功能插件。也就是说未来只要有人需要,就会有建立在Eclipse 之上的COBOL,Perl,Python 等语言的开发插件出现。同时可以通过开发新的插件扩展现有插件的功能,比如在现有的Java 开发环境中加入Tomcat 服务器插件。可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是Eclipse 的潜力所在。在本项目中,Eclipse正是通过第三方插件实现了开发J2ME应用。

图 2.1 1 Eclipse启动画面

图 2.1 2 Eclipse工作区界面
网站:http://www.eclipse.org
2.1.2 EclipseME
EclipseME是Eclipse的一个插件,通过安装它以使得我们可以在Eclipse下开发J2ME应用。我们可以像建立普通Java Project一样建立一个J2ME Midlet Suite,并调用WTK下的模拟器来运行或者调试它。

网站:http://eclipseme.org
2.1.3 JDK
即Java Development Kit,是开发Java应用的基础,Eclipse的运行也要依赖于它。

图 2.1 3 JDK1.5.0.9
2.1.4 Wireless Toolkit
Wireless Toolkit(以下简称WTK)是Sun提供的J2ME开发工具,用以编译J2ME程序,并且内置了模拟器和分析工具用于运行调试。因为它只提供一些基本的功能,并不是一个高效的IDE,所有人们一般在其它IDE下编写代码,再调用WTK来编译与运行。

图 2.1 4 WTK2.5
2.1.5 Proguard
Proguard是一个出色的混淆器,用以增加程序被破译的难度,并可以减小最后生成jar的体积,后文中将会详细的应用介绍。
2.1.6 诺基亚N6070

操作系统:Nokia S40 2nd
网络频率:GSM/GPRS/EDGE;900/1800/1900MHz
屏幕参数: 65536色CSTN彩色屏幕;128×160像素;
Java扩展:CLDC1.1;MIDP 2.0
内存堆栈:1M Byte

2.2 主要技术
本游戏实现大量应用了MIDP2.0中的用于游戏开发的类库,即GAME API。这组简洁的API放在javax.microedition.lcdui.game包中。
下面介绍一下各个类的用途。
? GameCanvas类
GameCanvas是Canvas的子类,它代表了游戏的基本界面。在GameCanvas上进行绘图代替了直接在Canvas绘图。GameCanvas的主要改进在于它自动实现了双缓冲,并提供了轮询键盘输入事件的方法。使用GameCanvas可统一游戏的基本框架。
? Layer类
Layer类是一个抽象类,代表了界面的一个基本显示单元。每一个Layer都有位置、大小、可见性等属性,以及更改这些属性的方法。我们并不直接使用Layer类,而是使用它的两个子类——Sprite类和TiledLayer类。
? LayerManager类
LayerManager类负责管理Layer,并通过按照一定的顺序在画布上进行来实现分层次的自动渲染。LayerManager还提供了一个可视窗口的概念(View window),因为游戏地图往往比界面画面大很多,通过设定当前可视窗口的大小和位置,可以轻松地实现滚屏等常见效果。
? Sprite类
Sprite类是Layer的一个子类,它面上的意思是“精灵”。这是一个游戏开发的专有名词,代表了界面上一个基本的可视单元。这个词早在红白机 之前的游戏开发中就被使用了,并沿用至今。例如,在一个追逐游戏中可能有两个Sprite对象:猫和老鼠。一个Sprite对象一表会包含好几帧画面,按照一定的顺序和频率显示这些帧来实现动画的效果。Sprite类还提供了画面的翻转、旋转及简单的碰撞检测等。
? TiledLayer类
TiledLayer类是Layer的另一个子类。Tile也是二维游戏开发的一个经典词汇。你可能听说过基于砖块的游戏这一提法,它的思想是把界面的背景画面划分成一个二维的表格,并使用不同的图像砖块去填充它。这样,只要用几个不同的图像砖块就可以组合出很大的图片,而所占的资源空间仅仅为原先的几十分之一甚至更小。实现一个健壮的Tile类需要花费一些成本,幸运的是TiledLayer就是基于Tile的地图的一个很好的实现。使用它可以方便地构建起美观的游戏地图。

Posted in 瞎编乱造.

Tagged with , , , , , , , .


47 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. panda says

    so cool~

  2. 骨头 says

    好详尽的注释
    我上次做项目的时候,开始没写注释
    结果后来交的时候要求30%的注释量
    从头注释那一堆代码的时候
    那个晕啊!

  3. cui says

    确实很酷!
    这样一来我都觉得自己做的设计根本没有任何意义。

  4. Isword says

    很不错,谢谢你的分享了!!

  5. 匿名 says

    谢谢啊

  6. snowtree says

    老大,没有下载版吗?

    我也是在做毕业设计,感觉j2me同j2ee实在差别太大了。快崩溃了。

    还有,你的画面很漂亮呀。

  7. cpiz says

    下载版?
    不是有源程序嘛,deployed目录下的PopTang.jar和PopTang.jad就可以直接传到手机里用了。

  8. 胡光 says

    呵呵,记得我当时实习手机开发上美工课画像素画....
    手那是发麻啊~~~

  9. 白菜 says

    不错啊,非常感谢!!!

  10. 阿七[seven] says

    赞一个

    你的作品和论文写得很好,觉得你做东西真的很认真,佩服

    记得我一年多前做毕业设计,很多都是应付式的,现在觉得真是有点后悔。

    最近想学学j2me,主要是搞个超级玛丽,谢谢你的作品了,有很好的参考价值。

  11. jiajia says

    很好呀!要象你多学点。

  12. zxd says

    真是太伟大了

  13. 匿名 says

    你怎么不搞个大屏的啊
    ?

  14. cpiz says

    因为我自己用的N6070就这么大,方便测试

  15. huyan says

    非常感谢
      正打算做手机游戏的毕业设计,没有头绪一定好好参考.
      就不客气的收下了

  16. 菜鸟长不大! says

    感激不尽!(一百遍) 楼主太好了! 我都不知道用语言了! 总之一句感激不尽! 279636240是我的QQ希望高手们多多指点!

  17. 9527 says

    楼主很不错啊,向你学习钻研和贡献精神

  18. 张康乐 says

    lz强人!张某佩服。小弟现在国外工作,实不如意,打算明年年底回国工作,打算从事J2ME手机游戏的开发工作。因为我喜欢玩游戏,一直都想自己做个游戏,可惜,雷声大,雨点小。
    我的毕业设计是JPG和BMP图片的相互转换,用TurboC2谢谢,最后实现了,可是,程序写得很烂,跟Lz比简直是相差十万八千里啊,一句话,还是佩服!
    昨晚配置J2ME的环境,搞到凌晨3点,没有成功,装好EclipseME后,首选项中的J2me选项出来了,但是Platform Components这个选项始终没有。不知Lz能否指导小弟一下?小弟感激不尽!

  19. cpiz says

    我大半年没写过程序了,刚打开Eclipse看了下,也没找到你说的Platform Components.
    不知道你要做何用?

  20. 张康乐 says

    哦,这个问题已经解决了,Eclipe版本不同,3.2好像没有这个选项,不过系统已经配置好了,helloworld已经运行成功,不过还是谢谢你,呵呵~~

  21. 年轻的大天才 says

    我今年大四了,我跟导师说明年毕业设计换你的这个题目,因为我可能明年会进一家手机游戏公司,打算也做个泡泡堂,不知道你介不介意让我使用你的部分代码和论文,可能还需要你稍微指点一下,谢谢了
    QQ:376773982

  22. cpiz says

    可以,有疑问请联系我QQ,只是代码方面我已经忘得差不多了。。。

  23. sunisi2008 says

    哥们 你真伟大啊 收藏了

  24. 年轻的大天才 says

    老大,你什么时候上QQ啊,给你留言也没用,有没有开题报告之类的资料可以给我参考一下啊?论文有没有DOC版的,我还有几个代码的问题想请教你一下,谢谢了
    QQ:376773982

  25. cpiz says

    不好意思,平时工作非常忙,加我QQ的时请注明身份,否则一般是不通过的。

  26. 年轻的大天才 says

    9931817到底是不是你QQ啊,我用google搜到的
    根本就没有身份验证啊。

  27. cpiz says

    不好意思, 我的QQ是7405440...我也忘了我有没有在Blog上公布过QQ了.

  28. JAR says

    我想玩这款游戏,能告诉我在哪下载吗,我在你的blos里找不到,有源码我也不会用

  29. 过路者 says

    马上要毕业了,课题就是基于J2EE的手机游戏的编程,因为我是学通信的对软件的开发不是很了解,准备毕业论文就这么混过去,看到LZ和各位师哥师姐的留言我决定认真的做玩,要让以后没有遗憾。

  30. zw says

    我也是万老师的学生,他是一个很好的老师,不过我不是一个跟你一样的好学生,呵呵,是他推荐我来的,他说你做的毕业设计是代表了大学生本科的最高水平,佩服。。。师哥~~~

  31. 小暖 says

    做的不错哦..如果是大屏幕的,在模拟器上玩的会更爽的,一个字,强!还有个问题,看了下高手的论文,地图是三维的,那么,这也算一款三维游戏了吧..

  32. Don says

    你好!冒昧打扰了。我现在在做j2me的手机游戏。我是个新手。看了你的程序。我有点搞不懂。关于那个“保存关卡配置”具体是怎么做的啊。是怎么生成的十六进制配置文件的?如果你有空的话,麻烦回答下。谢谢哈!

  33. 匿名 says

    用你目录做参考写另一个游戏的论文,谢谢了

  34. 匿名 says

    你好,我现在是个大四的毕业生,由于Java根基浅薄,看了你的毕业设计关于那个关卡类的设计是怎么完成的?还望指教阿!QQ:61508486

  35. 匿名 says

    bbbbbb

  36. Andy says

    你好,我也是软件学院的学生,万老师上课的时候提过你,在这看到你的东西,很荣幸,呵呵!你的程序做的真的很好,向你学习,也请教下,你的泡泡堂在Jbuilder X里面应该如何运行,我其他的配置应该都没问题,就是运行不了,
    java.io.IOException: CreateProcess: C:\Nokia\Devices\S40_SDK_3rd_Edition_Feature_Pack_2\bin\javaw -classpath D:\ppt\classes;C:\Nokia\Devices\S40_SDK_3rd_Edition_Feature_Pack_2\lib\classes.zip ppt.PopTang error=2
    还望指教,谢谢!

  37. cpiz says

    我读书那会老师用JBuilder教学, 但我还是坚持用自己的Eclipse, 不熟悉JBuilder的配置, 帮不上你了.
    我也向你推荐Eclipse或NetBean.开发工具的选择上大可不必跟着老师走, 想当年我们学C语言时还用Turbo C, 打击了多少人...还不如用Ultra Edit + cl呢!

  38. 匿名 says

    确实不错,比我那时做的强多了!!记得我做手游毕设的时候好像还从没人做过手游毕设~~呵呵
    万老师确实是好老师,如果没有他的指导的话就无法完成游戏了!

  39. 匿名 says

    伟大啊

  40. 爱之家 says

    很强大,谢谢分享,希望能向你请教!谢谢

  41. 红剑 says

    very good
    谢谢分享,希望以后能向你请教!

  42. WellBeing says

    大虾,请较一下,请问你知道J2ME游戏的脚本是怎么写的吗?地图工具用的是什么呢?有没有相关的教程啊?网上关于脚本的东西很少,地图工具也没有教程,自己摸索蛮耗时间的说~~

  43. jerry_zihuai says

    借鉴了下你的这个项目,论文还有部分代码(主要是整体的框架),不知道可行否?谢谢先~

  44. cpiz says

    @jerry_zihuai
    无所谓~

  45. mspop says

    我喜欢玩这个游戏,嘿嘿 !

  46. nitteTraine says

    Find Canon IR2830 Sharp AR-208s

    Buy Sharp MX-M200D
    Canon Image Runner
    Image Runner 2018
    Buy Canon IR-2020
    Review Canon IR-1025IF

    High-Performance Laser All-in-One for your Business or Small Workgroup

    Buy Panasonic
    Panafax UF-7200

    Sharp FO-DC535 REFURB
    Find Brother8480DN
    Canon Canon IR-1025IF
    Sharp FO-2080

Continuing the Discussion

  1. 手机上网应用到很多地方 = 飞龙在天 linked to this post on 2008-06-10

    [...]   1. http://cpiz.com/blog/archives/115/2 [...]



Some HTML is OK

or, reply to this post via trackback.