如何让 NPC 在 Gamemaker Studio 1.4 中跟随我

Posted

技术标签:

【中文标题】如何让 NPC 在 Gamemaker Studio 1.4 中跟随我【英文标题】:How do I make NPC follow me in Gamemaker Studio 1.4 【发布时间】:2017-09-29 16:55:22 【问题描述】:

我一直试图让一个 NPC,在我的情况下是一个僵尸,在我的游戏中跟随我当然无济于事。我正在使用以下脚本让我的角色移动

if(keyboard_check(vk_left))
    sprite_index = spr_player;
    x -= 4;


if(keyboard_check(vk_right))
    sprite_index = spr_player;
    x+= 4;


if(keyboard_check(vk_down))
    sprite_index = spr_player;
    y += 4;

NPC对象的名字是(obj_zombie)。

【问题讨论】:

这可能会在这里得到更好的答案:gamedev.stackexchange.com 【参考方案1】:

看看你用来移动玩家对象的简单系统,你可以使用move_towards_point(x,y,speed);函数在对象僵尸的step event中让另一个对象跟随另一个对象(对象到对象)这样:

move_towards_point(obj_Player.x, obj_Player.y,5);

其中 obj_Player 当然是你的播放器对象的名称,我不知道它是什么所以我只放了 obj_Player,你应该更改它以匹配你的。

要将精灵更改为其移动的方向,您只需检查对象正在移动的direction,然后精灵可能会改变或精灵的比例可能会改变。

if (direction > 90) and (direction < 270) 
   // left direction
 else 
   // right direction

注意:此答案中某些文本的链接会将您重定向到游戏制造商 工作室参考代码文档。

【讨论】:

【参考方案2】:

正如 Jr Jimnz 所说,在这种情况下,最好使用 move_towards_point(x,y,speed),就个人而言,这也是我在某些情况下使用的系统! 否则,您可以使用符号功能:

 if (instance_exists(//insert your player object here)) 
 x += sign(//player object.x - x);
 y += sign(//player object.y - y);

但是标志系统不太方便。

抱歉我的英语不好。

【讨论】:

以上是关于如何让 NPC 在 Gamemaker Studio 1.4 中跟随我的主要内容,如果未能解决你的问题,请参考以下文章

如何在GameMaker (GML)中执行存储在数据结构中的Script(脚本 函数)

visual studio除了6还有哪个版本用得多而又不占内存?如何实现多visual studi

GameMaker Studio:处理虚拟键时如何忽略全局左键?

ChatGPT让游戏NPC活了!交流不再靠选项,问什么答什么,网友直呼童年梦想成真...

在 Gamemaker Studio 2 中,我如何在代码中找出平台是不是为 HTML5?

gamemaker 1.4中的水反射?