如何在 Python / PyGame 中增加 Alpha 遮罩的大小?
How can I increase the size of my Alpha mask in Python / PyGame?
我正在使用 Pygame 创建一个 2D 地牢爬虫,我想使用主角作为光源(这样你只能看到你周围的一小部分地牢)。我已经创建了一个 alpha 蒙版,但无论我制作多大的 alpha 蒙版,它都不会对光源的大小产生任何影响,而且它太小了。在 PyGame 中是否有更好的方法来执行此操作,还是我忽略了什么?
这是我的测试代码:
import pygame
pygame.init()
screen = pygame.display.set_mode((819, 614))
background = pygame.image.load('Test.png')
light = pygame.image.load('Light_Source.png')
overlay_colour = [73, 92, 115]
while True:
for e in pygame.event.get():
if e.type == pygame.QUIT:
break
else:
screen.blit(background, (0, 0))
overlay = pygame.surface.Surface((819, 614))
overlay.fill(overlay_colour)
overlay.blit(light, (300, 250))
screen.blit(overlay, (0, 0), special_flags=pygame.BLEND_RGBA_SUB)
pygame.display.flip()
continue
break
这是我的测试屏幕 (Test.png):
这是我的 alpha 蒙版目前的样子:
这是我的 alpha 掩码 (Light_Source.png):
如您所见,它非常蹩脚。但是增加 Light_Source.png 文件的尺寸没有效果,扩展 alpha 渐变以填充更多图像也没有效果。我不明白为什么这行不通。我是否用错误的颜色填充了叠加层?谁能看出问题?或者有更好的方法吗?
我不知道为什么它不适合你。我刚刚将文件更改为
并且输出是
我修改后的对比:
我正在使用 Pygame 创建一个 2D 地牢爬虫,我想使用主角作为光源(这样你只能看到你周围的一小部分地牢)。我已经创建了一个 alpha 蒙版,但无论我制作多大的 alpha 蒙版,它都不会对光源的大小产生任何影响,而且它太小了。在 PyGame 中是否有更好的方法来执行此操作,还是我忽略了什么?
这是我的测试代码:
import pygame
pygame.init()
screen = pygame.display.set_mode((819, 614))
background = pygame.image.load('Test.png')
light = pygame.image.load('Light_Source.png')
overlay_colour = [73, 92, 115]
while True:
for e in pygame.event.get():
if e.type == pygame.QUIT:
break
else:
screen.blit(background, (0, 0))
overlay = pygame.surface.Surface((819, 614))
overlay.fill(overlay_colour)
overlay.blit(light, (300, 250))
screen.blit(overlay, (0, 0), special_flags=pygame.BLEND_RGBA_SUB)
pygame.display.flip()
continue
break
这是我的测试屏幕 (Test.png):
这是我的 alpha 蒙版目前的样子:
这是我的 alpha 掩码 (Light_Source.png):
如您所见,它非常蹩脚。但是增加 Light_Source.png 文件的尺寸没有效果,扩展 alpha 渐变以填充更多图像也没有效果。我不明白为什么这行不通。我是否用错误的颜色填充了叠加层?谁能看出问题?或者有更好的方法吗?
我不知道为什么它不适合你。我刚刚将文件更改为
并且输出是
我修改后的对比: