首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >敌人重叠在游戏制造者:工作室,我如何解决这个问题?

敌人重叠在游戏制造者:工作室,我如何解决这个问题?
EN

Stack Overflow用户
提问于 2016-12-20 17:28:07
回答 1查看 2.5K关注 0票数 1

我为我的游戏制作的敌人的人工智能很简单。他们只是跟随球员(更准确地说,他们看着球员的方向,然后继续前进)

代码语言:javascript
复制
    Step Event:

    if (instance_exists(obj_player)){
         direction = point_direction(x,y,obj_player.x,obj_player.y);
    }

    speed = spd;

但他们不断地相互重叠,并在球员的顶部。我尝试过研究,但所有的论坛都说要使用place_free()和xprevious & yprevious,但我不知道如何使用它们。我该如何解决这个问题?

谢谢:)

EN

回答 1

Stack Overflow用户

发布于 2017-01-17 17:48:18

您可以在gamemaker文档中了解到这一点:https://docs.yoyogames.com/source/dadiospice/002_reference/movement%20and%20collisions/collisions/place_free.html

基本上,您要做的是避免移动实例,如果这意味着导致冲突。x_previous和y_previous将用于通过返回到前一个位置来取消移动。

但我认为在移动之前检查一下位置会更好,所以我会在脚本的末尾添加:

代码语言:javascript
复制
if (place_free(x+hspeed, y+vspeed)) speed = spd;
else speed = 0;

这样,ennemy将停止,而不是超过其他实例。

一个小升级如下:如果检测到碰撞,检查是否可以沿着单个轴(x或y)移动并进行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41238862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档