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 位笔记本电脑,但我需要使用 32 位打开它以及为什么我尝试安装 32 位但仍然无法工作请帮助我
解决方案
你真的把我带到了这里。我找不到一个错误,但它冻结了,但并不适合所有人。好的,我确实发现了一个错误:
改为第一turtle.onkey(move_left(), "Left")
。turtle.onkey(move_left, "Left")
我发现问题是你的最后一行:
delay = input("Press enter to finish.")
我不太确定,但我怀疑 input() 语句正在等待输入,导致程序的其余部分冻结,直到按下 Enter。但这也会关闭程序。显然不是让窗口保持活力的正确选择。将此行替换为:
wn.mainloop()
现在您的程序不应再冻结,但让我们移动蓝色三角形。
推荐阅读
- python - 使用 python 将 pandas 数据框导入 MS Access 表
- phone-number - 如何自动在线查找电话号码以查找我在 CSV 中拥有的大量姓名和地址?
- angular - 在 Angular 4 中检测 formGroup 和 formArray 中的 valueChange 的问题
- telegram - 电报`setTyping` API调用
- javascript - Remove a div from .get() request
- javascript - 有没有办法通过点击在 Javascript 切换文本中创建更大的代码块?
- c# - Unity 保存文件 - 锁定到移动设备
- node.js - 代理和节点休息客户端错误:'events.js:183 throw er;'
- java - JPA 属性表达式与使用“In”
- php - 自定义上传目录不会更改附件元