所以我开始玩游戏来打发时间,但我不知道如何解决这个问题: 我的播放器是精灵薄片的一部分,精灵薄片有一个阿尔法层,所以它是透明的,但当我将我的精灵薄片分割成小的精灵时,这个阿尔法层消失了,我有一个黑色的BG…我试着用set_Colorkey([0,0,0])go 掉黑色的bg,但因为我的播放器是深色皮肤,所以我的播放器部分消失了.有什么建议吗?

import pygame


class Player(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__()
        self.image = pygame.image.load("assets/img/plr.png")
        self.image = self.get_image(0, 0)
        self.image = pygame.transform.scale(self.image, (96, 96))
        self.image.set_colorkey([0, 0, 0])
        self.rect = self.image.get_rect(center=(250, 250))

    def get_image(self, x, y):
        image = pygame.Surface([48, 48])
        image.blit(self.image, (0, 0), (x, y, 48, 48))
        return image

    def update(self):
        pass

推荐答案

由于您创建了一个不带Alpha通道(RGB)的Surface,Alpha通道将"消失".您必须使用SRCALPHA标志来创建具有Alpha通道(RGBA)的Surface.另请参阅pygame.Surface:

image = pygame.Surface([48, 48])

image = pygame.Surface([48, 48], pygame.SRCALPHA)

对于没有Alpha通道的曲面,可以将透明 colored颜色 键设置为set_colorkey:

image = pygame.Surface([48, 48])
image.set_colorkey((0, 0, 0))

Python相关问答推荐

django禁止直接分配到多对多集合的前端.使用user.set()

将9个3x3矩阵按特定顺序排列成9x9矩阵

如何在Python中使用另一个数据框更改列值(列表)

解决调用嵌入式函数的XSLT中表达式的语法移位/归约冲突

Pandas Data Wrangling/Dataframe Assignment

Odoo16:模板中使用的docs变量在哪里定义?

Python日志(log)模块如何在将消息发送到父日志(log)记录器之前向消息添加类实例变量

我对这个简单的异步者的例子有什么错误的理解吗?

在numpy数组中寻找楼梯状 struct

语法错误:文档. evaluate:表达式不是合法表达式

为用户输入的整数查找根/幂整数对的Python练习

如何使用matplotlib查看并列直方图

每次查询的流通股数量

Polars时间戳同步延迟计算

随机森林n_估计器的计算

用0填充没有覆盖范围的垃圾箱

如何在Python中实现高效地支持字典和堆操作的缓存?

如何通过特定导入在类中执行Python代码

Wagail:当通过外键访问索引页时,如何过滤索引页的子项

具有数值数组问题的递归矩阵构造(广播?)