如何每隔一定时间更改一个整数

2024-06-07 23:53:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个pygame代码,其中一个直升机精灵改变其图像3次,使其看起来像螺旋桨在移动。我想出了这样的办法:

if heli == 1:
    self.surf = pygame.image.load("Heli_1.png")
if heli == 2:
    self.surf = pygame.image.load("Heli_2.png")
if heli == 3:
    self.surf = pygame.image.load("Heli_3.png")

我需要让每个人都说。05秒,变量heli从1变为2,2变为3,然后3变为1。我试着查看时间模块,但找不到任何答案。 更新: 我尝试过使用time.sleep,但它只显示最后一个调用的图像(Heli_3)


Tags: 代码图像imageselfifpngloadpygame
2条回答

我想你想要的是模运算符(%)。您可以将其视为在除以两个数字时得到余数(有一些技术细节)。下面是一个快速示例,说明如何使用它。如果你愿意的话,时间甚至可以被游戏时间所取代

import time

class Animation:
    def __init__(self, imgs, delay):
        self.imgs = imgs
        self.delay = delay

    def __call__(self, time):
        # Get index to use
        frame = int(time / self.delay) % len(self.imgs)
        return self.imgs[frame];

helicopter = Animation(helicopter_imgs, 0.5);

while True:
    img_to_draw = helicopter(time.time());

您可以在此处找到更多信息: What is the result of % in Python?

问题的答案是使用时间模块:

import time
heli = 1
while True:
    self.surf = pygame.image.load(f"Heli_{heli}.png")
    pygame.time.wait(500)
    if heli == 3:
        heli = 0
    heli += 1

相关问题 更多 >

    热门问题