Змеиная игра на Python с использованием графической ошибки Turtle - PullRequest
0 голосов
/ 08 февраля 2019

Итак, я пытался развить это руководство о том, как создать игру Snake с использованием графики Turtle с Python: https://www.youtube.com/watch?v=rrOqlfMujqQ&ab_channel=ChristianThompson По сути, я не могу заставить "змею" действительно двигаться.Я получаю серый экран со змеей, и он застрял.(Предполагается, что при нажатии кнопки «w / s / d / a»).

Полученная ошибка:
raise Terminator turtle.Terminator

И программа, которую я написал:

import turtle
import time

delay = 0.1

# Set up Screen
wn = turtle.Screen()
wn.title("Snake Game By Aviv Sabati")
wn.bgcolor("gray")
wn.setup(width=600, height=600)
wn.tracer(0)

# Snake Head
head = turtle.Turtle()
head.speed(0)
head.shape("square")
head.color("green")
head.penup()
head.goto(0,0)
head.direction = "stop"

# functions
def go_up():
    head.directin = "up"

def go_down():
    head.directin = "down"

def go_right():
    head.directin = "left"

def go_left():
    head.directin = "right"

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

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

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

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

#Keybord binding

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

#Main Game Loop

while True:
    wn.update()

    move()

    time.sleep(delay)

wn.mainloop()

1 Ответ

0 голосов
/ 08 февраля 2019

Вы неправильно определили "direction" как "directin" в следующих функциях "go_up", "go_down", "go_right" и "go_left".Я также заметил, что ваш «go_left» устанавливает направление вправо, а «go_right» устанавливает его влево.

Раздел «go direction» вашего кода должен выглядеть следующим образом:

def go_up():
    head.direction = "up"

def go_down():
    head.direction = "down"

def go_right():
    head.direction = "right"

def go_left():
    head.direction = "left"
...