游戏制造者的一部分物体碰撞,而其他物体则没有碰撞

时间:2016-05-29 20:36:04

标签: game-maker

当一个物体与一个墙碰撞时,它无法通过,但一些精灵可以通过。当墙在右边时,碰撞工作正常,但当从另一个方向接近时,部分物体发生碰撞。

我对不同的对象有不同的碰撞代码,所以它可能不是问题。这样做的原因是不同的物体对碰撞的反应不同,它们的移动也不同。

我的角色由用户控制的事件

hor = keyboard_check(ord("D"))-keyboard_check(ord("A"));
ver = keyboard_check(ord("S"))-keyboard_check(ord("W"));
if (place_meeting(x+(hor * sp),y,Object_Wall))
{
    while (!place_meeting(x+sign(hor * sp),y,Object_Wall))
    {
    x += sign(hor);
    }
    hor = 0
}
if (place_meeting(x,y+(ver * sp),Object_Wall))
{
    while (!place_meeting(x,y+sign(ver * sp),Object_Wall))
    {
    y += sign(ver);
    }
    ver = 0
}
x += hor * sp;
y += ver * sp;

敌人的代码随机漫游并且应该在撞墙后走开(撞墙事件)

move_towards_point(random(room_width),random(room_height),sp)
time = random_range(50,150)

敌人的问题只发生在他追逐玩家的时候,所以现在我想起来,角色碰撞可能是问题。

有关如何修复它的任何帮助吗?

1 个答案:

答案 0 :(得分:0)

  1. 你在查看碰撞情况时可能有一个错误,但是如果没有看到你的精灵和你的代码的定义就很难确定你的确切问题(请发布它们,但首先让它们为Minimal, Complete, and Verifiable Example )。
  2. 关于你的句子:"我对不同的对象有不同的碰撞代码,所以它可能不是问题。" - 好吧,这确实是一个问题。为什么要为同一个任务使用不同的代码?你正在寻找麻烦......这可能就是你现在看到问题的原因(例如实际的碰撞检查代码不是你认为的那个......)。