急求J2ME中 AI的设计。

来源:百度知道 编辑:UC知道 时间:2024/06/20 20:52:47
要求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);
}
如程序中可以看出,玩家飞机smallPlane[i]的坐标位置(smallPlane[i].getX())根据玩家飞机playerSprite的位置(playerSprite.getx())而改变。这段代码可能产生的问题就是可能AI工作的非常良好,敌人飞机几乎可能毫不犹豫地纠缠住玩家,基本上使得玩家没有机会躲开它,这可能是游戏设计者所需要的,但是,玩家更希望敌人在追逐玩家的时候能够多飞一会儿。如果希望这个过程更加完美一些,玩家至少有机会能够以机动性战胜外星人。即敌人飞机在追逐玩家精灵时不应该全力以赴地进行躲闪,而是有余力去追击敌人。
使追逐算法变得更加平和的一种方法就是,在过程中加入一点随机性,我做的这个游戏使用的是这样一种方法:
/*有跟踪能力的小飞机的出现具有随机性*/
x=(int)(random.nextInt()%3);
if(x==0)
{
flag=i;// flag标记具有跟踪能力的小飞机
}
break;
在这段代码中,敌人飞机只有三分之一的机会能够跟踪玩家。即便只有三分之一的机会能够追逐到玩家,敌人飞机还是对玩家具有攻击性,而这也使玩家能够争取逃脱的机会。
在漫游AI中,还有一个分类