【问题标题】:Python, Turtle Graphics, Key bindingsPython,海龟图形,键绑定
【发布时间】:2017-10-21 20:25:14
【问题描述】:

我正在尝试找到一种方法,当我按住一个键时,玩家会不断移动,或者只是让玩家不断向前移动,只使用海龟图形,(我也安装了 pygame)

import turtle
from turtle import *

#Setup Screen
wn = turtle.Screen()
wn.setup(700,700)
wn.title("white")
wn.bgcolor("black")

#Create Player
player = turtle.Turtle()
player.penup()
player.shape("triangle")
player.color("white")

def forward():
    player.forward(20)

def lef():
    player.left(90)

def forward():
    player.right(90)

onkey(forward,"Up")
onkey(left,"Left")
onkey(right,"Right")

listen()

【问题讨论】:

  • 注意def lef():中可能缺少t

标签: python python-3.6 turtle-graphics


【解决方案1】:

您可以通过在开头添加wn 来解决它

wn.onkey(forward, 'Up')
wn.onkey(left, 'Left')
wn.onkey(right, 'Right')

wn.listen()
wn.mainloop()

我希望这会有所帮助!

【讨论】:

    【解决方案2】:

    我建议您阅读this post on repeating key events 并首先确定您的操作系统是否提供按键重复,以及您是否可以/想要调整它和/或如何将其关闭以实现您自己的。该链接包含在 turtle 中实现您自己的键重复行为的代码。

    我在下面重新编写了您的代码,并且按键重复对我来说很好,因为我的操作系统 (OSX) 实现了按键重复:

    from turtle import Turtle, Screen
    
    # Setup Screen
    wn = Screen()
    wn.setup(700, 700)
    wn.title('white')
    wn.bgcolor('black')
    
    # Create Player
    player = Turtle('triangle')
    player.speed('fastest')
    player.color('white')
    player.penup()
    
    def forward():
        player.forward(20)
    
    def left():
        player.left(90)
    
    def right():
        player.right(90)
    
    wn.onkey(forward, 'Up')
    wn.onkey(left, 'Left')
    wn.onkey(right, 'Right')
    
    wn.listen()
    wn.mainloop()
    

    在 OSX 中,我可以在系统偏好设置的键盘面板中控制速率(并将其关闭)。看看你的操作系统提供了什么。

    一些编程注意事项:避免以两种不同的方式导入同一个模块,这总是会导致混乱。如果您发现您在高重复率的键盘事件之间受到干扰,请考虑对所有三个事件处理程序进行以下操作:

    def forward():
        wn.onkey(None, 'Up')  # disable event in handler
        player.forward(20)
        wn.onkey(forward, 'Up')  # reenable event
    

    【讨论】:

      猜你喜欢
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      • 2018-03-19
      • 1970-01-01
      • 1970-01-01
      • 2018-05-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多