gpt4 book ai didi

lua - 像素碰撞追踪

转载 作者:行者123 更新时间:2023-12-04 07:27:47 25 4
gpt4 key购买 nike

我有一个 20 x 10 像素大的角色,我有一个基于像素的碰撞贴图(想想蠕虫)。

给定速度大于每帧 1 个像素的情况下,跟踪角色碰撞的最佳方法是什么?有没有比沿着速度向量迭代每个像素更好的解决方案?

我在 Lua (Love 2D) 中这样做,但通用解决方案将是理想的。

最佳答案

我会结合边界框碰撞和像素完美碰撞。

所以你游戏中的所有实体都会有边界框,只是与你的 Sprite 的宽度和高度相等的帧。将此作为您的第一级碰撞测试。完成此操作后,您将发生碰撞,然后使用碰撞贴图获得更精细的细节。

这种优化将有助于提高速度,并为引擎增加灵活性,即并非所有碰撞都必须是像素完美的。

至于实际的像素完美碰撞算法,您所描述的将起作用。但是,如果您追求速度,您可能想试试这个:

为每个 Sprite 设置一个位掩码(就像像素图,但每个像素只有一位)
例如:

00000000
00100000
01100000
01110000

当一个 Sprite 与另一个碰撞时,从与较大 Sprite 相同大小的较小位掩码中创建一个新位掩码,并通过 Sprite 之间的位置差异“偏移”它。

完成后,按位“和”这两个掩码中的所有字节。如果任何字节结果 > 0,则发生冲突。

关于lua - 像素碰撞追踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7336820/

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