Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3-是否可以在同一阵列中对彼此进行测试?_Actionscript 3_Collision Detection_Hittest - Fatal编程技术网

Actionscript 3 AS3-是否可以在同一阵列中对彼此进行测试?

Actionscript 3 AS3-是否可以在同一阵列中对彼此进行测试?,actionscript-3,collision-detection,hittest,Actionscript 3,Collision Detection,Hittest,我正在做这个项目,允许玩家推物体。我可以使用“for”循环测试玩家的对象数组,我可以移动对象 我现在想做的是测试对象之间的相互关系,并让它们彼此移动。比如,我想用球员推一个方块,然后用我已经推过的方块推另一个方块 这些块都被推到各自的数组中,那么我如何才能对它们进行相互测试呢?当然,您可以将所有的块都放在同一个数组中,并使用两个进行循环: for each(var a:Entity in array) { for each(var b:Entity in array) {

我正在做这个项目,允许玩家推物体。我可以使用“for”循环测试玩家的对象数组,我可以移动对象

我现在想做的是测试对象之间的相互关系,并让它们彼此移动。比如,我想用球员推一个方块,然后用我已经推过的方块推另一个方块


这些块都被推到各自的数组中,那么我如何才能对它们进行相互测试呢?

当然,您可以将所有的块都放在同一个数组中,并使用两个
进行
循环:

for each(var a:Entity in array)
{
    for each(var b:Entity in array)
    {
        // Objects can't collide with themselves.
        if(a == b) continue;


        // Check if a and b collide and do something.
        //
    }
}

此示例代码假定
实体
是可以相互接触的对象的基类;所有这些都列在我现在所做的工作的
数组中。但有趣的是。稍后添加到阵列的对象不能用于推送先前添加到阵列的对象。它们突然出现故障,突然出现在早期物体的上方。像“对象A”一样添加到数组和“对象B”之前的阶段。我不能用对象B来推对象A。相反,对象B出现在对象A旁边的某个奇怪位置。你知道这是怎么回事吗?@JosephWagner,这可能与你的冲突管理代码有关。您需要注意,您的代码不依赖于检查冲突的顺序。