推箱子Java课程设计报告书Word格式.docx
- 文档编号:14369992
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:50
- 大小:484.53KB
推箱子Java课程设计报告书Word格式.docx
《推箱子Java课程设计报告书Word格式.docx》由会员分享,可在线阅读,更多相关《推箱子Java课程设计报告书Word格式.docx(50页珍藏版)》请在冰豆网上搜索。
1初始化游戏界面设计
2地图的绘制
3每一关都按照数组重新绘制地图
4小人与箱子的移动
5完成"
悔一步"
的操作。
三、原始资料
1.《面向对象程序设计课程设计》指导书
2.耿祥义.JAVA大学实用教程.北京:
清华大学,2009.
四、要求的设计(调查/论文)成果
1.课程设计报告
2.课程设计软件
五、进程安排
布置任务,查找资料、需求分析1天
总体设计1天
详细设计1.5天
编制源程序实现3.5天
测试与修改1天
撰写课设报告2天
六、主要参考资料
[1]广彬.Java课程设计案例精编(第二版).北京:
清华大学,2011.
[2]耿祥义.Java课程设计(第二版).北京:
清华大学,2008.
[3]耿祥义.JAVA大学实用教程.北京:
[4]邹林达.国君Java2程序设计基础.北京:
清华大学,2010.
[5]邹林达.Java2程序设计基础实验指导.北京:
指导教师(签名):
20年月日
1需求与总体设计……………………………………………………………………………1
1.1需求分析………………………………………………………………………1
1.2总体设计………………………………………………………………………2
2详细设计…………………………………………………………………………………4
2.1mainFrame类………………………………………………………………………4
2.2mainpanel类………………………………………………………………………5
2.3Sound类………………………………………………………………………7
2.4Readmap类………………………………………………………………………7
3编码实现……………………………………………………………………………9
3.1游戏源码………………………………………………………………………9
4系统测试…………………………………………………………………………………42
总结…………………………………………………………………………………45
1需求与总体设计
1.1需求分析
1.1.1功能结构图
推箱子游戏的功能结构图如图1.1所示。
在系统中,编写4个Java类:
mainFrame,mainpanel,Sound,Readmap;
分别对应初始化游戏界面,游戏操作,背景音乐,绘制地图。
图1.1
1.1.2UML类图
推箱子系统除了上述4个Java类外,还需要Java系统提供的一些重要的类。
这些类之间的UML图如图1.2所示。
图1.2
1.2总体设计
1.2.1mainFrame类
mainFrame类负责创建系统的主窗口。
mainFrame类有多种重要类型的对象,这些对象构成了游戏界面的简明与美观,并且通过监听实现方法赋予了这些组件的相应功能。
MainFrame类通过调用Readmap类来实现将地图绘制在游戏主界面,通过调用Sound类来实现对背景音乐的管理,实现音乐开关以及选择上一曲下一曲的操作。
设计中包括了所有你所能直观见到的图形界面,窗体的大小,下拉菜单中的功能菜单,使得玩家能够很直观的见到所有游戏中的功能.界面中有菜单,包括:
"
选项"
设置音乐"
帮助"
。
按钮包括:
重来"
第一关"
上一关"
下一关"
最终关"
选关"
音乐"
等。
1.2.2mainpanel类
Mainpanel类中集成了小人与箱子的移动规则,并且还包含了对键盘操作移动的响应方法。
在本游戏系统中,给人的视觉感受应该是能感受都动作的变化,逼真的人物动作会使系统更有效.通过控制人物,箱子,空地,障碍物在数组中的位置的改变来控制移动动作.
小人与箱子移动的算法移动中包括正移动,与"
的负移动.正移动:
小人上下左右的移动是由本组咸英智组员所做,归结起来上下左右是一个判断的算法,判断都是通过判断小人前面是否是空位箱子或者是墙,如果没有就移动;
有的话,据判断箱子是否可以移动,最后讨论箱子推过的,小人移动,以及被遮挡住点的图形变化,重新绘制地图,算法判断完毕.
1.2.3Sound类
Sound类主要功能是播放背景音乐,包含了一些对音乐的操作方法。
在玩游戏的同时听一听动听的音乐,有助于舒缓疲劳,放松心情。
1.2.4Readmap类
Readmap类是绘制地图的类,将已经制作好的地图绘制在游戏界面上。
其主要功能是给用户一个友好的游戏界面,游戏中包括50关的地图,推箱子这个游戏的50个地图是事先完成的,将所有地图上面的信息以数字的形式储存在一个20*20的二维数组当中;
然后,每一关都按照数组重新绘制地图,这样就拥有了50地图。
2详细设计
2.1mainFrame类
MainFrame类用于初始化屏幕。
该类首先用两个for循环初始化屏幕20*20围的状态,初始化为0,以后根据实际情况重新赋值;
然后设置屏幕输出状态,设置寄存器AX的高位为0,低位为3,表示以80*25的彩色方式显示;
最后移动光标到指定的位置输出。
设置界面的标题,窗口大小,添加按钮组件以及各种组件的布局
super("
推箱子咯"
);
//设置标题
setSize(720,720);
setVisible(true);
//设置窗口可见
setResizable(false);
//创建按钮
btnrenew=newJButton("
btnback=newJButton("
btnlast=newJButton("
btnnext=newJButton("
btnchoose=newJButton("
btnfirst=newJButton("
第1关"
btnover=newJButton("
btnmuc=newJButton("
音乐关"
actionPerformed(ActionEvent)
itemStateChanged(ItemEvent)
2.2mainpanel类
该类用于移动箱子,包括目的地之间、空地之间和目的地与空地之间的箱子移动。
有的话,据判断箱子是否可以移动,最后讨论箱子推过的,小人移动,以及被遮挡住点的图形变化,重新绘制地图,算法判断完毕.传出数据记录在,一个栈当中,以备"
使用.负移动:
通过记录在栈中的数据判断,前一步是的移动方向以及移动使用过的算法,逆向将代码重新运行,同时绘制地图以达到前一步的状态.
Mainpanel类中包含了
(1)重来:
重新开始当前关;
(2)悔一步:
返回上一移动状态(可以连续返回多步)
(3)第一关:
游戏系统默认开始关为第一关,此按钮可以将关从其它关跳跃到第一关.
(4)上一关:
返回到当前关的上一关;
(5)下一关:
返回到当前关的下一关;
(6)最终关:
跳跃到最后一关,即第五十关;
(7)选关:
选择想要玩的关;
(8)音乐关(开):
默认为开,点击自动关闭音乐和开启音乐.
(9)更换音乐:
从不同的音乐中选取适合玩家的音乐.
键盘操作的方法
iswin()//判断是否获胜
isMystackEmpty()
paint(Graphics)
箱子移动与人物移动的方法。
该方法是实现箱子的移动。
根据游戏规则,箱子可以在空地之间、目的地之间、空地和目的地之间来回移动。
backright(int)//返回右移
moveright()//右移操作
backleft(int)//返回左移
moveleft()//左移操作
backdown(int)//返回下移
movedown()//下移操作
backup(int)//返回上移
moveup()//上移操作
remove()//移除
返回back()//
键盘监听
keyReleased(KeyEvent)//释放键盘
keyTyped(KeyEvent)//判断键盘操作是否有效
keyPressed(KeyEvent)//按下键盘
2.3Sound类
(1)将本地音乐读取进程序
loadSound()
(2)音乐关(开):
mystop()
isplay()
(3)更换音乐:
setMusic(String)
2.4Readmap类
该模块主要是被其它模块调用,用于画墙、在空地画箱子、在目的地画箱子、画小人和画目的地。
形成地图以二维数组的形式进行存储的,不同的数字有着不同的含义.在地图当中不同的数字代表不同的含义我当时是将0~9解读成为不同的图形与图像.①"
0"
代表"
地图以的空位"
;
②"
1"
地图中的边缘"
③"
2"
地图以的空位非点位;
④"
3"
地图中的箱子"
⑤"
4"
点位"
⑥"
5"
小人面部朝下"
⑦"
6"
小人面部朝左"
课程设计说明书⑧"
7"
小人面部朝右"
⑨"
8"
小人面部朝上"
⑩"
9"
箱子已经到达点位。
Readmap(int)//读取地图文件
getmap()//获取地图用于在目的地画箱子,传入参数x、y指明位置。
该类调用getmap()进行输出,
3编码实现
3.1推箱子游戏设计源码
importjavax.swing.*;
importjava.awt.event.*;
importjava.awt.*;
importjava.io.*;
importjavax.sound.midi.*;
importjava.util.Stack;
publicclasshh
{
//程序主方法,游戏由此开始
publicstaticvoidmain(String[]args)
{
//创建游戏界面
newmainFrame();
}
}
//显示游戏的主界面,一些常用组件的布局及其相应功能的监听与实现
classmainFrameextendsJFrameimplementsActionListener,ItemListener
JLabellb;
JLabellb2;
JButtonbtnrenew,
btnlast,
btnnext,
btnchoose,
btnfirst,
bt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 箱子 Java 课程设计 报告书