【问题标题】:Turtle() only listening to onkeypress one time, not repeating keysTurtle() 只听一次 onkeypress,不重复按键
【发布时间】:2021-07-18 19:15:56
【问题描述】:

所以我正在制作蛇,每当我按下按键时,它就可以正常工作一次。我可以上一次,下一次,左右一次。但是如果我想再次使用这个键改变方向我不能,有人知道为什么吗?这是我的代码(也是 mainloop 导致我的海龟不显示):

from turtle import *
from turtle import Screen
from snake import Snake
import random 
import time 

screen = Screen() ## the window that shows up

screen.setup(800,800) ## height and width to 800
screen.bgcolor("black") ## black GUI
screen.title("G5's Snake Game") ## name our game 
screen.tracer(0) ## eliminates delay from snake, molds it all into one picture

snake = Snake()

screen.onkeypress(snake.up, "Up")
screen.onkeypress(snake.down, "Down")
screen.onkeypress(snake.left, "Left")
screen.onkeypress(snake.right, "Right")
screen.listen()
screen.listen()


gameon = True 

while gameon: ## make this snake.move() method !    
    screen.update()
    time.sleep(0.1)
    snake.move()




screen.exitonclick()

【问题讨论】:

    标签: python user-interface screen turtle-graphics listen


    【解决方案1】:
    
    screen.onkeypress(snake.up, "Up")
    screen.onkeypress(snake.down, "Down")
    screen.onkeypress(snake.left, "Left")
    screen.onkeypress(snake.right, "Right")
    screen.listen()
    screen.listen()
    
    

    上面的块需要移动到一个while循环中。 现在,它会检查用户是否按下过某个键。如果他们这样做了,它将向下移动到 while 循环。

    while gameon:
        screen.onkeypress(snake.up, "Up")
        screen.onkeypress(snake.down, "Down")
        screen.onkeypress(snake.left, "Left")
        screen.onkeypress(snake.right, "Right")
        screen.listen()
        screen.listen()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-30
      • 2020-08-29
      • 1970-01-01
      • 2019-03-24
      • 2012-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多