现在的位置: 首页 > 综合 > 正文

Flex 开发地下城与勇士 设想

2013年04月29日 ⁄ 综合 ⁄ 共 2852字 ⁄ 字号 评论关闭

 虽然没有什么项目的经验,但有时候很想和别人一起完成一个项目。尽管自己的水平很低,但喜欢把一些以前想过的东西都记下来吧,作为日后的灵感想法,这个是以前构想

Flash游戏项目

 

------------------------XXXXXXXXX

 

下载: http://files.cnblogs.com/hero82748274/Flash项目架构书.pdf

 

 

 

 

 

 

             

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

故事背景:

 

   500年前,一个村庄里面住了一个很平凡的人,这个人叫平凡。 有一次,平凡在外旅途的时候见到一个村民被欺负,平凡出收相助了这个村民,但是恶龙不服气,心里面要挟村庄里面的村民。这时候,平凡为了拯救这村庄跟恶龙进行激烈的打斗。但是在打斗的时候,被一个村民人暗算了。这个村民叫背叛,平凡和恶龙进行了500回合的打斗,最后牺牲了。恶龙消失了,人们为了感谢纪念这个人,作了一个纪念碑叫勇士,勇士一直收获村庄。

但是恶龙从黑暗中醒来了,村庄也遭受到恶龙的继续破坏,这时候有一群自发组织的人,叫勇者,他们无谓恶龙的邪恶,和这恶龙进行一场激烈的打斗。

 

 

 

主角群:

 

 

主角

 

属性

 

勇士:

技能:左踢

 

勇士:

技能:右踢

 

勇士:

技能:一起踢

 

 

 

 

 

 

 

 

 

 

 

怪物群:

 

怪物

 

 

黑心的邪恶老板,特点黑色的心,黑色的容貌,黑色的脸,

武器:黑心刀

技能:杀无赦

 

 

开发项目类型:一款基于多人同时玩的在线大型Flash游戏

 

 

开发平台:

 

Flex builder 3

 

基本系统:

 

消息处理系统、场景显示及行走系统、打斗系统三大主要部分。其中又以消息处理系统为核心模块,其余部分紧紧围绕它运行。

 

消息系统:处理游戏中不同的状态,游戏根据不同的状态作出不同判断。

场景显示:

行走系统:

打斗系统:打怪物的系统

 

其他系统:

职业系统,操作系统,世界系统, 角色系统,Ai系统;

职业系统:游戏中有不同的职业选择,会分派不同的技能。这些时候需要我们去考虑到职业系统。

操作系统: 游戏中玩家的操作流程。是玩家与用户交互的一种手段

世界系统:讲述游戏文化内涵

角色系统:玩家操作游戏人物进行游戏的人物;

Ai系统:游戏中的大脑中心;是宏观控制每一个角色进行活动的上帝;

 

 

游戏主类(GameMain类):

GameMain是游戏主入口:

 

1.初始化窗口:设置窗口风格

2.进入系统消息循环

WndProgressmessageint

{

Switchmessgae

 {

  case WM_Init:

       //初始化窗口 

break

  case WM_Paint:

         //渲染窗口

break;

  case WM_Close:

     //退出系统

break;

 

case WM_KEY_DOWN:

 //键盘事件

break;

}

 

 Return 0

 

}

 

项目开发主要类和类库包:

游戏主类(GameMain类):是游戏主程序入口

 

地图管理(MapManager):用于加载和卸载地图等

 

物品管理(ItemManager包):用于管理道具物品,武器,套装等

 

声音管理(SoundManager包): 用于管理声音,包括加载音乐,设置音乐特效等

 

角色管理(CharacterManager): 包括常见用于创建主角和配角

 

事件管理(EventManager包):每一个情节作为一个类进行管理

 

对白管理(WordManager包):用于管理语言,读取一些基本通知信息,npc说话

 

场景管理(SenceManager包):用于场景切换,更新场景,加载场景,卸载场景

 

通信管理(communionManager )socket通信,连接服务器的

 

操作管理(ControlManager):用于设定游戏的操作键盘,和鼠标

 

游戏管理(GameManager): 包括游戏设定,音乐,背景默认设定。

 

游戏Ai管理(AiManager包):设定怪物一些AiNPC一些行为

 

游戏效果管理(EffectManager包):管理一些招式效果类以及动画

 

游戏错误管理(ErrorManager包) 管理一些错误的情况

 

地图管理:(MapManager包)

 这个包下有很多的类用于地图上的管理。包括基础类Map,功能加载地图,

Map类下有以下的方法:

 

实现方案:

方案1.元素构成的地图

将一些地图区分不同图片元件,将它绘制在场景里面。图片切割的大小按实际需要而定。

例如:主窗口是640x480 分辨率,切割每一块单元图片32x32 大小。那么图片单元数目为

20x15=300块。

如下面:

myMap = [ [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],
        [1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]];
 
那么在这个数组里面其中 “1”代表图片1. 0”代表图片0
同样的话,为了使某一些障碍物和主角进行碰撞,在数组里面myMap 可以进行改变某一项的数值,这样可以用图片单元的隐含的信息进行判断。省去使用hittstobject 带来的计算量。

 

带来的影响:

优点:

可以重用很多的图片单元模块,减轻内存的占有率。

由于地图上的许多区块是共用的,因此需要另外建立一组资料来些元素的排列顺序,这个排列顺序的资料列,我们通常都将之称为地图资料。重复使用元件,减轻内存占有。

 

缺点:

切割的图片单元如果过多会对游戏产生一些效率性的问题?至于这些效率性的问题在切割图片的时候需要注意考虑。

 

 

 

 

基类:

Class Map

{

抱歉!评论已关闭.