J2ME游戏开发实例讲解(1)

一、序言

  昨天在网上闲逛,发现一篇讲解用delphi实现华容道游戏的文章,颇受启发.于是,产生了将华容道游戏移植到手机中去的冲动.现在手机游戏琳琅满目,不一而足,华容道的实现版本也很多.正巧不久前笔者对J2ME下了一番功夫,正想借这个机会小试牛刀。选用J2ME的原因还有一个就是目前Java开发大行其到,无线增殖业务迅猛发展,J2ME的应用日渐活跃起来,也希望我的这篇文章能够为J2ME知识的普及和开发团队的壮大推波助澜。由于长期受ISO规范的影响,这次小试牛刀我也打算遵照软件工程的要求,并采取瀑布式的开发模式来规划项目,也希望借此机会向各位没有机会参与正式项目开发的读者介绍一下软件开发的流程。

  这里我们先定义项目组的人员体制(其实只有我一个人):技术调研、需求分析、概要设计、详细设计、编码、测试均有笔者一人担任;美工这里我找了个捷径,盗用网上现成的图片,然后用ACDSee把它由BMP转换成PNG格式(我出于讲座的目的,未做商业应用,应该不算侵权吧);至于发布工作,由于缺少OTA服务器,此项工作不做(但是我会介绍这步如何做)。

  接下来,我们规划一下项目实现的时间表,以我个人经验,设想如下:技术调研用2天(这部分解决项目的可行性和重大技术问题,时间会长一些),需求分析用半天(毕竟有现成的东东可以参照,只要理清思路就行了,况且还有很多以前用过的设计模式和写好的代码),概要设计再用半天(有了需求,概要只不够是照方抓药),详细设计要用2天(这一步要把所有的问题想清楚,还要尽可能的准确描述出来),编码用2天(其实1天就够了,技术已经不是问题,多计划出一天来应付突发事件),测试用2天(测试应该至少占全部项目的四分之一,不过这个项目只是一个Demo,也太简单了),发布也要用上半天(尽管我们不去实际发布它,但是还要花点时间搞清楚应该如何做),最后就是项目总结和开庆功会(时间待定)。

二.利其器

  “公欲善其事,必先利其器”,做项目之前第一步是前期调研.我们要做的华容道这个东东随处可见,我们要调研的是两个方面:

1、游戏的内容:游戏本身很简单,就是有几个格子,曹操占据其中一个较大的格子,然后被几个格子包围,这些格子形状不一定相同,但是挡住了曹操移动的方向.游戏者需要挪动这些格子最终把曹操移动到一个指定的位置才算是过关.更具体的分析我们放在后面需求分析和概要设计中讨论。

  2、技术储备:谈到技术,这里简单介绍一下J2ME.Java有三个版本,分别是J2ME(微型版).J2SE(标准版).J2EE(企业版).J2ME是一个标准,采用3层结构设计.最低层是配置层(Configuration)也就是设备层,其上是简表层(Profile),再上是应用层(Application).MIDP就是移动信息设备简表,目前主流手机支持MIDP1.0,最新的是MIDP2.0,它比前一个版本增加了对游戏的支持,在javax.microedition.lcdui.game包中提供了一些类来处理游戏中的技术,比如我们后面会用到的Sprite类,它是用来翻转图片的.权衡再三,笔者决定使用MIDP2.0来做开发.首先需要安装一个J2ME的模拟器,我们就用Sun公司的WTK2.0,我觉得Sun的东西最权威.当然你也可以使用Nokia.Siemens或是Motolora等其他模拟器,但是他们的JDK不尽相同,写出来的程序移植是比较麻烦的.

Sun公司的WTK2.0可以到搜索引擎寻找下载,当然要想成功下载的前提是你要先注册成为Sun的会员(其实这样对你是有好处的).当下来之后就是按照提示一步一步的安装.安装好了之后,我们用一个"Hello World"程序开始你的J2ME之旅.我们启动WTK2.0工具集中的KToolBar,然后点击New Project按钮,在弹出的输入框中输入Project Name为HelloWorld,MIDlet Class Name为Hello,然后点击Create Project,开始生成项目,工具会弹出MIDP配置简表,这里接受生成的默认值(以后还可以修改)点击OK,工具提示我们把写好的Java源程序放到[WTK_HOME]/apps/HelloWorld/src目录之下.我们编辑如下代码,并保存在上述目录之下,文件名为Hello.java。

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class Hello extends MIDlet
{
private Display display;
public Hello(){
display =Display.getDisplay(this);
}
public void startApp(){
TextBox t = new TextBox("Hello","Hello",256,0);
display.setCurrent(t);
}
public void pauseApp(){
}
public void destroyApp(boolean unconditional){
}
}
  保存好了之后,点击Build按钮,工具会为你编译程序,如无意外再点击Run按钮,会弹出一个手机界面,剩下的就不用我教了吧(用鼠标对手机按键一顿狂点)。呵呵,你的第一个J2ME程序已经OK了.什么?你还一点都没懂呢(真是厉害,不懂都能写出J2ME程序来,果然是高手).我这里主要是介绍WTK2.0工具的使用,程序并不是目的,不懂的话后面还会有详细的解说,这里只是带你上路.什么?你不懂Java!那也没有关系,后面我再讲得细一点。
(未完待续)

