Flash游戏(Tank 1990)开发日志

来源:互联网 发布:node cpu 100 编辑:程序博客网 时间:2024/06/05 18:27
我的坦克1990Flash网络小游戏
 
    [JACK LIN] QQ:9151021

  键盘控制,先将鼠标左键点一下游戏界面任意位置即可控制。
  W:向上 S:向下 A:向左 D:向右 (方向键也可) J:子弹

当前为基本版的地图编辑器,可生成XML配置文件。
再过些日子,如果有时间准备将地图编辑器所生成的地图加入到全局tank1990游戏当中,且地图名称可自由命名,这样,各位兄弟姐妹们,就可以发挥自己的想象力创建有趣的地图,让大家玩一玩。

============================= 2007.05.29 晚 更新 =========================

1、基于加载XML配置文件自动生成游戏地图;后期在准备创造游戏内容(可能有很多关卡),可通过XML配置文件来描述地图中每一个坐标的东西--土围墙、铁围墙、水路、草地,敌方不同坦克的数量,坦克具体的攻击力,行走速度,完全可配置,因而无需改动程序本身;且玩家可以自己在线创建游戏地图,系统会将创建好的地图信息转换成XML文件,存入到用户数据库中。

2、坦克在行走过程当中,有的格子是不可以越过,有的则不行,比如土围墙、铁围墙为不可行走的,在地图中,坦克为一个矩形,它在行走过程当中,将自己移动到新的坐标时,做一个限制校对:假设在新x、y坐标的情况下,坦克的四个角(左上、右上、左下、右下)分别位于哪几个格子,其中任何一个格子如果是不可行走的,则新的x、y坐标操作取消,这样便可限制坦克乖乖的在路上行使。

3、代码全部采用OOP(面向对象)开发,大部分都是MVC设计模式来实现的,比如坦克对象,controller 修改 Module的值从而促使view的重新绘制,其中控制器是可装卸的,可以是键盘控制,也可以是网络控制,这为我今后网络版留好接口。

4、关于多人在线时网络数据、画面同步的问题,控制器延迟的问题,关于这方面的研究还在继续。

当前仅完成了个地图引擎的雏形,花了2天的时间,所以非常粗糙,界面、声音,当然,如果游戏引擎、框架搭好了,那么到时候界面调整、修饰方面就很容易了。

我当前的设想是开发一个多人同时在线的tank1990的网络游戏,最终并非原版这样,可能有4个碉堡,自由攻击、组队攻击、与电脑的对抗都可以,且游戏地图模式也改变,征战大地图、临时对决是会进入小地图,加入角色扮演的概念,也许到时候可以组织军队,我比较侧重游戏的实际内容,画面我不会太讲究,当然也得注意一下,且此款游戏认为操作要简单,容易上手,最主要是3G手机、传统智能手机通过网络也可以玩。

离目标好像很远,但是我会坚持的,不是为了赚,我为了爽,为了实现我的诺言。
游戏进行到不同的阶段,根据实际空闲时间开发,我会跟进,有什么进展和大家分享分享。

============================= 2007.05.30 晚 更新 =========================
昨天晚上没事又开发了一会儿游戏....
1、BUG:因为tank的比格子大,造成了坦克越过单一格子的情况,因此将多增加4个判断分别是上中,下中,左中,右中,那么今后坦克在行走的时候,最多可能得判断8个条件,有点担心消耗资源的问题,但其实觉得问题也不大,仅仅只是一些数学运算而已,没有使用FLASH自带的碰撞检测,性能已经提升不少了。

2、增加了子弹功能,子弹类也采用MVC设计模式,每个坦克发射子弹的时候为同步操作,也就是说,每当发射出去时,得等子弹爆炸以后才能发射第二颗,之前在网上看别人开发的文章,子弹都是一直复制mc、删除mc,我认为这样会产生很多短命对象,浪费CPU,所以我暂时认为坦克只拥有一颗子弹,那么采用单例设计模式,每当发射完毕以后,子弹将会被回收,进行reset()操作,该类又定义了子弹的攻击力、发射方向、状态、步伐长度/像素、速度、攻击力;并定义了一个timer用来发射子弹,移动坐标、检测攻击。

3、在小格子(unitMap)类中定义了,是否为可攻击的对象、防御力,还有一个攻击方法,当有坦克对它进行攻击时,则调用此方法,该方法判断自己是否为可攻击的对象,比如道路就是不可攻击的,那么将返回攻击操作失败,否则返回true,那么子弹的状态将改变为爆炸状态,且小格子根据自己的防御力来改变自己的状态,要不要消失。

============================= 2007.05.31 晚 更新 =========================
1、增加坦克爆炸画面效果
2、增加被子弹命中的unitMap相邻的unitMap也爆炸的效果,对爆炸辐射范围判断。

============================= 2007.06.01 晚 更新 =========================
1、BUG:由于子弹仍然有一定的宽度,因此判断是否命中目标不能单纯以子弹的中心点x、y
轴为依据,应根据方向,计算出其子弹两个边缘的个x、y.
2、BUG:子弹辐射联带爆炸判断,不能以子弹的x、y轴判断,而应该以子弹的中心点对比
unitMap的中心点,判断命中偏向哪一边。
3、BUG:命中比unitMap时,如果此对象(铁围墙)的防御力大于子弹杀伤力,那么不进行【辐射联带爆炸判断】。
4、增加LOGO及XML配置文件加载进度模块.

============================= 2007.06.03 更新 ============================
1、增加游戏开始过渡音乐,即将准备增加游戏声音功能。
2、增加了AI坦克(智能坦克机器人),由计算机自行控制方向:根据坦克上一次移动操作是否成功,如果失败,则进行随机选择方向,向下方向的几率为最高;根据行走步伐来长度来判断是否再一次随机方向,此判断避免坦克只走可走的路。

============================= 2007.06.04 晚 更新 =========================
1、解决地图中所有坦克不得重叠功能,增加坦克碰撞检测;
2、在源XML配置文件中增加tanks节点,其子节点配置内容,动态生成AITank(坦克机器人)。

============================= 2007.06.05 更新 ===========================
1、完成坦克队伍分组,使不同队伍之间的坦克可以互相攻击
2、增加坦克爆炸效果。

============================= 2007.06.07 更新 ===========================
1、完成受保护类定义(碉堡),可通过配置文件,配置不同位置的碉堡
2、完成游戏胜负判断

============================= 2007.06.08 更新 ===========================
1、增加GameMaster用于管理游戏地图列表,其增加了MapList.xml配置文件,用于组织所有的游戏地图列表。
2、完成所有对象的clear方法,用于释放对象,减少CPU和内存的占用。
3、增加【第二关】新游戏地图。

============================= 2007.06.13 更新 ===========================
1、创建了地图编辑器;
2、增加了第3关--第11关地图;