大家好。

我正在自学Python,又希望更深入地了解面向对象编程和更具规模的代码处理能力,因此我正在开发一个使用pygame的小型2D游戏。游戏使用非常传统的上视角摄像机,随着角色图像游走于世界中。

我目前的阶段:

-世界由2D贴图构成,摆放在世界格林。

-每个块子的ID是通过8位,32x32的ID纹理来获得的,每个像素编码表示这个块子是用哪种类型(例如水、草、土壤等)的ID告知程序。

这么做成为了一个模拟方案,在这里我可以轻松绘制各种栅区(如水、草、土壤等)。

然而,在图像的过渡部分,存在问题。因此,我希望写一个自动tiler函数,所以我可以简单地描绘图像的类型,并让系统选择适合的片子(例如,角、边…)。

-我查看过一个与世界格林分位的双层格系统(每个格点半瓦的偏移),因为它比其他栅化系统具有更多优势。
-理想情况下,我还想使用透明的栅子:而不是处理每种可能的过渡图像组合,我可以直接驱动透明度图标中的透明度,从而可以简单地画出“草”在我的底层“岩石”上,并因此可以自动获取过渡。无论草是被放置在岩石上,还是砂土上…

-说完了后,我出现了两个问题:

双层栅化系统查看每个格点的每个角,并根据四个与它相毗邻的块子来推断出正确的纹理。然而这仅对一个物质进行评估而不用来进行未评估的物质时,才具有作用。例如,格点显示像下面这样:

.Grass / Null

Null / Null.

像这种就会自然而然地被评估为:“这个要素必须是右下角的草片”。

对我来说这是足够了。

但是当我们开始将其他的块子引入到我们的游戏地图时会不会怎样呢…

.Grass/Rock

Rock/Rock

是不是这个像素应该抓住“矩形右下角的草”还是应该抓住“凸上面边缘的石头”?

进一步的,其实有个之后的层次的问题:意味着在双层栅化系统中,因为这个模糊性,所有的块子都会需要按照顺序单独进行处理,然后在一个最前面的层次(顺序/深度)中进行合成吗?

我对我的解释可能不是非常清晰,我其实是个新手。

因为我希望专注学习Python,所以我更倾向于避免使用更先进的、专业化的资源或者游戏引擎。