我正在尝试将alpha值的numpy数组应用于曲面。我可以这样做,但是在这个操作之后,曲面仍然是锁定的,这样我就无法将曲面blit到我的显示器上。在
下面是一个简单的测试用例,使用alpha数组g
,pickledhere。在
import pygame as pg
pg.init()
screen = pg.display.set_mode((600, 600))
s = pg.Surface((100, 100)).convert_alpha()
s.fill((126, 126, 126)) # make it grey
pxa = pg.surfarray.pixels_alpha(s) # reference the alpha values
pxa[::] = g # g is the array of alpha values
del pxa # shouldn't deleting the array be enough to unlock the surface?
s.unlock() # explicitly unlock for good measure
s.get_locked() # returns True
那么什么给予?无论如何,我尝试将该表面bliting到screen
,但是(可以预见的)我得到了一个关于s
仍然被锁定的错误。在
建议将是最受欢迎的!在
创建一个sprite类并将值放入更新函数中。这样,数组将在函数的作用域内创建和销毁。下面是一个示例,您可以通过按空格键使灰色块透明:
相关问题 更多 >
编程相关推荐