如何防止Python乌龟中的按键被按下?

问题描述 投票:0回答:1

我正在尝试制作一个游戏,其中有两只在蟒蛇龟中移动的乌龟。我使用了 onkey() 命令来让海龟移动。我想让它们同时移动,因为游戏有点像一场比赛,但只要你按住一个键,另一只乌龟就会停止移动,这会带来不公平的优势。这是用于移动乌龟的代码

screen.onkey(p1_up, 'w')
screen.onkey(p1_down, 's')
screen.onkey(p1_left, 'a')
screen.onkey(p1_right, 'd')
screen.listen()

screen.onkey(p2_up, 'Up')
screen.onkey(p2_down, 'Down')
screen.onkey(p2_left, 'Left')
screen.onkey(p2_right, 'Right')
screen.listen()

这是一个函数示例(如果有帮助的话)

def p1_left():
  p1.setheading(180)
  p1.forward(20)
  p1.check_collision()
  p1.check_victory()

我想让它这样,如果你按住任何一个键,海龟要么只移动一步,要么就不动。我是编码新手,所以除了使用 onkeypress()onkeyrelease() 命令

之外,我没有尝试过任何东西
python keyboard turtle-graphics python-turtle
1个回答
0
投票

您可以编写自定义函数,在其中定义问题中描述的行为。要实现该行为,您可以使用标志。

p1LeftStatus = False

def p1_left():
    global p1LeftStatus

    if not p1LeftStatus:
       "Your code goes here"
        p1LeftStatus = True

 def p1_left_released():
   global p1LeftStatus
   p1LeftStatus = False

按下按键时:调用一个函数,将标志设置为 True。释放按键时:状态重置。这将确保海龟每次击键只能移动一次,即使按住按键也是如此。

我希望这能回答您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.