Отменить шаги в Pygame

Мне было интересно, как отменить шаги рисования в Python / Pygame. В основном я заставлял мышь рисовать линии, и когда я нажимаю кнопку отмены Rect, я хочу, чтобы экран вернулся в исходное состояние (до нажатия мыши). Вот мой код, но он не работает.

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, поэтому, пожалуйста, не торопитесь.


person bahaaz    schedule 29.01.2012    source источник


Ответы (1)


Вам просто нужно сохранить кадры, когда пользователь взаимодействует с приложением.

Например, в демонстрационном приложении для рисования, которое я написал с помощью opengl, я использовал список с максимум 20 элементами и обновлял его, когда пользователь запускал новое действие.

Если пользователь щелкает по экрану, сохранить текущий кадр в список. Если пользователь перестанет нажимать, сохраните новый фрейм. Затем, когда вам нужно вернуться, вам просто нужно взять последний элемент вашего списка и нарисовать его на экране.

person kechap    schedule 29.01.2012
comment
Хорошо, это будет выглядеть так? code Copy = [copy1, copy2, copy3, copy4], если mb [0] == 1 и omb [0] == 0: copy1 = screen.copy () и т. Д. code - person bahaaz; 30.01.2012