本文来自: 站长(http://www.qqcf.com) 详细出处参考:http://study.qqcf.com/web/237/26175.htm

J2ME游戏开发实例讲解(1)相关推荐

  1. [转载]J2ME游戏开发实例讲解

    J2ME游戏开发实例讲解 一.序言 昨天在网上闲逛,发现一篇讲解用delphi实现华容道游戏的文章,颇受启发.于是,产生了将华容道游戏移植到手机中去的冲动.现在手机游戏琳琅满目,不一而足,华容道的实现 ...

  2. j2me游戏开发实例讲解 (转)

    j2me游戏开发实例讲解 (转)[@more@] j2me再现华容道 一.序言 昨天在网上闲逛,发现一篇讲解用 Delphi实现华容道游戏的文章,颇受启发.于是,产生了将华容道游戏移植到 手机中去的冲 ...

  3. J2me游戏开发实例讲解(华容道)

    j2me游戏开发实例讲解 (加入日期:2003-10-10 点击数:1541) [对此文发表评论]?[编程爱好者论坛] [保存文章至硬盘] ?[打印文章] Borland开发讨论区 微软开发讨论区 C ...

  4. j2me游戏开发实例讲解

    J2ME再现华容道 一.序言 昨天在网上闲逛,发现一篇讲解用delphi实现华容道游戏的文章,颇受启发.于是,产生了将华容道游戏移植到手机中去的冲动.现在手机游戏琳琅满目,不一而足,华容道的实现版本也 ...

  5. Adroid游戏开发实例讲解(五)-哄娃神器之随机五彩泡(附源码)

    Adroid游戏开发实例讲解(五)-哄娃神器之随机五彩泡(附源码) 程序之美 泡泡 一直被孩子认为是神奇的东西.记得儿时,经常 趁大人不注意,偷偷抓一把洗衣粉撞到口袋里,然后自己悄悄的找来一个小瓶子, ...

  6. Adroid游戏开发实例讲解(三)-小蝌蚪找妈妈附源码

    Adroid游戏开发实例讲解(三)-小蝌蚪找妈妈附源码 程序之美 从小就听着小蝌蚪找妈妈的故事长大,我相信小伙伴们一定都不陌生,因为小学课本中,我们早早的就学过了小蝌蚪找妈妈这篇文章,它既是一篇文章, ...

  7. 《Unity 3.x游戏开发实例》一1.5 欢迎来到Unity 3D

    本节书摘来异步社区<Unity 3.x游戏开发实例>一书中的第1章,第1.5节,作者: [加]Ryan Henson Creighton 译者: 师蓉 责编: 陈冀康,更多章节内容可以访问 ...

  8. 《Unity 3.x游戏开发实例》——2.10节注意

    本节书摘来自异步社区<Unity 3.x游戏开发实例>一书中的第2章,第2.10节注意,作者 [加]Ryan Henson Creighton,更多章节内容可以访问云栖社区"异步 ...

  9. python对abaqus本构二次开发_基于Python的Abaqus二次开发实例讲解

    第 1 页 共 11 页 基于 Python 的 Abaqus 二次开发实例讲解 ( asian58 2013.6.26 ) 基于 Python 的 Abaqus 的二次开发便捷之处在于: 1 .所有 ...

最新文章

  1. python控制手机发短信_python-在python3中使用容联云通讯发送短信验证码
  2. C#版及nodejs版的com端口监听程序
  3. Java - 错误: quot;java.lang.ArrayIndexOutOfBoundsException: length=1; index=1quot;
  4. 【Network Security!】搭建文件分享服务器,其实也可以很简单-HFS
  5. python制作自动抢票_python自动抢票
  6. Web前端遍历对象应该如何操作呢?
  7. CentOS5.6下配置rsync内网同步数据到外网
  8. 语言print如何实现连续输出_【每日一题】如何实现一个高效的单向链表逆序输出?...
  9. (转)java内部类详解
  10. python的变量与注释
  11. SQLi Labs Less-1 联合注入+报错注入
  12. (转)ASP.NET MVC 3.0:基于Ajax的表单提交,A页面认证失败后页面被强转至登录页面,待登录成功将如何回到A页面?...
  13. Vue—实例成员computed和watch
  14. 什么是EJB?EJB详解
  15. 机器学习----深刻理解高斯过程回归
  16. 经典案例悬臂梁受力有限元理论与程序设计_《数值计算与程序设计》系列课程之三
  17. 网络协议抓包分析(二)抓取聊天信息
  18. CSS3+JavaScript效果:胶卷式放映
  19. 【白话科普】从“熊猫烧香”聊聊计算机病毒
  20. javascript检测浏览器是否需要升级版本和提示

热门文章

  1. 将excel按照某一列拆分成多个单独文件
  2. wordpress禁用Gutenberg(古藤保)编辑器代码
  3. Raft原理:作者亲自上阵讲解
  4. OCR的工作原理与应用场景
  5. 谷歌机器学习规则 (Rules of Machine Learning)
  6. 【设计模式】11.享元模式
  7. mysql prepare命令_MySQL之prepare用法 NemoWang
  8. 人家网站都免费了,你还用Python去爬?
  9. 前辉瑞普强中国区首席运营官黄海出任菲吉乐科全球首席执行官
  10. win11 家庭版 如何 安装 自带虚拟机