将敌人的方向瞄准玩家游戏制作工作室 2 DnD
Posted
技术标签:
【中文标题】将敌人的方向瞄准玩家游戏制作工作室 2 DnD【英文标题】:targeting an enemy's direction towards a player game maker studio 2 DnD 【发布时间】:2020-02-10 20:44:40 【问题描述】:我正在使用游戏制作工作室 2 创建一个地牢游戏作为一种编程体验,并且我正在尝试让敌人以玩家为目标。由于我不懂程序中的命令,所以我使用拖放来制作它。我将它的速度设置为 4,然后它检查一个实例是否存在(因为我有多种类型的播放器对象)然后将指向该播放器对象的方向设置,但它只是开始进入屏幕的左上角。有谁知道我该如何解决这个问题?提前致谢!
【问题讨论】:
【参考方案1】:听起来 X 和 Y 值需要更新为目标玩家对象的实例。我不确定 dnd 但使用 gml 您可以从对象本身访问它。例如,如果您想要玩家对象的“X”坐标,您可以使用类似这样的方法获得它
objPlayer.x;
如果这对您不起作用,您可能需要使用全局变量(但请务必在 STEP 事件中更新它!)。此外,还有一点需要注意的是,如果您有多个播放器对象(听起来像您这样做),那么您将需要知道该播放器对象的实例 ID。为此,您可以使用以下内容:
players[i] = instance_create(xx, yy, objPlayer);
旁注:不过,我也同意史蒂文的观点。我建议从尽可能简单的开始,并在你让事情按照你想要的方式工作时增加它的复杂性。从长远来看,它会拯救你的理智,相信我。 ;)
【讨论】:
谢谢,我希望在我还在努力的时候看到这个。在我看到这个我现在才看到的答案之前,我放弃了这个项目并开始学习统一。不过谢谢!【参考方案2】:从多个实例中检查是否存在任何实例在 Gamemaker Studio 中有点棘手,因为它需要决定哪个最接近。由于它无法做出该决定,它似乎遵循一个默认点(左上角)。
所以它需要检查所有玩家实例,看看哪个最接近,然后选择要跟随的玩家实例。这应该在 Step Event 中完成,因为 Step Event 是不断更新的。
我不熟悉拖放,所以恐怕我不能给你举个例子。
首先检查以下机制是否适用于单个实例(玩家)。一旦可行,您就可以尝试使用多个实例。
【讨论】:
我以为我误解了你,但我认为你误解了我。我的意思是我有一个 if 语句来检查“PlayerRight”是否存在。如果是这样,它会去那里。如果没有“PlayerRight”实例,它会检查“PlayerLeft”。如果它存在,它会去那里。如果不是,则转到下一个 if 语句。我没有多个它正在检查的相同实例,它只是检查多种类型的对象。无论如何谢谢!以上是关于将敌人的方向瞄准玩家游戏制作工作室 2 DnD的主要内容,如果未能解决你的问题,请参考以下文章
Ruby‘s Adventrue游戏制作笔记Unity角色攻击——发射子弹