北大青鸟光谷校区

北大青鸟光谷校区

  • 北大青鸟鲁广校区
  • 北大青鸟光谷校区
  • 北大青鸟宏鹏IT校区
  • 荆州青鸟之家
  • 襄阳青鸟之家

17740513250

百日千才

游戏设计:AI的基本移动模式

2011-08-10 10:46:10来源:武汉北大青鸟光谷校区作者:北大青鸟宏鹏光谷校区

  移动模式 (Pattern Movement) 是制造只能行为的简单方式。

  比如说,早期的飞机射击游戏,很多的飞机从屏幕的上方出现,然后,对你发射子弹,而且对于你出现在不同的地方而做出不同的动作。这些方式就是利用移动模式算法做出来的。

  标准算法:

  这个是运动模式算法使用控制指令来指示计算机控制的角色,在每轮游戏循环中如何运动,每当循环运行一轮时,数组将编入索引值,以便处理下一组新的移动指令。

  控制指令数据结构:

  ControlData{

  double turnRight;

  double turnLeft;

  double stepForward;

  double stepBackward;

  }

  其中, turnRight 和 turnLeft 是存放右转或者左转的角度值。

  stepForward 和 stepBackward 是向前或者向后的距离。

  这个控制结构也可以包含其他指令,比如:开火、丢炸弹等等。

  然后在游戏程序中初始化模式数组。

  Pattern[0].turnRight = 0;

  Pattern[0].turnLeft = 0;

  Pattern[0].stepForward = 2;

  Pattern[0].stepBackward = 0;

  Pattern[1].turnRight = 0;

  Pattern[1].turnLeft = 0;

  Pattern[1].stepForward = 2;

  Pattern[1].stepBackward = 0;

  Pattern[2].turnRight = 10;

  Pattern[2].turnLeft = 0;

  Pattern[2].stepForward = 0;

  Pattern[2].stepBackward = 0;

  Pattern[3].turnRight = 10;

  Pattern[3].turnLeft = 0;

  Pattern[3].stepForward = 0;

  Pattern[3].stepBackward = 0;

  Pattern[4].turnRight = 0;

  Pattern[4].turnLeft = 0;

  Pattern[4].stepForward = 2;

  Pattern[4].stepBackward = 0;

  Pattern[5].turnRight = 0;

  Pattern[5].turnLeft = 0;

  Pattern[5].stepForward = 2;

  Pattern[5].stepBackward = 0;

  Pattern[6].turnRight = 0;

  Pattern[6].turnLeft = 10;

  Pattern[6].stepForward = 0;

  Pattern[6].stepBackward = 0;

  ……

  ……

  如果按照这个模组来行动,那么就应该是一个先前进 2 个单位,再向前 2 个单位,然后右转 10 度,右转 10 度,然后前进 2 个单位,前进 2 个单位,然后左转 10 度,左转 10 度。这就是简单是蛇行运动。

  运行模式数组:

  void GameLoop(void)

  {

  ……

  Object.orientation += Pattern[CurrentIndex].turntRight;

  Object.orientation -= Pattern[CurrentIndex].turnLeft;

  Object.x += Pattern[CurrentIndex].stepForward;

  Object.x -= Pattern[CurrentIndex].stepBackward;

  CurrentIndex++;

  ……

  }

关闭

只为了方便您就学 北大青鸟光谷校区 北大青鸟光谷校区

武汉市江夏区庙山街道华泰街16号(北大青鸟综合大楼)

Copyright (c) 2006-2024 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.