2017-12-20 3 views
-3

이 프로그램에서 사용자는 화살표 키를 사용하여 거북이를 제어 할 수 있지만 화면에서 이탈하지 못하게하려면 어떻게해야합니까? 그 한계의 외부 방황에서 거북을 방지하기 위해 h1()을 수정 한 후 (당신이 이미 그것을 모르는 경우) 및거북이가 화면에서 나가지 않도록 하시겠습니까?

def h1(): 
     kjr.forward(20) 
    def h2(): 
     kjr.right(45) 
    def h3(): 
     kjr.left(45) 
    wn.onkey(h1, 'Up') 
    wn.onkey(h2, 'Right') 
    wn.onkey(h3, 'Left') 
    wn.listen() 
    wn.mainloop() 

답변

0

은 윈도우의 높이와 폭을 찾기 위해 wn 화면 변수를 심문. 당신은 가능성이 낸 싶을 것이다

from turtle import Turtle, Screen 

def h1(): 
    kjr.forward(20) 

    x, y = kjr.position() 

    if -width < x < width and -height < y < height: 
     return 

    kjr.undo() 

def h2(): 
    kjr.right(45) 

def h3(): 
    kjr.left(45) 

wn = Screen() 

width, height = wn.window_width()/2, wn.window_height()/2 

kjr = Turtle('turtle') 

wn.onkey(h1, 'Up') 
wn.onkey(h2, 'Right') 
wn.onkey(h3, 'Left') 

wn.listen() 
wn.mainloop() 

및 폴란드어이 조금 다음은 사후 검사하고 경우에 바람직하지 않은 행동을 실행 취소하는 간단한 예입니다.

관련 문제