버튼을 클릭 할 때 tkinter 창을 가로 질러 객체를 계속 이동시키는 contMove() 함수가 있습니다. 그러나이 함수를 두 번 이상 실행하는 버튼을 클릭하면 첫 번째 서브 루틴이 닫히지 않았기 때문에 속도가 빨라집니다. 왜냐하면 연속적으로 실행하기를 원하기 때문이며, 서로 위로 움직여 이동 속도를 높입니다. 속도를 높이기를 원하지 않습니다. 그래서 X 또는 Y 좌표가 변경되고 있는지를 테스트하는 체크를하고 싶습니다. 속도가 원하는 속도 이상으로 증가했는지 확인하십시오. 서브 루틴. 이것은 공통적 인 것처럼 보이지만 시간 모듈에 대한 모든 정보는 날짜와 시간 또는 time.sleep을 사용합니다. 그러나 운동을 멈출 수 없기 때문에 사용할 수 없습니다. 여기How do you say x> x + y가 z 초 후에 :?
def contMove(moving):
global a
global b
global X, Y
if moving:
a = a + X
b = b + Y
mover.place(x = a, y = b)
a, b, X, Y = edgeBounce(a, b, X, Y)
mover.place(x = a, y = b)
#would be here
mover.after(17, lambda: contMove(moving))
else:
return
변경'에 전화가 after'는 다음과 같이하고 있는지 그것은 도움이된다 :'mover.after (17, contMove, moving)'. –
혼란 스럽네요, 그걸 넣을 수 있어요? 나는 당신이 무엇을 의미하는지 모르겠다. – Feesih0ps
'mover.after (17, lambda : contMove (moving))'를 제거하고'mover.after (17, contMove, moving) '로 바꾼다. –