获取另一个

时间:2016-05-11 15:16:55

标签: object instance game-maker

我试图在我的游戏中创建血液效果,为了达到这个目的,我需要测试血液粒子是否从阵列中击中另一个实例。我已经设置了数组,并且测试对象是否在数组中,但是当我这样做时:

platform = instance_position(x, y, all);

当我想要下面的实例时,它将针对血液粒子本身。是否有任何方法可以忽略血液粒子,而是查看它下面的实例?我无法改变深度,因为我确实希望它能在前面。

感谢您的时间:)

1 个答案:

答案 0 :(得分:0)

如果要检查与某个特定对象或实例的冲突,可以使用对象名称或实例ID代替 all 关键字。例如:

var ins = instance_position(x, y, objWall);

如果检测到 objWall 的任何实例,将返回第一个实例的ID。如果您使用实例ID,则只会检查该单个实例。

如果需要检查多个不同的实例,可以遍历数组,对每个实例ID执行一次检查,如果找到其中一个,则停止循环。

如果需要检查多个对象类型,可以为这些对象分配Parent,然后检查父对象。示例:创建四个对象, objBallParent,objFootball,objBouncyBall,objCannonBall 。在每个球的Object Properties中,将objBallParent设置为Parent对象。

if ( instance_exists(objBallParent ) {
    // Do something
}

var closest = instance_nearest(x, y, objBallParent);

上面的代码只检查父对象,但子对象的任何实例都将满足这些函数。在这种情况下,如果房间中有 objFootball 的实例,那将被视为 objBallParent 的实例,并且它也可以由返回instance_nearest 函数。

检查与objBallParent的冲突时,检查会接受三个子对象中的任何一个。