Welcome 微信登录

首页 / 软件开发 / JAVA / J2ME下漫游(追逐)AI的实现

J2ME下漫游(追逐)AI的实现2011-01-21gaochaojs作为游戏开发者,要给玩家制造挑战,只要使游戏的难度有所增加,使游戏中的假想敌人像玩家一样机智,一样具有人类的智慧和应变能力。这就需要使用一种计算机专业领域新兴的一门科学AI(artificial intelligence,人工智能)。

人工智能,作为一门新兴科学,人类思维的模拟是AI的主要研究领域,也是难、热点之一。人类的思维是一个十分不确定性的过程,要对其精确建模十分困难。在我做的这个游戏中所使用的AI还很粗糙,是属于人工智能的基础性知识。游戏开发专家将和游戏相关的AI划分为3种基本类型:

·漫游AI——确定一个游戏对象如何在一个虚拟的游戏世界中漫游;

·行为AI——确定跟踪或追逐在一个游戏对象或多个游戏对象后面的别一个游戏对象是多么具有攻击性;

·策略AI——在一个策略游戏中,从一组固定的实现定义的漫游规则中确定最佳的移动。

漫游AI是射击类游戏最常见的AI方法,是对游戏对象建模的AI,也就是说,游戏对象做出决定,确定它们如何在一个虚拟世界中漫游。漫游AI的一个典型的例子就是像Galaga的太空射击游戏,其中外星人常常试图跟踪和追逐玩家。同样,漫游AI也用来实现按照预先定义的方式飞行,发射子弹或射击的敌机。基本上,对于由计算机(或程序)控制的对象,不论是它必须做出决定改变当前的路径,还是要游戏中实现需要的结果,或者只是简单地遵守某种特定的移动方式,都要用到漫游AI。在我做的这个游戏中,敌方飞机所需要的结果就是遵从某种移动方式,同时尝试和玩家的飞机发生碰撞并玩家生命值降低。在其他的游戏中,计算机玩家所需要的结果可能是避开人类玩家所发射的子弹。

实现漫游AI通常比较简单,一般包括一个对象(玩家的飞机)的位置,改变别一个对象(敌人的飞机)的速度或位置。对象的漫游移动也可以由随机的或预先定义的方式的影响。通常有3种类型的漫游AI:追逐、躲避和模式。

追逐是这样一种漫游:一个游戏对象跟踪或追逐另外一个游戏对象或多个游戏对象。追逐是很多射击类游戏所使用的一种方法,其中敌方飞机常常追逐玩家飞机。根据玩家飞船的位置,改变外星人的速度和位置,这就实现了追逐。

例如,我做的这个游戏中实现追逐的算法:

/*flag标记具有跟踪能力的小飞机*/
private int flag=-1;
for(int i=0;i<MAX_SP;i++)
if(smallPlane[i].isVisible())
{
if(i==flag)
{
if(smallPlane[i].getX()>playerSprite.getX())
smallPlane[i].move(-speedOfSP, speedOfSP);
else
smallPlane[i].move(speedOfSP, speedOfSP);
}
else
smallPlane[i].move(0,speedOfSP);
}