gpt4 book ai didi

python - 在 Pygame 中制作半透明暂停背景屏幕

转载 作者:行者123 更新时间:2023-12-01 06:28:50 24 4
gpt4 key购买 nike

我想知道是否有人能够帮助我解决我的问题。目前,我想每次按下某个键时显示一个暂停屏幕,但结果屏幕总是完全透明或不透明,并且想知道是否有任何方法可以调整以下代码为了让这个梦想成为现实。

这里是调用暂停屏幕的地方:

if event.key == pygame.K_p:

notPaused = False
#print("Obtained")
pause = Pause(self.pauseScreen)
while notPaused == False:
#print("Received")

notPaused = pause.processEvents()
print(str(notPaused))
pause.displayFrame(self.pauseScreen)

clock = pygame.time.Clock()

clock.tick(60)

以下是暂停屏幕的显示方式:

screen.fill(constants.BLACK)
font = pygame.font.SysFont("serif", 25)

for counter in range(1,5):

text = font.render(self.options[counter-1], True, constants.WHITE)
center_x = 150
center_y = (counter * 120) - (text.get_height() // 2) + (self.pointer.image.get_height() // 2)
screen.blit(text, [center_x, center_y])

self.active_sprite_list.draw(screen)

pygame.display.flip()

对于任何想知道的人,我有时会尝试使用 RGBA 值(0,0,0,125)将 BLACK 替换为 ABLACK

最后,这是屏幕初始化为暂停屏幕的地方:

self.size = [constants.SCREEN_WIDTH, constants.SCREEN_HEIGHT]
self.pauseScreen = pygame.Surface(self.size,pygame.SRCALPHA,32)

感谢任何和所有帮助。

最佳答案

您应该将暂停屏幕构建为单独的表面。这个命令:screen.fill(constants.BLACK)几乎可以确保你永远不会获得50%的透明度(因为之前屏幕上的所有内容都被涂上了黑色)。

为暂停屏幕构建一个新表面,将其填充为黑色,添加文本;然后使用类似 my_pause_surface.set_alpha(128) 的东西使整个表面 50% 透明,然后将其位图传输到游戏的其余部分之上。

以下是另一个问题中的一些有用信息:Draw a transparent rectangle in pygame

关于python - 在 Pygame 中制作半透明暂停背景屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60000954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com