基于java的推箱子游戏(3)

2019-06-05 13:46

四川师范大学成都学院专科毕业设计

3.概要设计

3.1游戏设计分析

从面向对象的观念出发,本程序可分为以下几个对象:

? 地图文件的引用 ? 小人与箱子的移动 ? 程序运算逻辑 ? 绘图

? 显示平台

分析对象的技巧在于它的重复利用及维护效率。如果要把设计出来的程序在不同的显示平台上执行,就要作大幅度的更动甚至重写,这样就失去了面向对象属性,所以在本程序分析时将不变与易变的因素分别做成对象,如地图文件、小人与箱子的移动以及程序的运算逻辑就是不变的项目,而绘图及显示平台会因为环境而有所不同属于易变的项目。

3.3.1.地图文件的引用

在设计游戏程序时,通常都是把游戏的画面布局数据存放在一个地图文件中。程序通过读取地图文件中的数据来获取画面的布局安排。

地图文件是20*20的变量数组文件,在地图不同的数字代表不同的意义。把这组数据保存到一个文件中,这个文件就是地图文件了。

3.3.2.程序运逻辑

程序中逻辑运算包含小人与箱子的移动、键盘事件的响应、保存数据以实现悔步以及重新开始的操作等等。

3.3.3.绘图

绘图主要是用于在小人与箱子的移动后,原位置由草地填补,以此来表示小人与箱子的移动以及其画面的连贯性。

3.3.4.显示平台

“可移植性高”是Java的属性之一,Java的应用涉及许多领域,如手机、单机程序及浏览器等,不同的平台对于它的设定不尽相同,若将显示平台独立为一个类,将有助于主程序的完整性及移植程序的快速性。

7

四川师范大学成都学院专科毕业设计

3.2 注意事项

小游戏在设计时要注意绘图部分的设计代码,还要注意通过输入流读取地图文件与图像文件部分的设计代码等等。 3.3 游戏流程图

系统功能模块 初始化模块绘图模块移动小人模块移动箱子模块功能控制模块 8

图1 系统功能模块

四川师范大学成都学院专科毕业设计

4.详细设计

4.1游戏总体结构与代码 推箱子的小游戏界面如图4.1所示:

图4.1 小游戏界面

由图4.1可以看出,本小游戏的界面简洁、直观,从界面中可以直接得到本小游戏的相关功能操作信息。

(1)界面框架与按钮设计

界面设计中包括了所有玩家可以直观见到的图形界面,窗体的大小,界面中的功能按钮,让玩家可以方便使用操作。界面中的按钮包括:“悔一步”,“重来”,“上一关”,“下一关”,“第1关”,“最终关”,“选关”。并且各个按钮的名称与相关功能为:

“悔一步”:返回上一移动状态(可以连续返回多步);

9

四川师范大学成都学院专科毕业设计

“重来”:重新开始当前关;

“上一关”:返回到当前关的上一关; “下一关”:跳转到当前关的下一关;

“第1关”:游戏系统默认开始关为第一关,此按钮让玩家可以方便从其它关卡直接跳转到第一关;

“最终关”:可以跳转到最后一关,即游戏系统默认的最后一个关。 “选关”:选择想要挑战的关卡。 其中,这个部分的部分代码为:

public class GameTxz {

public static void main(String[] args) {

new mainFrame(); } }

class mainFrame extends JFrame implements ActionListener {

JButton btnrenew,btnlast,btnnext,btnchoose,btnfirst,btnover,btnback; mainpanel panel; mainFrame() {

super(\推箱子小游戏\

setBounds(150,20,700,690); setVisible(true); setResizable(false);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container cont=getContentPane(); cont.setLayout(null);

cont.setBackground(Color.black); btnback=new JButton(\悔一步\btnrenew=new JButton(\重来\btnlast=new JButton(\上一关\btnnext=new JButton(\下一关\

10

四川师范大学成都学院专科毕业设计

btnfirst=new JButton(\第1关\btnover=new JButton(\最终关\ btnchoose=new JButton(\选关\add(btnrenew); add(btnlast); add(btnnext) ; add(btnchoose); add(btnfirst); add(btnover); add(btnback);

btnback.setBounds(20,15,80,30); btnrenew.addActionListener(this); btnrenew.setBounds(120,15,80,30); btnback.addActionListener(this); btnlast.setBounds(220,15,80,30); btnfirst.addActionListener(this); btnnext.setBounds(320,15,80,30); btnlast.addActionListener(this); btnfirst.setBounds(420,15,75,30); btnnext.addActionListener(this); btnover.setBounds(510,15,75,30); btnover.addActionListener(this); btnchoose.setBounds(600,15,75,30); btnchoose.addActionListener(this); panel=new mainpanel(); add(panel);

panel.GameTxz(panel.level); panel.requestFocus(); validate();

}

}

(2)地图的绘制形成

地图以二维数组的形式进行存储,不同的数家代表了不同的含义。在本小游戏的地图文件中,0~9这十个数字的定义如下所示:

编号0:代表未定义的区域;

11


基于java的推箱子游戏(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2011公考常识判断精题练习

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: