下落的雨滴显示不正常

我希望程序运行时能显示4排雨滴同时下落,但程序运行时只能看见一排雨滴下落,但如果我把self.rains.update()注释掉再运行程序,4排雨滴又正常显示了


import sys
import pygame
from rain import Rain

class Xiayu:
    '''创建窗体'''
    def __init__(self):
        pygame.init()

        self.screen = pygame.display.set_mode((800,600))
        self.screen_rect = self.screen.get_rect()
        pygame.display.set_caption("雨一直下")
        self.bj_color =(255,255,255)
        self.rains = pygame.sprite.Group()

        self._create_fleet()


    def run(self):
        while True:
            self.check_event()
            self.rains.update()
            self.screen_update()


    def check_event(self):
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()

    def screen_update(self):
        self.screen.fill(self.bj_color)
        self.rains.draw(self.screen)
        pygame.display.flip()


    def _create_fleet(self):
        rain = Rain(self)
        rain_width,rain_height = rain.rect.size
        ky_screen = self.screen_rect.width - (2 * rain_width)
        ky_number = ky_screen // (2 * rain_width)
        for n in range(4):
            for number in range(ky_number):
                rain = Rain(self)
                rain.x = rain_width + 2 * rain_width * number
                rain.rect.x = rain.x
                rain.rect.y = rain.rect.height + 2 * rain.rect.height * n
                self.rains.add(rain)







if __name__ == "__main__":
    a = Xiayu()
    a.run()

import pygame
from pygame.sprite import Sprite

class Rain(Sprite):
    def __init__(self,abc):
        super().__init__()
        self.screen = abc.screen
        self.image = pygame.image.load('C:/Users/xcz000/Desktop/My Python/images/rain1.bmp')
        self.rect = self.image.get_rect()
        self.rect.x = self.rect.width
        self.rect.y = self.rect.height
        self.y = float(self.rect.y)


    def update(self):
        self.y += 0.1
        self.rect.y = self.y


所以你想问什么

该回答引用GPTᴼᴾᴱᴺᴬᴵ
您好,根据您的代码和描述,可能是因为雨滴下落的速度太快,使得多排雨滴同时下落时,上方的雨滴遮盖了下方的雨滴。您可以尝试调整雨滴下落的速度,例如将 self.y += 0.1 改为 self.y += 0.05。
·
另外,您可以尝试在每个雨滴的下落轨迹上留出一定的间隔,例如将 rain.rect.y = rain.rect.height + 2 * rain.rect.height * n 改为 rain.rect.y = rain.rect.height + 2 * rain.rect.height * n + 50 * n。这样可以使得每排雨滴之间有一定的间隔,防止上方的雨滴遮盖下方的雨滴。
·
最后,如果您仍然无法解决问题,建议将具体的显示问题描述清楚,并提供完整的代码和运行环境,以便更好地定位问题。