发布日期:2023-03-31来源:武汉北大青鸟武汉校区作者:admin
移动模式 (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++;
……
}
Copyright (c) 2006-2023 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.