Pygame中的撤销步骤
我在想如何在Python/Pygame中撤销绘图步骤。简单来说,我让鼠标画线,当我点击撤销按钮时,我希望屏幕恢复到最初的状态(也就是在鼠标按下之前的样子)。这是我的代码,但效果不是很好。
copy=screen.copy()
if undoRect.collidepoint(mx,my) and mb[0]==1:
screen.blit(copy,(0,0))
if mb[0]==1 and omb[0]==1:
draw.line(screen,color,(omx,omy),(mx,my),5)
有没有人能理解我的意思,给我一些关于如何制作一个撤销最后绘图的按钮的建议?
谢谢。
附:我对pygame/python还比较陌生,所以请慢一点。
1 个回答
2
你只需要在用户与应用程序互动时保存画面。
比如我写的一个演示绘画应用,使用了opengl,我用了一个最多能存20个元素的列表,每当用户开始新的操作时就更新这个列表。
如果用户点击屏幕,就把当前的画面保存到列表里。如果用户停止点击,就保存新的画面。然后,当你需要回到之前的画面时,只需要从列表中取出最后一个元素,然后把它画到屏幕上。