如何从2D游戏图像创建布尔矩阵?

2024-05-20 02:31:23 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是2D游戏的屏幕截图:

(Sorry, don't have the reputation to post inline images)

你可以在草地、柏油路、人行道等上行走,但不能走进建筑物/墙壁/任何构筑物。这里有一个small gif来演示这一点

我想要的:我的理想目标是创建一个布尔矩阵,其中0表示不能遍历该像素,1表示可以。在这个例子中,它看起来像this (I forgot to add the trees)

其中,此数组中的“红色区域”为0,而其他平铺为1

我的尝试和我的想法:

我所有的想法都导致了一件事,我不知道它是否正确:创建一个“可接受”颜色的通用列表,如果像素在可接受颜色列表中,我们可以将其设置为1。这当然也有它的缺点:其中一个缺点是不可穿越的区域很容易有可穿越区域的颜色(例如,如果我们使用绿色作为草的颜色,可能是沼泽或灌木),另一个缺点是比较每个像素的计算时间

我考虑过阈值,但如果我得到的正确,它只用于黑白比较。 我还研究了使用PIL的图像量化,但量化后的图像对我来说变化不大。量化之后我会做什么

如果我们深入研究这个游戏,这里的平铺被认为是一个32x32像素的区域,它是用平铺集绘制的(有点像画布):https://i.imgur.com/j9CNQdi.png有一个“不可遍历”的平铺列表(分块),也许可以使用它

不管怎样,我不知道该找什么。我一直在研究,但没有发现类似的东西。如果您能给我一些建议,我将不胜感激,谢谢