我目前在使用python 2.7.5和pygame创建的paint程序的undo / redo遇到了一些问题。这是我的代码:
if e.type == MOUSEBUTTONUP:
if e.button == 1:
if canvas.collidepoint(mx,my):
image = screen.copy()
undo.append(image)
toolH.append(tool)
if undoRect.collidepoint(mx,my) and mb[0] == 1:
if len(undo)>0 and len(toolH)>0:
screen.blit(undo[-1],(0,0))
redo.append(undo[-1])
del(undo[-1])
tool = toolH[-1]
del(toolH[-1])
print(toolH)
if redoRect.collidepoint(mx,my) and mb[0] == 1:
if len(redo)>0:
screen.blit(redo[-1],(0,0))
undo.append(redo[-1])
del(redo[-1])
这是在我的事件循环中。基本上,当我单击我的撤消工具时,循环删除一个存储的图像,但不会blit图像。重做时也会出现此问题。此外,当我在单击撤消和重做之间交替时,两个按钮最终都会停止工作,但我的程序不会崩溃。任何帮助,将不胜感激。我唯一要问的是请保持概念简单,因为我是初学者,我还在学习python谢谢。