0

我正在制作一个基本的pygame,我想知道是否有人可以帮助我

所以经过一段时间后,电源会向下滚动屏幕,但我无法让它工作

这是我使用的方法:

def random_event(self):
    self.force_img_r = self.force_img.get_bounding_rect()
    self.rnd_x = random.randint(5,315)
    self.force_img_r.x = self.rnd_x
    self.force_img_r.y += 3
    screen.blit(self.force_img,(self.rnd_x, self.force_img_r.y))

它所做的只是图像闪烁一瞬间然后什么都没有

谁能告诉我为什么它不起作用!?

4

1 回答 1

-1

在 pygame 中,您通常有一个主循环,在每次迭代时都会清理屏幕,这可能就是为什么您只会看到闪烁、绘制并在下一个循环中再次清理的原因。

为了解决这个问题,在 pygame 事件中应该只更新游戏状态,并根据当前状态在每个循环上绘制屏幕。

一些伪代码:

# Main Loop
while True:

    # Process events
    #   -> Update game state

    # Clean screen
    # Draw current state to the screen

    # Update or flip display

    # Keep framerate (clock.Tick())

您可以调用外部类/方法/函数,但您应该始终将此结构保留在主循环中。

于 2013-06-21T14:50:20.313 回答