碰撞检测Flash Builder

时间:2011-11-23 01:10:40

标签: flash flex actionscript flash-builder

我在处理碰撞检测的代码时遇到了麻烦。我已经测试过以确保它确实检测到碰撞,但确实如此,但是我无法让它工作,因为它只是穿过块。我也尝试在碰撞后从x值中取出-10,但它会在前几次尝试时停留,然后只是走过这个区块。

private function collisionDetect(evt:Event):void{
    if(IMG3.hitTestObject(block)){
        if(IMG3.x > block.x){
            IMG3.x = block.x-1;
        }
    }
}

1 个答案:

答案 0 :(得分:0)

这取决于物体移动的速度。提供有关您要完成的内容的更多详细信息。如果两个对象都是碰撞并且img的中心点x大于块的中心x,那么你的代码应该可以正常工作。

负责移动对象的代码在哪里?

无论如何,另一种方法是while循环:

private function collisionDetect(evt:Event):void{
  if(IMG3.hitTestObject(block)){
    while (IMG3.x > block.x) 
    {
      IMG3.x--;
    }
  }
}

但同样,这取决于IMG如何开始移动以及它在代码中的位置。另请注意felipemaia对物体中心点的评论。正确的方法是(IMG3.x + IMG3.width / 2) > ( block.x - block.width / 2)假设物体的两个中心点确实是它们的精确中心。

p.s重新标记标题 - 这不是Flash Builder问题