# 드로잉 시간 지연 제거 두 메서드 포함,
# L2P 중급/고급 연습용 예제.
# 이벤트, 이벤트 핸들러 함수,
# 이벤트 핸들러 함수 등록 절차,
# 이벤트 발생 수신 대기/감시 메카니즘 이해,
# 메인 루프 구성법
# tracer()와 delay() 메서드 사이의 차이점.
import turtle
win1 = turtle.Screen()
win1.tracer(2, 50)
# 마름모꼴은 거의 생겨나지 않음.
t1 = turtle.Pen()
# win1.delay(0)
# 약간의 마름모꼴 생겨남.
# 너무 빠르게 연속으로 그릴 때만.
def setupWindow():
win1.setup(600, 900)
win1.title("Hello OnClick! ^.^;")
def box1(x, y):
t1.pu()
t1.goto(x, y)
t1.pd()
for _ in range(4):
t1.fd(100)
t1.rt(90)
def main():
setupWindow()
win1.onclick(box1)
# 마우스 클릭 이벤트 핸들러 등록.
# 클릭 좌표값이 리턴 데이터로 생성되고
# 인자로 지정된 함수(box1)는 이 좌표값을
# 수신 처리해야 한다.
win1.listen()
# 이벤트 수신 대기
win1.mainloop()
main()
* * *
# 이하 참고용, 비교용 코드.
import turtle
win1 = turtle.Screen()
win1.setup(600, 900) # 아마도 이 줄에서 오타가 생겼을 수도. assign 문장이 아니다.
win1.title("Hello OnClick! ^.^;")
win1.tracer(2, 50)
t1 = turtle.Pen()
def box1(x, y):
t1.pu()
t1.goto(x, y)
t1.pd()
for _ in range(4):
t1.fd(100)
t1.rt(90)
win1.onclick(box1)
win1.listen()
win1.mainloop()
# 즐거운 프로그래밍!
# ^.^;
'Programming > Python' 카테고리의 다른 글
Free IDE - Thonny (0) | 2024.09.08 |
---|---|
turtle.pencolor() 함수 (0) | 2023.12.10 |
[ L2P ] 재귀 : 다른 방식의 루프 (0) | 2023.09.24 |
[ L2P ] random Module (0) | 2023.09.10 |
[ L2P ] OnKeyPress() (0) | 2023.08.20 |