| 224 | |
| 225 | |
| 226 | class FadingText(object): |
| 227 | def __init__(self, font, dim, pos): |
| 228 | self.font = font |
| 229 | self.dim = dim |
| 230 | self.pos = pos |
| 231 | self.seconds_left = 0 |
| 232 | self.surface = pygame.Surface(self.dim) |
| 233 | |
| 234 | def set_text(self, text, color=COLOR_WHITE, seconds=2.0): |
| 235 | text_texture = self.font.render(text, True, color) |
| 236 | self.surface = pygame.Surface(self.dim) |
| 237 | self.seconds_left = seconds |
| 238 | self.surface.fill(COLOR_BLACK) |
| 239 | self.surface.blit(text_texture, (10, 11)) |
| 240 | |
| 241 | def tick(self, clock): |
| 242 | delta_seconds = 1e-3 * clock.get_time() |
| 243 | self.seconds_left = max(0.0, self.seconds_left - delta_seconds) |
| 244 | self.surface.set_alpha(500.0 * self.seconds_left) |
| 245 | |
| 246 | def render(self, display): |
| 247 | display.blit(self.surface, self.pos) |
| 248 | |
| 249 | |
| 250 | # ============================================================================== |