因此,如果我正在检查enterframe事件监听器中的某些内容,并且我想检查(如果发生了某些事情),请执行此操作。但不知怎的,检查每一帧都太慢了。有没有办法检查无限速度而不是每一帧,所以当它检查某些东西时,它会立即变为那个位置?
答案 0 :(得分:1)
从技术上讲,如果您的帧速率已经达到60fps,则无法以每帧快速检查一次。 Timer
限制为每秒最多触发60次,这与设置stage.frameRate
的速度相同。但是,如果您正在检查,例如,飞行速度非常快的物体与当前帧中的障碍物之前的障碍物的碰撞,以及下一帧的过去,您可以使用axis-aligned bounding box的导数碰撞检测,以及转换碰撞检测(a probable example is here),它检查路径是否在两帧之间的时间内与边界框相交。
如果您正在检查取决于某些因素和时间的过程,并且您可以检查此帧和前一帧中的条件,则可以在传统的enterframe侦听器中的帧之间插入该过程并检查条件是否为正在寻找可能在两者之间发生,如果可能,你可以通过以比帧短的时间间隔进行插值来检查是否。尽管如此,你最好不要在这种插值中使用hitTest
,因为这是非常昂贵的检查,你可以从AABB检查和其他优化碰撞检测的方法中获得更快的负面结果。