所以我试着在用PyGame完成一个关卡后淡出屏幕,然后再淡入。我的问题是只有fadeout()有效,而fadein()无效。调用fadein()时,屏幕会变黑几秒钟,然后突然显示下一级。我找不到问题,有什么想法吗?你知道吗
def fadeout():
fadeout = pg.Surface((screen_width, screen_height))
fadeout = fadeout.convert()
fadeout.fill(black)
for i in range(255):
fadeout.set_alpha(i)
screen.blit(fadeout, (0, 0))
pg.display.update()
def fadein():
fadein = pg.Surface((screen_width, screen_height))
fadein = fadein.convert()
fadein.fill(black)
for i in range(255):
fadein.set_alpha(255-i)
screen.blit(fadein, (0, 0))
pg.display.update()
你的问题是,你淡入黑屏,所以你看不到任何效果。上面画着黑色半透明
Surface
的黑屏仍然是黑色Surface
。你知道吗你应该渲染你的关卡的第一帧,然后在将
fadein
表面blit到屏幕上之前,将其Surface
blit到屏幕上。你知道吗这里有一个简单的例子,我一起黑。按键可从一个场景切换到下一个场景。你知道吗
通过将每个场景抽象到它自己的类中,并将场景更改委托给
Fader
类,我们可以让场景继续(或者添加一个简单的if
语句来防止这种情况),并在淡入时处理事件。你知道吗相关问题 更多 >
编程相关推荐