0

我正在使用游戏制作工作室 2 创建一个地牢游戏作为编程体验​​,并且我试图让敌人以玩家为目标。由于我不懂程序中的命令,所以我使用拖放来制作它。我将它的速度设置为 4,然后它检查一个实例是否存在(因为我有多种类型的播放器对象),然后将指向该播放器对象的方向设置,但它只是开始进入屏幕的左上角。有谁知道我该如何解决这个问题?提前致谢!

4

2 回答 2

0

在 Gamemaker Studio 中检查多个实例中是否存在任何实例有点棘手,因为它需要决定哪个实例最接近。由于它无法做出该决定,它似乎遵循一个默认点(左上角)。

所以它需要检查所有的玩家实例,看看哪一个是最近的,然后它会选择那个玩家实例来跟随。这应该在 Step Event 中完成,因为 Step Event 是不断更新的。

我不熟悉拖放,所以恐怕我不能给你一个例子。

首先检查以下机制是否适用于单个实例(玩家)。一旦可行,您就可以尝试使用多个实例。

于 2020-02-11T07:50:06.020 回答
0

听起来 X 和 Y 值需要更新为目标玩家对象的实例。我不确定 dnd 但使用 gml 您可以从对象本身访问它。例如,如果你想要玩家对象的“X”坐标,你可以使用类似这样的东西来获得它

objPlayer.x;

您可能需要使用全局变量,但如果这对您不起作用(但请务必在 STEP 事件中更新它!)。此外,还有一点需要注意的是,如果您有多个播放器对象(听起来像您这样做),那么您将需要知道该播放器对象的实例 ID。为此,您可以使用以下内容:

players[i] = instance_create(xx, yy, objPlayer);

旁注:我也同意史蒂文的观点。我建议从尽可能简单的开始,并在你让事情按照你想要的方式工作时增加它的复杂性。从长远来看,它会拯救你的理智,相信我。;)

于 2020-02-14T19:08:14.767 回答