用于2D游戏的Java AI

时间:2013-11-18 20:25:13

标签: java 2d-games

我正在创建一个2D游戏。英雄在地图中移动的位置。哪里有英雄显然无法通过的墙壁。而且我有简单AI的敌人。到目前为止,AI只是在随机方向上移动。下一步是为AI介绍另一种模式,他知道英雄的位置并追逐他。我知道我如何计算敌人和英雄之间的距离。和敌人需要移动以与英雄交叉的角度。但后来我陷入困境,不知道如何让它在那个特定的方向上移动。我真的会嘲笑答案!

THX !!!

3 个答案:

答案 0 :(得分:1)

一旦你有距离,找到英雄和恶棍之间的最短路径,让恶棍沿着那条路走。沿着地图路线的路径

答案 1 :(得分:0)

如果AI的方向是单位矢量,只需围绕计算出的角度旋转即可。你可以使用

newDir.x = cos(angle) * oldDir.x - sin(angle) * oldDir.y
newDir.y = sin(angle) * oldDir.x + cos(angle) * oldDir.y

如果您的角度是按照我的假设计算的。但是一个代码示例或数学解释如何准确地计算你的问题会使问题更容易回答。

答案 2 :(得分:0)

假设你给每个实体一个垂直和水平的速度,例如monster.setXspeed(5),monster.setYspeed(-5),试试这个: (1)检查英雄的x坐标是否在英雄的左侧或右侧。 (2)如果在左边,设置怪物x速度为负;如果是正确的,积极的 (3)检查英雄的y坐标是否高于或低于英雄。 (4)适当设定怪物的速度。 因此,如果您想要做的就是这样移动,则无需计算距离和角度。

相关问题