【发布时间】:2021-05-13 11:05:27
【问题描述】:
我在使用 Pygame 正确加载和 blit PNG 图像时遇到问题。 代码实际上正在运行,但它在我的精灵周围显示了一些奇怪的黑色“东西”:
要加载tileset,我会这样做:
def TilesRessourceFile(self, filename=None, tileSize=None, tiles=None):
logging.info("Loading ressources from %s", filename)
self._tileSize = tileSize
res = pygame.image.load(filename)
res.convert_alpha()
for tile in tiles:
name, (x, y), alpha = tile.values()
surface = pygame.Surface((tileSize, tileSize))
surface.blit(res, (0, 0), area=(x * tileSize, y * tileSize, (x + 1) * tileSize, (y + 1) * tileSize))
surface.convert_alpha() # set_colorkey(alpha)
self._tiles.update({name: surface})
然后我像这样对精灵进行blit
def _implGameObjectRender(self, screen):
# logging.info("Render map %s", self._mapping)
for i in range(len(self._mapping)):
for j in range(len(self._mapping[i])):
screen.blit(self._mapping[i][j], (j * 128, i * 128))
可能不多,但我自己没有找到解决方案。 我已经尝试过检查:
- 如何使用 pygame 加载 PNG
- pygame 的透明度(convert 和 convert_alpha)
我正在使用这个图块集:https://www.gamedevmarket.net/asset/2d-hand-painted-town-tileset-6626/
tileset 提供了一个 json 文件来加载 Tiled。也试过了,效果很好,所以我想问题出在我这边
谢谢你帮助我!
Python 3.9.1 Pygame 2.0.1 (SDL 2.0.14)
【问题讨论】:
标签: python python-3.x pygame png transparency