Python 防止海龟离开屏幕?

Python 防止海龟离开屏幕?,python,turtle-graphics,Python,Turtle Graphics,在这个程序中,用户可以使用箭头键控制乌龟,但如何防止它们离开屏幕 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() 询问w

在这个程序中,用户可以使用箭头键控制乌龟,但如何防止它们离开屏幕

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()
询问wn屏幕变量,找出窗口的高度和宽度(如果您还不知道),然后修改h1以防止海龟在这些限制之外游荡。下面是一个简单的示例,可在事后进行检查,并在不需要时撤消移动:

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()
你可能会想对它稍加修饰和润色