gpt4 book ai didi

actionscript-3 - 关于 AS3 中的碰撞检测算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:39:57 26 4
gpt4 key购买 nike

好的。因此,有几种方法可以实现碰撞检测,如 R 树、四叉树、BSP 树递归维度聚类 (RDC)。或者更多。

我的问题是我在舞台上有大约 6-8 个敌人,其中一些在移动,一些是静态的,而且我的英雄同时用三种类型的导弹射击。所以我一次在舞台上放了大约 70-100 个物体。

我的问题是,对于这类问题应该使用哪种算法,哪种算法是常见的做法?还有哪个效率最高?

我正在考虑实现四叉树,但我读到它可能很慢,或者我错了?

ps:我可以使用八进制树还是它们只能用于 3D?

最佳答案

如果你只说,十个敌人和一百颗子弹左右,我怀疑任何复杂的空间结构都会让你受益匪浅。针对每个敌人检查每颗子弹相当于一千次检查,在我看来,与维护更复杂的结构相比,性能上的提升太小了。

根据您的游戏速度,您可以每隔一帧(甚至更少)而不是每帧检查一次碰撞。这将使您的碰撞检测性能提高 100%。

我建议简单地这样做:

for each(var enemy:Enemy in _enemies){
for each(var bullet:Bullet in _bullets){
if(bullet.x > enemy.x - enemy.width / 2 &&
bullet.x < enemy.x + enemy.width / 2 &&
bullet.y > enemy.y - enemy.height / 2 &&
bullet.y < enemy.y + enemy.height / 2){
trace("collision!");
}
}
}

关于actionscript-3 - 关于 AS3 中的碰撞检测算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7083074/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com