游戏开发设计文档

《收获的季节》是一款2.5D益智游戏,支持单机和蓝牙联机。游戏包含关卡设计,玩家需操控主角避开怪物,收集物品,通过策略将萝卜送回家。游戏涉及蓝牙通信,服务器端和客户端通过蓝牙交换数据,实现游戏同步。设计思路包括主人公死亡动画、障碍检测、怪的智能行为。游戏界面包括开机画面、地图、蓝牙联机和积分榜。开发过程中使用了多种类和方法,确保游戏逻辑和界面流畅。
摘要由CSDN通过智能技术生成

 

 

 

  

 

第四届齐鲁大学生软件及外语大赛

 

 

 

 

 

 

 

 

 

 

山东建筑大学HelloWorld游戏开发小组

 

 

目录

1、游戏... 3

2、概要设计... 3

2.1、游戏主要功能模块介绍... 3

2.1.2、游戏... 3

2.1.2、蓝牙模块... 5

2.2、流程图介绍(按每个主要功能分类介绍)... 7

2.2.1、游戏的主流程图:... 7

2.2.2BattleCanvas类的流程图:... 7

2.2.3UserSprite类流程图:... 9

2.2.4EnemySprite类:... 10

2.2.5Block类:... 11

2.2.6、蓝牙流程图:... 13

2.3 UML类图... 14

2.3.1、服务器端支持类:... 14

2.3.2、客户端支持类:... 15

3、详细设计... 15

3.1、介绍每个类的实现... 16

3.1.1、游戏模块... 16

3.2.1、蓝牙模块... 34

3.2、设计思路及采用的先进思想... 45

3.2.1、主人公死亡后闪动动画的实现:... 45

3.2.2、检测前方能否通过的方法:... 45

3.2.3、爆炸检测方法:... 45

3.2.4、怪的智能化:... 45

3.2.5、服务器和客户端对等思想:... 46

4、界面设计... 47

4.1、界面设计... 47

4.1.1、游戏开机画面:... 47

4.1.2、地图一、地图二:... 47

4.1.3、蓝牙联机:... 48

4.1.4、积分榜:... 48

4.2、运行平台及测试平台... 49

5、参考资料... 49

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1、游戏介绍

《收获的季节》是一款基于j2me技术自主创意开发的2.5D益智类手机游戏。这款游戏是我们helloworld团队集体智慧的结晶,它不仅可以单机进行游戏,还可以借助于蓝牙技术建立一个微微网,进行手机联机游戏。

游戏暂时共设计十关,每关以主人公乖乖兔将萝卜运回家为过关。虽然这个季节萝卜喜获丰收,但是搬运却并不是那么的简单。主人公运萝卜的过程中,会受到怪物阿呆的追杀,这时可以利用砖块将怪击死,也可以用炸弹(西瓜)将怪炸死。当然除了排除怪物追杀之外,对于玩家来说最终目标是想办法将收获的萝卜运回家,这就给游戏带来了趣味性和策略性。

2、概要设计

概要设计的主要目的是,将游戏的需求转化为游戏的数据结构和系统结构。通过制定相应文档和规范,以求在开发过程中指导开发人员的进行开发。并且规定好每个模块的功能和作用。下面对每个类进行详尽的介绍。

2.1、游戏主要功能模块介绍

2.1.2 、游戏模块

1BattleCanvas游戏主类

该类继承GameCanvas类,主要实现整个游戏的主循环和场景的绘制。

BattleCanvas主管着所有类之间的协调,决定何时死亡,何时分配新的敌人,及控制敌人出现处的图标、游戏结束后的动态Gameover字样。它运行在独立的线程中,以恒定的频率刷新画面。刷新速度需大于30毫秒才能使画面显示因人眼的暂时停留效应流畅运行。本程序设置为20毫秒。其主逻辑如图所示。

初始化:

初始化顺序为:关卡数,循环控制变量,Graphics对象,主人公对象,敌人对象数组,根据地图数组创建整个游戏场景,开启线程Sprite对象所处在LayerManager的层次:

对象

层索引值

简述

UserSprite

0

主人公

EnemySprite

1

敌人

水果

2

 

home[]

3

任务地点

Blocks[]

大于等于4

well[]

blocks[]之后

标志敌人出生地点的井盖

背景图

最后

 

 

 

 

2UserSprite

本类的功能是判断游戏主人公是否与怪(即敌人)相撞并向类BattleCanvas传送参数(若遇怪相撞,返回true,并保存怪的索引,供BattleCanvas类中实现怪刚出来可以被主人公踩住功能所用;若没有撞到怪,则返回false)。并且能将主人公的坐标定位于地图中指定的位置。主人公推砖块、水果、蔬菜以及运动控制等操作有这个类完成。

3EnemySprite

该类主要功能是控制每个怪的移动,并且能够根据主人公的位置和运动方向来对主人公进行追杀,体现了一定的人工智能的思想。并且适当的加大了玩游戏的难度,具有一定的挑战性。

