我想通过使用向上和向下的箭头在Pong游戏中移动一个桨。我通过一个事件处理循环来做这件事。下面是事件处理循环的代码:Pygame雪碧没有更新
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
简而言之,更新基本上是矩形的桨的函数根据点击向上或向下箭头的次数将矩形的左上角移动到新的y位置。每个向上或向下箭头在正方向或负方向上递增桨距10。但是,在我的程序中,当我向上或向下按下时,桨没有移动。谁能告诉我为什么?此外,在按住向上或向下键的同时,是否可以移动桨叶,而不是多次按下它来移动桨叶?
您可以发布完整程序的源代码吗? –
到目前为止您尝试了哪种调试?事件处理程序中的任何打印语句,以验证是否已达到坐标调整逻辑? –
我在事件驱动的循环中添加了打印语句,以查看它是否会识别键和键的事件。当我按下按键时它会打印出来,但桨不会移动,这非常令人困惑。 –