我试图在我的游戏中创建血液效果,为了达到这个目的,我需要测试血液粒子是否从阵列中击中另一个实例。我已经设置了数组,并且测试对象是否在数组中,但是当我这样做时:
platform = instance_position(x, y, all);
当我想要下面的实例时,它将针对血液粒子本身。是否有任何方法可以忽略血液粒子,而是查看它下面的实例?我无法改变深度,因为我确实希望它能在前面。
感谢您的时间:)
答案 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的冲突时,检查会接受三个子对象中的任何一个。