防止乌龟离开屏幕?
Prevent turtle from leaving screen?
在这个程序中,用户可以使用方向键控制海龟,但是如何防止它们离开屏幕?
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
屏幕变量以找出您的 window 的高度和宽度(如果您还不知道)然后修改 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()
您可能需要稍微润色一下。
在这个程序中,用户可以使用方向键控制海龟,但是如何防止它们离开屏幕?
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
屏幕变量以找出您的 window 的高度和宽度(如果您还不知道)然后修改 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()
您可能需要稍微润色一下。