【问题标题】:Prevent turtle from leaving screen?防止乌龟离开屏幕?
【发布时间】:2017-12-20 18:23:56
【问题描述】:

在这个程序中,用户可以使用方向键来控制海龟,但是如何防止它们离开屏幕呢?

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()

【问题讨论】:

    标签: python turtle-graphics


    【解决方案1】:

    询问您的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()
    

    您可能需要稍微修饰和润色一下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-11
      • 2020-09-03
      相关资源
      最近更新 更多