4Block

本类中定义了砖块的一些属性及其方法,属性主要包括:砖块的类型、砖块的运动方向、砖块的行列及其坐标值、是否第一次碰某个砖块、是否运动等; 方法主要包括:开启砖块的线程、砖块破碎的动画、砖块运动、砖块出水果、重画状态改变的砖块、砖块挤怪、结束怪的线程。

5PlaySound类:

该类利用了两个接口,PlayerVolumeControl来创建音乐播放器和音乐播放器的音量管理控件。通过输入流得到外部音乐文件。根据不同的事件传值得到播放相应的音乐文件。根据音量的设置值来改变音量大小。

6RabbitMain类: 

该类必须继承自MIDlet,它控制着整个程序的运行,并且可以通过相应函数从程序描述文件中获取相关的信息。该类中拥有可以管理程序的创建、开始、暂停(手机中很可能有正在运行程序却突然来电的情况,这时应进入暂停状态。)、结束的函数。

7StartChoice类: 

该类是本游戏的菜单类,它的作用是提供菜单让玩家选择,玩家可以直接开始游戏,可以在进入游戏前进行相关的游戏参数的设置,可以查看英雄榜,里面有不同玩家的前10名的记录,可以看相关的帮助文档,也可以看看关于作者的信息,也可以退出游戏。

用一个变量currentSelect来记录玩家选择的菜单,菜单选项在背景图片里,玩家可以通过然后再用一个Sprite通过SpriteSetRefPosition(x,y)方法定位到当前选择的菜单,以示用户选择的是当前菜单。当玩家选择Select键时根据currentSelect的值跳转到相应的界面。

8HelpScreen类:

该类是本游戏的辅助说明类,它对本游戏进行简要的关于操作,得分等相关帮助。

9AboutScreen类:

该类用于向玩家显示一些关于我们团队的信息。

10SetScreen类:

该类中已经保留有游戏的相关的默认设置,如玩家的名字是helloworld,游戏默认从第一关开始,场景默认是雪地,音量的大小默认是50等等,玩家可以根据自己的需要和喜好在此界面进行名字的设置(高分可以在英雄榜上显示),游戏关数的选择,场景的选择,玩家还可以设置游戏音量的大小。

11ScoreScreen类:

该类是本游戏的具有计分系统的类。它采用的是手机专用的一种简化的数据库RMS此类的作用是游戏结束后用于向玩家显示游戏的积分榜或者在开始菜单玩家可以查看积分榜。

 

2.1.2 、蓝牙模块

1BTServer类:

该类的功能是实现服务器端蓝牙设备的初始化,建立服务连接,向客户端传输数据以及接收客户端的数据。本类主要包括一个run()函数和一个读进程和一个写进程,在run()函数中,打开读写进程,让读进程时刻在读客户端传来的信息。而写进程是由服务器端写过程唤醒而进行的。

BTServer类中,需要传输的数据有,服务器端主人公的信息,包括当前坐标、当前图片帧数。服务器端的砖块、水果和蔬菜的索引值。服务器端的小怪的运动信息即怪的当前坐标和帧数。服务器端主人公的生命值。

BTServer类中,接收的数据有,客户端主人公的信息,包括当前坐标、当前图片帧数。客户端的砖块、水果和蔬菜的索引值。客户端主人公的生命值。

2BTClient类:

该类的功能是实现客户端蓝牙设备的初始化,申请服务连接,向服务器端传输数据以及接收服务器端的数据。本类主要包括一个run()函数和一个读进程和一个写进程,在run()函数中,打开读写进程,让读进程时刻在读服务器端传来的信息。而写进程是由客户端写过程唤醒而进行的。

BTClient类中,需要传输的数据有,客户端主人公的信息,包括当前坐标、当前图片帧数。客户端的砖块、水果和蔬菜的索引值。客户端主人公的生命值。

BTClient类中,接收的数据有服务器端主人公的信息,包括当前坐标、当前图片帧数。服务器端的砖块、水果和蔬菜的索引值。服务器端小怪的信息,包括小怪的当前坐标值和小怪的帧数。服务器端主人公的生命值。

3BTServerUI类:

该类是一个服务器端游戏开始时和用户的一个接口。主要实现的功能是,通过接收客户端的同意开始游戏信息,由服务器端进行控制游戏的统一开始。

4BTClientUI类:

该类是一个客户端游戏开始时和用户的一个接口。主要实现的功能是,通过发送同意开始游戏信息,等待服务器端开始游戏。

5OrServer类:

该类定义了判定游戏玩家双方哪一方为服务器端,哪一方为客户端的方法和属性,还定义了是否为单机还是蓝牙联机的方法。

2.2、流程图介绍(按每个主要功能分类介绍)

2.2.1 、游戏的主流程图:

Logo 画面

游戏主菜单

主程序

屏幕绘图

本关记分统计

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值