Pygame 中的撤消步骤

发布于 2024-12-29 19:39:30 字数 392 浏览 1 评论 0原文

我想知道如何撤消 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 相当陌生,所以请慢慢来。

I was wondering how I would undo drawing steps in Python/Pygame.
Basically I have made the mouse draw lines, and when I click my undo Rect, I want the screen to revert back to its original state (before mouse was pressed).
Here is my code but it does not work well.

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)

can someone who knows what I mean please give me ideas on how to make an undo last drawing button?

Thank you.

Ps. I am fairly new to pygame/python so please go a little slowly.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

轻许诺言 2025-01-05 19:39:30

您只需要在用户与应用程序交互时保存帧即可。

例如,在我用 opengl 编写的演示绘画应用程序中,我使用了最多包含 20 个元素的列表,并且当用户开始新操作时我正在更新它。

如果用户单击屏幕,则将当前帧保存到列表中。如果用户停止单击保存新帧。然后,当您需要返回时,您只需取出列表的最后一个元素并将其绘制到屏幕上即可。

You just need to save the frames when the user interacts with the application.

For example in a demo paint application I wrote with opengl I used a list with 20 elements max and I was updating it when the user started a new action.

If user clicks to the screen, save the current frame to the list. If user stop clicking save the new frame. Then, when you need to go back you just have to take the last element of your list and draw it to the screen.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文