Actionscript 3 AS3-是否可以在同一阵列中对彼此进行测试?
我正在做这个项目,允许玩家推物体。我可以使用“for”循环测试玩家的对象数组,我可以移动对象 我现在想做的是测试对象之间的相互关系,并让它们彼此移动。比如,我想用球员推一个方块,然后用我已经推过的方块推另一个方块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 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,这可能与你的冲突管理代码有关。您需要注意,您的代码不依赖于检查冲突的顺序。