#! /usr/bin/env python from __future__ import generators import pygame pygame.display.init() pygame.font.init() font = pygame.font.Font(None, 24) screen = pygame.display.set_mode((640,480)) try: enumerate except NameError: def enumerate(alist): index = 0 for value in iter(alist): yield index, value index += 1 press_color = (80,255,80) release_color = (255,80,80) quit = 0 keyvent = [] while not quit: for event in pygame.event.get(): if event.type == pygame.QUIT: quit = 1 elif event.type == pygame.KEYDOWN: keyvent.append((event.key, press_color)) elif event.type == pygame.KEYUP: keyvent.append((event.key, release_color)) keys = pygame.key.get_pressed() pressed = [ k for k, v in enumerate(keys) if v ] screen.fill((0,0,0)) h = 0 for k in pressed: name = font.render(pygame.key.name(k), 0, (255,255,255)) screen.blit(name, (0,h)) h += name.get_height() w = 0 h = 480 - 48 for k,c in keyvent: name = font.render(pygame.key.name(k), 0, c) screen.blit(name, (w,h)) w += name.get_width() if w > 640: keyvent.pop(0) pygame.display.flip()