英速剑笑江湖游戏软件设计说明书资料.pdf

上传人:白大夫 文档编号:5422450 上传时间:2020-05-05 格式:PDF 页数:22 大小:2.61MB
返回 下载 相关 举报
英速剑笑江湖游戏软件设计说明书资料.pdf_第1页
第1页 / 共22页
英速剑笑江湖游戏软件设计说明书资料.pdf_第2页
第2页 / 共22页
英速剑笑江湖游戏软件设计说明书资料.pdf_第3页
第3页 / 共22页
英速剑笑江湖游戏软件设计说明书资料.pdf_第4页
第4页 / 共22页
英速剑笑江湖游戏软件设计说明书资料.pdf_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《英速剑笑江湖游戏软件设计说明书资料.pdf》由会员分享,可在线阅读,更多相关《英速剑笑江湖游戏软件设计说明书资料.pdf(22页珍藏版)》请在三一文库上搜索。

1、英速剑笑江湖游戏软件V1.0 设计说明书 1 第一章相关简介 1.1 剑笑江湖概念和发展历史 网游 OL一般都有时间限制,特定关卡等。 1.2 基本要求 1.2.1开发软件及硬件要求 Intel Pentium 4 2.0GHZ,512内存, 80G硬盘。 Microsoft Windows 2000 Professional。 Microsoft Visual C+ 2008。 1.2.2运行环境 Intel Pentium 2及以上处理器, 32M以上内存, 20M以上硬盘空间。 Microsoft Windows 2000或 XP以上操作系统。 800600或以上的屏幕分辨率。 1.2.

2、3测试环境操作系统与硬件配置 Microsoft Windows 2000 Professional。 Microsoft Windows XP Professional。 Microsoft Windows 7。 有 MFC 环境的动态库文件,如MFC42.dll 等。 Intel Pentium 4 2.0GHZ,512内存, 100G硬盘剩余空间。 1.3 横版过关游戏具有的基本功能 a) 能够显示主菜单和界面 游戏需要提供主菜单让玩家进行游戏设置,同时能够把地图文件中的信息转 换成为图像显示到主游戏界面上。 b) 能够实现键盘操作功能 英速剑笑江湖游戏软件V1.0 设计说明书 2 能够

3、接收到键盘输入的方向键信息,并根据不同的方向键让人物行走移动。 例如,当玩家单击方向键“上”时,如果向上的位置是可移动的,那么游戏人物 就向上移动 c) 能够实现道具功能 捡到道具的时候,道具可以有相应功能。 d) 游戏胜负判断功能 在游戏中,当玩家把所有的敌人都消灭掉时(或者直接杀死BOSS 时) ,玩家 胜利通过,进行下一关口的游戏。 如果玩家无法在限定时间将所有敌人杀死或者 血量为 0 时,玩家失败。玩家可以选择重新开始游戏,或者是退出游戏。 e) 支持人物选择功能 玩家在游戏中可自行选择挑战人物。当玩家点击菜单中“游戏开始”时候, 会弹出选择框供玩家选择,选择完毕后就直接开始游戏。 f

4、) 游戏支持背景音乐功能 通过主菜单,在游戏开始前,可以选择播放背景音乐的音量的大小。默认音 量为中。玩家也可以通过修改背景音乐的音量来调整游戏的音量,充分满足玩家 的个性化需求。 g) 游戏提供帮助说明 在游戏菜单中,提供一个使用说明项,以方便对本游戏不了解的玩家对游戏 进行操作和使用。鉴于本游戏家喻户晓,故在此处只是提供比较简单的说明。 1.3.1功能和技术特点 功能特点: 1,精美画面:创新双核引擎打造精美的3D游戏画面,完美世界数年磨一剑的 心血之作。 2,真实天气:淡烟疏雨,电闪雷鸣,真实还原原著中夜雨激斗、黄 昏落日等经典场面。 3,硬派动作:动作手游的革新,拳拳到肉的畅爽打击,来

5、 自于真正武林高手的招式动作捕捉, 4:趣味战斗:全新物理引擎打造实时酣畅淋漓的战斗体验,含有浮空、腾空、 击飞、击退等主机游戏格斗动作元素, 技术特点: 1. 全面并同等的支持 OpenGL 和 Direct3D 2. 全面支持 Windows ,Linux 以及 Mac OS X平台 3. 简单并可扩展的对象框架,能方便的插入到已存在的应用程序框架中 1.4 横版过关游戏相关的技术要点 1.4.1数组 a) 数组的定义 数组 3 是 n(n1)个相同类型数据元素a1,a2,a3, an 构成的有限序列, 且该有限序列存储在一块地址连续的内存单元中。数组的定义类似于采用顺序存 英速剑笑江湖游

6、戏软件V1.0 设计说明书 3 储结构的线性表。 由于数组是存储在连续内存单元中的线性表,所以线性表的顺 序存储结构理所当然地采用一维数组来描述。 b) 数组的性质 (1)数组中的数据元素数目固定。一旦定义了一个数组,其数据元素数目不再 有增减的变化。 (2)数组中的数据元素具有相同的数据类型。 (3)数组中的每个数据元素都和一组唯一的下标值对应。 (4)数组是一种随机存储结构,可随机存取数组中的任意数据元素。 c) 对 于 一 个m 行n列 的 二 维 数 组 在 项 目 中 的 表 示 , 如 下 : mnmm n n nm aaa aaa aaa A 21 22221 11211 公式

