我试图找到一种方法来实现这一点,当我按住一个键时,玩家将不断移动,或者只是让玩家不断地使用龟图形向前移动(我确实安装了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()
答案 0 :(得分:1)
您只需将wn
添加到
wn.onkey(forward, 'Up')
wn.onkey(left, 'Left')
wn.onkey(right, 'Right')
wn.listen()
wn.mainloop()
我希望这会有所帮助!
答案 1 :(得分:0)
我建议您阅读this post on repeating key events并首先确定您的操作系统是否提供重复键,以及您是否可以/想要调整它和/或如何将其关闭以实现自己的重复。该链接包含在龟中实现您自己的密钥重复行为的代码。
我已经重新编写了下面的代码并且密钥对我来说很好,因为我的操作系统(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