【发布时间】:2013-11-23 05:55:27
【问题描述】:
我正在尝试使用向上和向下箭头在乒乓球游戏中移动桨。我通过一个事件处理循环来做到这一点。下面是事件处理循环的代码:
for event in PE.get():
if event.type == PG.KEYDOWN:
keystate = PG.key.get_pressed()
if event.key == PG.K_ESCAPE:
done = True
if keystate[PL.K_UP]:
rightPaddle.update(-10)
if keystate[PL.K_DOWN]:
rightPaddle.update(10)
if event.type == PG.QUIT:
done = True
更新功能如下图:
def update(self, move):
self.toplefty += move
这是 PaddleSprite 类:
def __init__(self, x, y):
PG.sprite.Sprite.__init__(self)
self.image = PG.Surface([15,100])
self.topleftx = x
self.toplefty = y
self.rect = self.image.get_rect
self.rect.move_ip(self.topleftx, self.toplefty)
def draw(self, surface):
surface.fill(PINK, self.rect)
def update(self, move):
self.toplefty += move
简单地说,paddle(本质上是一个矩形)的更新函数根据向上或向下箭头的点击次数将矩形的左上角移动到新的 y 位置。每个向上或向下箭头将桨叶在正方向或负方向上增加 10 的距离。但是,在我的程序中,当我向上或向下按下时,桨根本没有移动。谁能告诉我为什么?此外,是否可以在按住向上或向下键而不是多次按下来移动它时移动桨?
【问题讨论】:
-
你能发布完整程序的源代码吗?
-
到目前为止你尝试过什么样的调试?事件处理程序中是否有任何打印语句以验证是否已达到坐标调整逻辑?
-
我在事件驱动循环中添加了打印语句,以查看它是否能够识别按键向上和按键向下事件。按键确实打印出来了,但是拨片不动,很混乱。