Flash MX 编程深层次应用-复杂游戏(3)

2016-01-29 12:57 1 1 收藏

Flash MX 编程深层次应用-复杂游戏(3),Flash MX 编程深层次应用-复杂游戏(3)

【 tulaoshi.com - Flash 】

5.3 游戏的智能
    

在现代社会中,一个蠢笨的游戏是没有人来玩的,因为人会学习,而程序是不会学习的。因此,要让游戏好玩一些的好办法就是让游戏具有一点智能。当然了,这种智能达不到人工智能的水平,但是至少可以通过程序对游戏环境的变化或者条件的变化来增加游戏的难度与可玩性。

首先,先讲一个随机掷骰子的智能问题。不知大家有没有玩过掷骰子的游戏,就是掷一个骰子,然后玩家赌大小,这个游戏最方便做智能了。请看下面的代码:

number = random(6)+1;

if (用户选择大 and number=4) {

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/flash/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/flash/)

  number = random(6)+1;

} else {

if (用户选择小 and number<=3) {

  number = random(6)+1;

}

}

if (用户选择小 and number<=3) {

  trace("恭喜,赌正确了");

}

if (用户选择大 and number=4) {

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/flash/)(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/flash/)

  trace("恭喜,赌正确了");

}

这样编程很明显就让游戏难度增加了。表面上看好像计算机只出了一个随机数,但是,程序运行时实际上出了两次随机数。第一个随机数根本不显示出来,只有两次都正确才叫正确,这就是最简单的游戏智能!让我们看看还有什么办法给游戏增加智能吧。一般智能可分成下面几种情况:

敌人跟随或追踪子弹

这个应该是最常见的了,在很多小游戏里经常见到。最简单的是根据游戏主角和跟踪物体的坐标计算出角度,然后把它运动的方向改为朝游戏主角运动,再配上不同的速度或者曲线方程,将它完成得非常流畅。

复杂一些的还可以增加障碍物。这时,就需要让敌人移动的算法复杂一些,可能要让“它”计算一下。具体的计算方式是根据具体的游戏情况来制定的,多数要求不高的游戏用简单的数组就可以解决了。

敌人进行攻击

简单的游戏里,可能敌人一直在攻击。但是大多数游戏里面,敌人还是表现出一些“狡猾”,他们在主角靠近的时候才采取行动。比如说主角靠近时用剑来攻击,在离得较远时就用远距离的攻击方式比如魔法攻击或者发射子弹等。

最简单的解决方法就是判断两者之间的最短距离,在Flash中就是中心点之间的距离。它的计算公式就是Math.sqrt((x–x1)*(x–x1)+(y–y1)*(y–y1)),其中(x,y)和(x1,y1)分别代表两个物体中心的坐标。

当有障碍物的时候,算法会复杂一些。此时要绕过障碍物,而绕过障碍物的算法很多,简单的算法可以将自己直线或者斜向移动一格,然后再判断有没有阻挡,如果阻挡了,就再移动,直至不再阻挡为止。当然了,这种算法有明显的不足,就是效率低下,而且会有可能永远走不出去。好的绕过障碍物的算法可以用A×算法,这属于一种最短路径的算法,在计

来源:https://www.tulaoshi.com/n/20160129/1488306.html

延伸阅读
标签: flash教程
6.3 游戏后台通信(1)      6.3.1  游戏积分排行榜 一个完整的游戏都有一个排行榜,本游戏也不例外。排行榜的内容实际上就是将玩家的得分及姓名等相应内容向后台程序发送,然后由后台程序进行处理,再将处理完的结果返回Flash中。下面先看看游戏的前台部分,如图6-22所示。 图6-22 Ö    &...
标签: flash教程
6.2 游戏制作(前台)(5)      6.2.6  游戏的初始化程序 至此,敌人部分基本上讲完,下面讲讲游戏的初始化。也许大家会问,怎么,游戏快讲完了才讲初始化啊,游戏初始化不是应该在游戏一开始就对各种物体、目标、声音效果、得分进行初始设置吗,为什么不在本章的前面部分讲啊?其实道理很简单,这么复杂的游戏,如果一...
标签: flash教程
本章小结      写完这个游戏的教程,笔者终于长长地松了一口气。这个游戏中的代码自己看起来都觉得累,别说还要把它做出来。当初,制作前后花了近两个月时间,尝试了很多种方法,基本上没有借鉴别人的经验,程序部分全由自己考虑,然后编写代码,对代码进行测试,修改,调试,最后才实现现在这个样子。 一般来说,Flash的...
标签: flash教程
第6章 Flash射击游戏——傲龙 6.1 前期准备——绘制游戏物件      游戏讲述的是一个星际宇宙的故事,因此游戏的背景环境采用了黑色。为了增加游戏的真实性,采用一个循环的星空效果,如图6-1所示。 有朋友曾经问循环的背景怎么做,其实说难也不难。比如说想上下循环的话,只需做一个超过两倍场景高度的背景图,让它们...
标签: flash教程
6.2 游戏制作(前台)(1)      这个战斗游戏非常复杂,包括多个敌人、多层关卡、多种功能,为了讲清楚这些内容,下面将把这些内容分成几个部分来一一讲述。 Ö           我的飞船Ö           我的子弹&Ou...

经验教程

266

收藏

50
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部