撤消/重做问题Python

时间:2014-01-23 23:32:05

标签: python pygame undo redo

我目前在使用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谢谢。

0 个答案:

没有答案