在Pygame中随机blitting

时间:2013-06-21 05:05:36

标签: python python-2.7 random 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))

所有这一切都是图像闪烁一瞬间然后什么都没有

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

1 个答案:

答案 0 :(得分:-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())

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