j2me设计论文-推箱子
- 格式:doc
- 大小:432.50 KB
- 文档页数:30
I
《面向对象程序设计II》
-—J2ME
课程设计论文
题 目: 推箱子
学 院: 计算机与信息工程学院
专 业: 计算机科学与技术
班 级: 计算机06-7班
姓 名: 安清雨
学 号: 08
起止时间: 2008.12.21--2008.12.31
成绩:
II
课程设计任务书
一、设计题目:《推箱子》
二、设计内容:当大多数的人还将眼神停留在短信和彩铃上的时候,手机遇上游戏的际遇也在演绎它的精彩。“推箱子”就是其中之一,本设计针对推箱子实现了新游戏,选关,恭喜过关,继续或重玩等过程。可以清楚的演示各个画面的切换和一些游戏开发的类库。
三、设计要求:
1、开始显示初始化游戏界面,主界面显示各种键的功能以及菜单-新游戏和选关。
2、开始玩游戏,如果赢了可进入下一关或重来。采用确定和取消来实现以上功能。
3、如果选关,则出现选关界面,按确定开始选关,取消则返回初始化界面。
四、工作计划:
时间 完成内容 提交文档 备注
第1天 查找资料,确定题目,选择方案 课程设计任务书 设计准备阶段 第2天
第3天 题目分析,设计算法 算法描述
设计阶段 第4天 功能模块的划分和设计 结构流程图等 第5天
第6天 实现具体数据结构和模块 无
第7天
程序设计与调试 无 运行并验证程序功能 第8天
第9天
检查程序 第10天 整理材料,撰写论文 课程设计论文
指导教师: 王艳涛
教研室主任:
2008 年 12月31 日
本科课程设计论文
II 摘 要
J2ME平台被认为是最杰出的手机游戏平台,它为开发者、设备制造商、网络通信公司和消费者广泛接受。它有一些非常重要的特征对所有组织都有益。因为J2ME应用在不同设备上都是便携式的,他们常常可在网络上下载和执行。
本设计通过Canvas或gameCanvas才能画到屏幕上,通过他们以及各种类库来进行设计推箱子游戏,最后编程实现了全过程。
关键词:J2ME 面向对象 Canvas gameCanvas 推箱子
本科课程设计论文
III 目 录
课程设计成绩评定表 ............................................................................. 错误!未定义书签。
课程设计任务书 ...................................................................................................................... II
摘 要 ...................................................................................................................................... II
目 录 ..................................................................................................................................... III
1 设计内容 ............................................................................................................................... 1
2 设计过程 ............................................................................................................................... 1
2.1设计方案的论证 ......................................................................................................... 1
2.2概要设计 ..................................................................................................................... 3
2.3界面设计图 ................................................................................................................. 4
2.4代码实现 ..................................................................................................................... 6
3 设计总结 ............................................................................................................................... 7
参考文献 ................................................................................................................................... 7
附录:程序源代码 ................................................................................................................... 8
本科课程设计论文
1 1 设计内容
当大多数的人还将眼神停留在短信和彩铃上的时候,手机遇上游戏的际遇也在演绎它的精彩。“推箱子”就是其中之一,本设计针对推箱子实现了新游戏,选关,恭喜过关,继续或重玩等过程。可以清楚的演示各个画面的切换和一些游戏开发的类库。
2 设计过程
2.1设计方案的论证
2.1.1 设计方法
MIDlet的生命周期存在的三种状态,包括Paused、Active以及Destroyed,每一个MIDlet在任何时刻只可能处于其中的一个状态。这三种状态的转换关系如图所示:
keyPressed():获得按键值 ;paint():来画图 ;线程run():来实现刷屏幕等等;protected void keyPressed(int keyCode):按下某个键;
protected void keyReleased(int keyCode):释放某个键;
protected void keyRepeated(int keyCode) :一直按某个键; 消减状态
(Destroyed) 停止状态
(Paused)
运行状态
(Active) StartApp() DestroyApp() 呼叫MIDlet的构造函数
DestroyApp() PauseApp()
图1 MIDlet的流程
本科课程设计论文
2 键的代码由常量决定,特殊键被认为是游戏键,需要转为游戏键才能进行判断:getGameAction(int keyCode) ;getKeyCode(int gameAction) ,映射关系为:上下左右和手机上的上下左右键一致,GAME_A,B,C,D分别对应1,3,7,9键
Canvas和gameCanvas两个都是画布类,是可以在手机屏幕上显示东西,gameCanvas加入了双缓冲等一些特性便于程序员简化游戏的编程。Graphics是图像类,作用是让你绘制图像,但是绘制的图像是不能直接显示的。
2.1.2 设计背景
首先,一定要有个主应用程序类,相信大家都应改知道;其次,不可避免,一定要有画布,为了把程序的画面呈现出来;其中,我觉得还是把地图跟画布分开,这样对地图管理比较容易,而且增加或修改地图比较方便;然后一定要有主角对吧,总要找个推箱子的人;说到箱子,也许箱子也需要管理吧。
先抛开箱子(BoxSprite)和推箱子的人(PlayerSprite)两个类,把全部经历集中到绘制地图上(其实不过是第一幅地图)。
这其中需要先了解几个类,GameCanvas 、LayerManager和TiledLayer等几个类。我们这里主要用TiledLayer这种方法构造背景。
GameCanvas 类:GameCanvas实际上就是屏幕上一个可绘制区域。但每个GameCanvas类都有一个独立的buffer,从而不但减少了堆的使用率,也可以使用单独的堆控制程序。
LayerManager 类:这个类用来管理图像的各个层,它将按正确的位置和次序渲染所有在它控制下的土层。
TiledLayer 类:通过使用这个函数可以定义游戏背景的特定区域,并且可以重复利用它们生成一个完整的图像。
2.1.3 设计细节
我们要做的是让一个小人推箱子,操作方法就是通过四方向键对松鼠进行上,下,左,右的移动。操作很简单,就是四方向移动,小人移动,箱子也移动,所以对按键处理也比较简单些。当箱子到达某个位置时,就会产生游戏过关事件。需要一个逻辑判断。那么我们仔细想一下,这些所有的事件都发生在一张地图中。这张地图就包括了箱子的初始化位置,箱子最终放置的位置,和障碍等。每一关地图都要更换。这些位置也要变。所以我们发现每关的地图数据是最关键的。它