python - 随机生成图像

标签 python random pygame

我创建了这个随机生成一个点的函数,但因为它在我的游戏循环中,所以该点不会停留在原来的位置。我希望它生成一个点,然后等待 6 秒并随机生成另一个点,但第一个点仍然在那里。因为屏幕上同时发生其他事情,所以我无法使用 time.sleep(6)。任何解决此问题的帮助将不胜感激。

    def random_spawn():
        image_x = random.randrange(122, 476)
        image_y = random.randrange(90, 350)
        screen.blit(Green, (image_x, image_y))

最佳答案

不要使用time.sleep。一般来说,在游戏编程中,您永远不想出于任何原因使用 time.sleep

就您而言,您只需要经常检查计时器或时钟,如果时间到了,则运行您的生成函数。

这是典型的游戏循环:

while True:
    # get/handle player input
    # update game state
    # update sprites
    # draw background
    # draw sprites
    # flip display

就您而言,当您更新游戏状态时,您应该检查自上次生成随机 Sprite 以来已经过去了多少时间。如果超过 6 秒,则生成一个新的。

它看起来像这样:

if time.clock() - last_spawn_time > 6.0:
     random_spawn()

关于python - 随机生成图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30281320/

相关文章:

python - 如何在 msys2 上安装 pygame?

python - 如何在 pygame 中限制调整窗口大小

python - 如何在pygame中更改光标?

python - 确定描述符中的短运算符(+= like)用法

python - 无法将字典发送到 RabbitMQ(不可散列类型 : 'slice' )

python - 导入错误 : cannot import name Thread

java - 在 O(logn) 中打印二叉树中的随机元素

python - python中的random.choice([x, y, z]),为什么种子没有改变?

python - 在 scipy.optimize.minimize 中使用 "infinite bounds"?

java - 随机数的分布