李白与杜甫斗诗的一个有趣的pygame小程序

"""
   李白与杜甫斗诗的一个有趣的pygame小程序。
   本程序会显示李白和杜甫的图像,他们你一言我一语的说起“诗”来。
"""
import time
import pygame
from pygame.locals import *
        
class Pao(pygame.sprite.Sprite):
    """说话泡泡类,继承自角色类"""
    pass # 见上一篇
        
class Sprite(pygame.sprite.Sprite):
    """定义角色类,继承自pgyame.sprite.Sprite类"""
    def __init__(self,image,pos,group):
        pygame.sprite.Sprite.__init__(self)
        self.image = image
        self.rect = image.get_rect(center=pos)
        self.group = group
        self.group.add(self)
        # 每个角色都有自己的说话泡泡组
        self.pao_group = pygame.sprite.Group()
        
    def render(self):
        """填充背景为白色,显示诗人和说话泡泡"""
        screen.fill((255,255,255))     # 填充白色背景
        self.group.draw(screen)        # 诗人组重画
        self.pao_group.draw(screen)    # 泡泡组重画
        pygame.display.update()        # 更新屏幕显示
        
    def speak(self,string,_time):
        """角色的说话功能,在头顶上显示一个说话泡泡"""
        x = self.rect.centerx
        y = self.rect.top - 50         # 在角色顶上50像素处
        pos = (x,y)
        self.pao = Pao(string,pos)     # 实例化一个泡泡
        self.pao_group.add(self.pao)   # 加入组中

        self.render()                  # 填充背景,显示图像
        # 下面仅仅是等待一定的时间
        running = True
        self.start_time = time.time()
        while time.time() - self.start_time <= _time and running:
            if pygame.event.get(QUIT) :running = False           
            
        self.pao.kill()               # 说话泡泡删除后(再渲染)
        self.render()                 # 重新填充背景,显示图像  
        if running == False:
            return False
        return True

You must log in to read the rest of this article. Please log in or register as a user.