python - 在 PyGame 中,如何在不使用 sleep 功能的情况下每 3 秒移动一次图像?

标签 python pygame

最近我学习了一些基本的 Python,所以我正在使用 PyGame 编写一个游戏来提高我的编程技能。

在我的游戏中,我想每 3 秒移动一个怪物的图像,同时我可以用鼠标瞄准它并单击鼠标射击它。

一开始我尝试使用time.sleep(3),结果发现它暂停了整个程序,3秒内无法点击射击怪物。

那么你有什么解决办法吗?

提前致谢! :)


终于在大家的帮助下解决了这个问题。太感谢了! 这是我的部分代码:

import random, pygame, time

x = 0
t = time.time()
while True:

    screen = pygame.display.set_mode((1200,640))
    screen.blit(bg,(0,0))

    if time.time() > t + 3:
        x = random.randrange(0,1050)
        t = time.time()

    screen.blit(angel,(x,150))

    pygame.display.flip() 

最佳答案

Pygame 有一个时钟类,可以用来代替 python 时间模块。

这是一个用法示例:

clock = pygame.time.Clock()

time_counter = 0

while True:
    time_counter = clock.tick()
    if time_counter > 3000:
        enemy.move()
        time_counter = 0

关于python - 在 PyGame 中,如何在不使用 sleep 功能的情况下每 3 秒移动一次图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24109410/

相关文章:

python - 使用 TensorFlow Dataset API 的纪元计数器

python - python 可以有没有 "self"作为第一个参数的类或实例方法吗?

python - 当 rect.x 变化 <1 时, Sprite 不会向右移动

Python Pygame 新手代码显示空白屏幕

python - PyGame:每次移动鼠标时计时器都会重置

python - Pygame 碰撞不起作用

python - 如何使用 Flask 将字典内容显示到网页中

Python Pydantic 错误 : TypeError: __init__() takes exactly 1 positional argument (2 given)

python - 拒绝读取Python文件的部分内容

python - 点击图片无效