I';我正试图用python编写一个带有乌龟图形的游戏,但是运动';它坏了

I';我正试图用python编写一个带有乌龟图形的游戏,但是运动';它坏了,python,turtle-graphics,Python,Turtle Graphics,这就是我到目前为止所做的: import time import random #Window wn = turtle.Screen() wn.title("Turtle Game") wn.bgcolor("black") wn.setup(width=600, height=600) wn.tracer(0) #Player's character player = turtle.Turtle() player.speed(0) player.shape("square") player

这就是我到目前为止所做的:

import time
import random

#Window
wn = turtle.Screen()
wn.title("Turtle Game")
wn.bgcolor("black")
wn.setup(width=600, height=600)
wn.tracer(0)

#Player's character
player = turtle.Turtle()
player.speed(0)
player.shape("square")
player.color("white")
player.penup()
player.goto(0,0)
player.direction = "stop"

#Player's movement
def go_up():
    if player.direction != "down":
        player.direction = "up"

def go_down():
    if player.direction != "up":
        player.direction = "down"

def go_left():
    if player.direction != "right":
        player.direction = "left"

def go_right():
    if player.direction != "left":
        player.direction = "right"

def move():
    if player.direction == "up":
        y = player.ycor()
        player.sety(y + 20)

    if player.direction == "down":
        y = player.ycor()
        player.sety(y - 20)

    if player.direction == "left":
        x = player.xcor()
        player.setx(x - 20)

    if player.direction == "right":
        x = player.xcor()
        player.setx(x + 20)

#Listen for keypresses
wn.listen()
wn.onkeypress(go_up, "w")
wn.onkeypress(go_down, "s")
wn.onkeypress(go_left, "a")
wn.onkeypress(go_right, "d")

目前,我所得到的只是窗口中的一个空白屏幕。“窗口”似乎工作正常,但除此之外,没有其他东西出现。老实说,我不知道为什么会发生这种情况,所以我转向StackOverflow寻求帮助。

关于代码的一些要点:

  • 我不得不在开始时添加
    import-turtle
    ,以使用
    turtle
    模块

  • 窗户打开后立即关上。我必须在末尾添加
    wn.exitonclick()
    ,以保持窗口打开

  • 从不调用
    move()
    函数。更新播放机方向后,我必须在
    向上移动
    向下移动
    向左移动
    向右移动
    中添加对
    移动()的调用

  • 您可以通过设置
    wn.tracer(0)
    来禁用跟踪。按照,无需跟踪,您必须使用
    turtle.update()
    手动刷新窗口。我将此调用添加到
    move()
    函数的末尾。或者,您可以使用
    wn.tracer(1)
    在每次更改时自动刷新屏幕

    诚然,文档对
    0
    的影响并不十分清楚

  • 将这些更改应用到代码中会给我一个窗口,在这个窗口中,我可以使用w/a/s/d在海龟周围移动

    另一个注意事项:我不清楚您在
    go
    中的
    if
    语句中试图做什么。。。功能。在
    go\u up()
    中,仅当当前没有
    向下时,才将方向设置为
    up
    。这样做的效果是,当我向下移动海龟时,我不能再次向上移动它,除非我通过
    向左走()
    /
    向右走()
    。这似乎很奇怪。如果方向还不是
    向上
    ,您可能只想更新到
    向上
    ?例如:

        if player.direction != "up":
            player.direction = "up"