WEB开发网
开发学院软件开发Java J2ME下漫游(追逐)AI的实现 阅读

J2ME下漫游(追逐)AI的实现

 2009-10-12 00:00:00 来源:WEB开发网   
核心提示: 实现漫游AI通常比较简单,一般包括一个对象(玩家的飞机)的位置,J2ME下漫游(追逐)AI的实现(2),改变别一个对象(敌人的飞机)的速度或位置,对象的漫游移动也可以由随机的或预先定义的方式的影响,玩家至少有机会能够以机动性战胜外星人,即敌人飞机在追逐玩家精灵时不应该全力以赴地进行躲闪,通常有3

实现漫游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);
    }

如程序中可以看出,玩家飞机smallPlane[i]的坐标位置(smallPlane[i].getX())根据玩家飞机playerSprite的位置(playerSprite.getx())而改变。这段代码可能产生的问题就是可能AI工作的非常良好,敌人飞机几乎可能毫不犹豫地纠缠住玩家,基本上使得玩家没有机会躲开它,这可能是游戏设计者所需要的,但是,玩家更希望敌人在追逐玩家的时候能够多飞一会儿。如果希望这个过程更加完美一些,玩家至少有机会能够以机动性战胜外星人。即敌人飞机在追逐玩家精灵时不应该全力以赴地进行躲闪,而是有余力去追击敌人。

Tags:JME 漫游 追逐

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接