这是我的代码...

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相关问答推荐

如何翻转以列形式给出的日期间隔并提取多个重叠时段内每小时的音量?

如何有效地计算Kernel/Matrix

如何转换Pandas中的数据,以使我 Select 的列名变为行值并增加行?

从Metacritic上通过网络擦除游戏数据的问题

无法导入名称';核心';来自部分初始化的模块';tensorflow_datasets';(很可能是由于循环导入)

检测点坐标 - opencv findContours()

通过在不重新索引的情况下采用最高概率的百分比,有效地转换 0/1 列表中的概率列表

通过匹配第一列的行值,逐个单元格地添加两个Pandas 数据框中的浮点数

如何将列表和字典逐行组合在一起

删除Pandas 数据框行不起作用

根据另一列值对多个数据框列进行分组

获取以特定字母开头的姓氏

Tkinter IntVar 返回 PY_VAR0 而不是值

将变量传递给 Google Cloud 函数

在两个数据框之间查找相等的列

使用 Python 3 按行进行分析

python total_ordering:为什么使用 __lt__ 和 __eq__ 而不是 __le__?

Python 解包运算符 (*)

为什么等效的 Python 代码要慢得多

python asyncio - 如何等待取消的屏蔽任务?