| 567 | |
| 568 | |
| 569 | class FadingText(object): |
| 570 | def __init__(self, font, dim, pos): |
| 571 | self.font = font |
| 572 | self.dim = dim |
| 573 | self.pos = pos |
| 574 | self.seconds_left = 0 |
| 575 | self.surface = pygame.Surface(self.dim) |
| 576 | |
| 577 | def set_text(self, text, color=(255, 255, 255), seconds=2.0): |
| 578 | text_texture = self.font.render(text, True, color) |
| 579 | self.surface = pygame.Surface(self.dim) |
| 580 | self.seconds_left = seconds |
| 581 | self.surface.fill((0, 0, 0, 0)) |
| 582 | self.surface.blit(text_texture, (10, 11)) |
| 583 | |
| 584 | def tick(self, _, clock): |
| 585 | delta_seconds = 1e-3 * clock.get_time() |
| 586 | self.seconds_left = max(0.0, self.seconds_left - delta_seconds) |
| 587 | self.surface.set_alpha(500.0 * self.seconds_left) |
| 588 | |
| 589 | def render(self, display): |
| 590 | display.blit(self.surface, self.pos) |
| 591 | |
| 592 | |
| 593 | # ============================================================================== |