python Pygame:即使函数在while循环中也只运行一次

hgc7kmma  于 2022-12-25  发布在  Python
关注(0)|答案(1)|浏览(198)

在我的pygame脚本中,我有一个函数来处理一些必须在while循环中使用的图像。问题是我只想对每个图像运行一次函数。因此,我想运行self.convert_img(self.img_one)一次,然后继续运行self.convert_img(self.img_two),直到所有图像都处理完毕。之后,我想停止函数,以便我可以更改场景。
下面是我的代码的一个模拟:

import pygame

class Main:
    def __init__(self):
        pygame.init()

        self.window = pygame.display.set_mode((0,0), pygame.FULLSCREEN)
        self.clock = pygame.time.Clock()

        self.count = 5

        # Load Images
        self.img_one = pygame.image.load(os.path.join("images", "img_one.png"))
        self.img_two = pygame.image.load(os.path.join("images", "img_two.png"))

    def run(self):
        while True:
            for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_ESCAPE:
                        pygame.quit()
                        sys.exit()
      
            img_one_transorm = self.convert_img(self.img_one)
            img_two_transorm = self.convert_img(self.img_two)
            ## img three transform

            self.clock.tick(30) 

    def convert_img(self, arg1):    
        self.window.blit(arg1, convert_img_rect)
        
        pygame.display.update()

        if self.count > 0:
            ## convert image function
a64a0gku

a64a0gku1#

创建一个递增1的计数,然后创建一堆if语句,例如:

if count == 1:
    img_one_transorm=self.convert_img(self.img_one)
    count+=1
elif count == 2:
    img_two_transorm=self.convert_img(self.img_two)
    count+=1

我的理解是否正确?

相关问题