【发布时间】:2021-06-22 20:06:39
【问题描述】:
我刚刚开始尝试自学 Pygame 零,因为我们在下学期的课堂上做一个关于它的作业,我想做好准备。
我试着做一个简单的程序,让你的飞船不断地向前加速,你可以使用左右箭头来转动它。问题是我的代码有两种错误。首先,程序刚开始时,船是朝上的,但它不断向右移动,没有什么可以阻止它,即使它应该在与船相同的方向加速。此外,当我尝试按左右箭头转动它时,程序冻结,然后停止响应。我已尽最大努力修复它,但网上关于 Pygame Zero 的信息很少。如果有人可以帮助我,我将不胜感激。
这是我的代码:
import pgzrun
ship=Actor('ship')
WIDTH = 800
HEIGHT = 450
def draw():
screen.clear()
screen.blit("background",(WIDTH,HEIGHT))
screen.fill((255, 255, 255))
ship.draw()
def on_key_down(key):
if key == keys.LEFT:
left = True
while left == True:
ship.angle += 10
if key == keys.RIGHT:
right = True
while right == True:
ship.angle -= 10
def on_key_up(key):
if key == keys.LEFT:
left = False
if key == keys.RIGHT:
right = False
def update():
if ship.angle >= 350:
ship.x += 0
ship.y -= 3.5
elif ship.angle >= 330:
ship.x += 0.1
ship.y -= 3.3
elif ship.angle >= 310:
ship.x += 0.3
ship.y -= 3.1
elif ship.angle >= 290:
ship.x += 0.5
ship.y -= 2.9
elif ship.angle >= 270:
ship.x += 0.7
ship.y -= 2.7
elif ship.angle >= 250:
ship.x += 0.9
ship.y -= 2.5
elif ship.angle >= 230:
ship.x += 1.1
ship.y -= 2.3
elif ship.angle >= 210:
ship.x += 1.3
ship.y -= 2.1
elif ship.angle >= 190:
ship.x += 1.5
ship.y -= 1.9
elif ship.angle >= 170:
ship.x += 1.7
ship.y -= 1.7
elif ship.angle >= 150:
ship.x += 1.9
ship.y -= 1.5
elif ship.angle >= 130:
ship.x += 2.1
ship.y -= 1.3
elif ship.angle >= 110:
ship.x += 2.3
ship.y -= 1.1
elif ship.angle >= 90:
ship.x += 2.5
ship.y -= 0.9
elif ship.angle >= 70:
ship.x += 2.7
ship.y -= 0.7
elif ship.angle >= 50:
ship.x += 2.9
ship.y -= 0.5
elif ship.angle >= 30:
ship.x += 3.1
ship.y -= 0.3
elif ship.angle >= 10:
ship.x += 3.3
ship.y -= 0.1
else:
ship.x += 3.5
ship.y -= 0
pgzrun.go()
【问题讨论】: