【发布时间】:2013-11-23 01:18:18
【问题描述】:
我正在尝试编写一个 Pong 游戏,我可以在其中使用向上和向下箭头移动球拍。我创建了一个 Paddle 对象,每次按下向上键时都会更新给定的数量(在下面的代码中作为参数“num”传递)。我想要做的是允许用户按住向上按钮,这将导致桨持续向上移动。我尝试在 while 循环中编写此事件处理,但我陷入了无限循环。下面是代码:
for event in PE.get():
if event.type == PG.KEYDOWN:
keystate = PG.key.get_pressed()
if event.key == PG.K_ESCAPE:
done = True
while keystate[PL.K_UP]:
rightPaddle.update(-20)
if event.type == PG.QUIT:
done = True
下面是 Paddle 对象的代码:
class Paddle(object):
def __init__(self, x, y):
self.topleftx = x
self.toplefty = y
self.width = 15
self.height = 100
def draw(self, surface):
rect = PR.Rect(self.topleftx, self.toplefty, \
self.width, self.height)
surface.fill(WHITE, rect)
def update(self, num):
self.toplefty += num
我检查了有关此主题的其他 stackoverflow 问题,这就是我找到 PG.key.getPressed() 方法的方式,但其他答案建议使用我不确定如何使用的“精灵”。任何人都可以就如何执行此任务提供一些建议吗?
【问题讨论】: