전문가들은 거북이 애니메이션이 바람직하지 않은 속도로 실행되는 상황에 자주 직면합니다. Tracer() 메서드와 그 안의 다양한 숫자를 실험하는 것이 불충분해 보일 수 있지만 간단하면서도 효과적인 해결책은 다른 곳에 있습니다.
Turtle을 사용하여 정상적인 애니메이션 속도를 얻으려면 while True: 또는 sleep()은 이벤트 중심 환경 내에서 구성됩니다. 이러한 기술은 거북이에게 적합하지 않습니다. 대신 Turtle 타이머 이벤트를 활용하면 보다 효율적인 접근 방식을 제공할 수 있습니다.
다음 코드는 타이머 기반 풍차 애니메이션을 구현하는 방법을 보여줍니다.
from turtle import Screen, Turtle
def rectangle(t):
t.forward(50)
t.left(90)
t.backward(5)
t.pendown()
for _ in range(2):
t.forward(10)
t.right(90)
t.forward(120)
t.right(90)
t.penup()
def windmill(t):
for _ in range(4):
t.penup()
rectangle(t)
t.goto(0, 0)
screen = Screen()
screen.tracer(0)
turtle = Turtle()
turtle.setheading(90)
def rotate():
turtle.clear()
windmill(turtle)
screen.update()
turtle.left(1)
screen.ontimer(rotate, 40) # adjust speed via second argument
rotate()
screen.mainloop()
ontimer() 메서드를 활용하면 각 애니메이션 프레임 사이의 시간 간격을 밀리초 단위로 나타내는 두 번째 인수를 통해 애니메이션 속도를 정밀하게 제어할 수 있습니다. 이 값을 조정하면 속도를 원하는 수준으로 미세 조정할 수 있어 부드럽고 시각적으로 매력적인 애니메이션을 제공할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3