마우스 클릭 이벤트에 따라 움직이는 거북이 클래스 만들어보기
06 Sep 2018 | Python turtle마우스 클릭 이벤트에 따라 움직이는 거북이 클래스 만들어보기
거북이 클래스 만들기
import turtle class MyTurtle(turtle.Turtle): def __init__(self): super(MyTurtle, self).__init__() self.shape("turtle") self.shapesize(2, 2) self.getscreen().bgcolor("yellow") t = MyTurtle() while True: pass
마우스 클릭 이벤트에 반응하기
거북이가 이동하고 있는 도중에 마우스 클릭 이벤트가 온 경우를 처리하기 위한 코드가 포함되어 있습니다.
import turtle class MyTurtle(turtle.Turtle): def __init__(self): super(MyTurtle, self).__init__() self.shape("turtle") self.shapesize(2, 2) self.color("purple") self.window = turtle.Screen() self.window.onclick(self.on_mouse_clicked) self.is_moving = False def loop(self): self.window.mainloop() def on_mouse_clicked(self, x, y): print("clicked ({0}, {1})".format(x, y)) if self.is_moving is True: return self.is_moving = True self.goto(x, y) self.is_moving = False t = MyTurtle() t.loop()
Lock 설정/해제 방식으로 마우스 클릭 이벤트 처리해보기
import turtle class MyTurtle(turtle.Turtle): def __init__(self): super(MyTurtle, self).__init__() self.shape("turtle") self.shapesize(2, 2) self.color("purple") self.window = turtle.Screen() self.window.onclick(self.on_mouse_clicked) self.is_moving = False def loop(self): self.window.mainloop() def on_mouse_clicked(self, x, y): if self.acquire_lock(): self.goto(x, y) self.release_lock() def acquire_lock(self): if self.is_moving is True: return False self.is_moving = True return True def release_lock(self): self.is_moving = False t = MyTurtle() t.loop()