python-3.x - Pygame 错误地渲染等距图像

标签 python-3.x pygame isometric

这是我的代码...

import pygame as pyg
import sys

#Game constants
SCREENSIZE = (1400, 800)
running = True

disp = pyg.display.set_mode(SCREENSIZE)

tilemap = [
    pyg.image.load("Grass.png").convert()
]

for y in range(8):
    for x in range(8):
        disp.blit(tilemap[0], (300+x*32 - y*32, 200+x*16 + y*16))

while running:
    for event in pyg.event.get():
        if event.type == pyg.QUIT:
            sys.exit()

    pyg.display.update()

这是我电脑上的结果。我正在使用 Windows 11 和带有集成显卡的 AMD Rysen 7 5700G...

Result of code

这是我用来构建等距世界的 Assets 图像

Source asset

为什么我的图像中会出现所有这些黑色三角形?

最佳答案

您必须使用convert_alpha()而不是convert()convert 适用于完全实体表面并丢弃 alpha 信息。

pyg.image.load("Grass.png").convert()

pyg.image.load("Grass.png").convert_alpha()

另请参阅How do I blit a PNG with some transparency onto a surface in Pygame? .

关于python-3.x - Pygame 错误地渲染等距图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72761699/

相关文章:

python - 如何将嵌套的 python 字典转换为简单的命名空间?

python - Python 中 super() 和 super(className,self) 的区别

python - Pygame 应用程序在 Mac 上的运行速度比在 PC 上慢

python - 如何在pygame中等待一段时间?

javascript - 等距拓扑排序问题

python - 使用 Selenium 的下拉菜单和复选框 (python3)

python - 在 python 3 中使用 while 循环迭代类成员

python - 如何使用 pygame 删除 python 中显示的对象?

c++ - 如何用等距透视渲染?

c++ - 使用opengl进行真正的等距投影