定义雨滴类
接下来,我们定义 Raindrop 类,它代表代码雨动画中的每个下落字符。Raindrop 类包含每个雨滴的初始位置、文本和下落速度等属性。
class Raindrop:
def __init__(self):
self.x = random.randint(0, width)
self.y = random.randint(0, height)
self.text = chr(random.randint(33, 126))
self.speed = random.randint(1, 5)
def fall(self):
self.y += self.speed
if self.y > height:
self.y = 0
self.x = random.randint(0, width)
def display(self):
text_surface = font.render(self.text, True, text_color)
screen.blit(text_surface, (self.x, self.y))
__init__ 方法在类实例化时被调用,用于初始化雨滴的属性,包括随机的初始位置(x, y)、随机的文本字符(ASCII 码在 33 到 126 之间)和随机的下落速度(在 1 到 5 之间)。
fall 方法用于使雨滴向下移动。它根据雨滴的速度增加 self.y 的值。如果雨滴移出屏幕(当 self.y 大于屏幕高度时),将其重置到屏幕顶部,并在屏幕上随机选择一个新的 x 位置。
display 方法用于显示雨滴。它使用 pygame 库中的 font.render 函数创建一个文本表面,并将其渲染在屏幕上雨滴的位置 (self.x, self.y) 处。