7、1-1 数组的表示 也可以将 Amxn简计为 A,那么 A 是这样的一个一维数组 A=(a1,a2, ,a iam) 其中,ai=(a i,1,ai,2, ,ai,n)(1 preyX) predatorX -; else if (predatorX preyY) predatorY -; else if (predatorY CollideWith( tmp)来代表英雄是否触碰到了敌人。 然后在判断 是敌人攻击英雄,还是英雄攻击敌人。 如 RECTtmp = *(pEnemy i - GetSpriteRect (); 然后, if ( pMan -CollideWith(tmp) if (

8、 敌人攻击英雄 ) if ( 英雄血量还没为 0) 英雄受伤 ; if ( 英雄攻击敌人 ) if ( 敌人血量还没为 0) 敌人受伤 ; b) 英雄与道具的碰撞 先用一个变量 ItemType代表道具种类, ITEM_HP 代表回血道具, ITEM_SCORE 代 表 分 数 道 具 , ITEM_KNIEF代 表 小 刀 。 然 后 用 函 数 ItemType =pItem j - GetItemType() 得到道具类型,和上述得到敌人精灵高宽一样的方 法,同样有 pMan -CollideWith(* pItem j ) 代表英雄是否碰到了道具。然后 if ( pMan -Colli

9、deWith(* pItem j ) if ( ItemType = SpriteItem: ITEM_HP ) 增加血量 ; 英速剑笑江湖游戏软件V1.0 设计说明书 19 elseif ( ItemType = SpriteItem: ITEM_SCORE) 增加分数 ; elseif ( ItemType = SpriteItem: ITEM_KNIEF ) 获得一把飞刀 ; c) 道具与敌人的碰撞 飞刀在没有被英雄捡到的时候,与敌人不能碰撞, 当英雄获得一把飞刀后 (记录 捡到飞刀的数量,用完则不能用) ,可以按键使用飞刀,飞刀会跟敌人碰撞,造 成敌人受到伤害。用 kniefCount

10、 代表飞刀的数量, pEnemy k 代表敌人,代码实 现如下 if ( ItemType = SpriteItem : ITEM_KNIEF ) for ( intk=0;k CollideWith(* pItem j ) if ( 道具是射出去的而不是在地上的飞刀) 敌人受到伤害 ; 3.2.3有限状态机( FSM )在项目中的实现 状态机有很多种模式,在程序员编程的情况下,如果分支语句非常多,可以 State 模式,目的就是目的可以消除庞大的条件分支语句,大的分支判断使得程 序员们难以修改和扩展, 但是由于作者的项目分支语句不是很多,加上作者人物 和敌人状态不是很多, 所以作者运用了函数

11、来实现状态变化,目的是为了更好调 理开发者的思路, 能够在修改代码的情况下, 迅速找到代码做出修改。 运用项目 中下面一个例子来体现。 作者创建函数enemyRun () 代表敌人逃跑,enemyFind () 代表敌人追踪, enemyWalk () 代表巡逻, enemyAttack() 代表敌人攻击 ; 那么 if ( 敌人种类是小兵 ) 英速剑笑江湖游戏软件V1.0 设计说明书 20 if ( 血量小于最大血量的四分之一并且距离英雄小于200像素) enemyRun (); elseif ( 英雄不在敌人的攻击范围内) if ( 血量大于最大血量的二分之一并且距离英雄小于200像素)

12、enemyFind(); else enemyWalk (); else enemyAttack(); 图3-2 小兵状态图 如果敌人不是小兵,是弓箭手那么,在以上的功能上,除了普通攻击之外, 会多出一个射箭攻击状态,这次,作者不创建函数,而是int 了一个变量 英速剑笑江湖游戏软件V1.0 设计说明书 21 curAttack ,当 if ( curAttack = 0) 近身攻击 ; else 射箭攻击 ; 那我就在小兵攻击的那个判断上,加上 elseif ( 敌人种类是弓箭手 ) if ( 弓箭手和英雄在同一直线上) curAttack = 1; else curAttack = 0 ;

13、 以上代码巧妙利用不同的方法(变量,函数等)实现了状态变换,从而实现敌人 不同状态的变换,状态机是横版过关的必要选择。 3.2.4模式移动和追踪算法在项目中的实现 在 项 目 中 , 作 者运 用了 敌人 在 特 定 矩形 内随 机模 式来 巡逻 ,在 函数 enemyWalk () 实现,作者用代码判断了在敌人巡逻状态下,在一定的矩形区域内, 敌人根据一 个方向的随机变量的改变,变量x,y 的变换而改变坐标,从而实现敌人的模式 移动。 而跟踪算法则是在函数 enemyFind() 里实现,原理则是运用了基本追踪算法, 用 face=0 来代表英雄面向左,face = 1代表英雄面向右,PlayerPos . x , PlayerPos . y分别代表英雄的 x,y 坐标, x,y 分别代表敌人的 x,y坐标,实现追踪 代码如下, if ( PlayerPos . x SetPos( D3DXVECTOR3(x, y,0) 把敌 人的动态坐标给设置出来,就可以实现敌人的基本追踪了。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1