当我启动蛇程序时,屏幕冻结

时间:2020-07-24 19:17:08

标签: python-3.x

^我刚开始使用python尝试将蛇编码为游戏,从现在起我就拥有此代码

import turtle
import os

wn = turtle.Screen()
wn.bgcolor("black")
wn.title("Space Invaders")

border_pen = turtle.Turtle()
border_pen.speed(0)
border_pen.color("white")
border_pen.penup()
border_pen.setposition(-300,-300)
border_pen.pendown()
border_pen.pensize(3)
for side in range(4):
    border_pen.fd(600)
    border_pen.lt(90)
border_pen.hideturtle()

player = turtle.Turtle()
player.color("blue")
player.shape("triangle")
player.penup()
player.speed(0)
player.setposition(0, -250)
player.setheading(90)

playerspeed = 15

def move_left():
    x = player.xcor()
    x -= playerspeed
    if x < -280:
        x = - 280
    player.setx(x)

def move_right():
    x = player.xcor()
    x += playerspeed
    if x > 280:
        x = 280

    player.setx(x)

turtle.listen()
turtle.onkey(move_left(), "Left")
turtle.onkey(move_right, "Right")


delay = input("Press enter to finish.")

所有内容都在代码上工作,但问题是我看不到游戏,因为它始终在崩溃时显示“无响应”,然后我需要关闭它,你能帮我吗
我有一台64位笔记本电脑 但是我需要使用32bit来打开它,这就是为什么我尝试安装32bit却仍然无法正常工作的原因

1 个答案:

答案 0 :(得分:0)

您真的真的把我带到了这里。我找不到单个错误,但它死机了,但不是每个人都遇到。好的,我没有发现了一个错误:

首先将<?php hello(); ?>更改为turtle.onkey(move_left(), "Left")

我发现问题出在你的最后一行:

turtle.onkey(move_left, "Left")

我不太确定,但是我怀疑input()语句正在等待输入,导致其余程序冻结,直到按下Enter键为止。但这也关闭了程序。显然,这不是使窗口保持活动状态的正确选择。将此行替换为:

delay = input("Press enter to finish.")

现在您的程序不再冻结,但让我们移动蓝色三角形。