rendered paste bodyimport pygame
from pygame.locals import *
import sys
SCREEN_HEIGHT = 640
SCREEN_WIDTH = 480
def init_pygame():
pygame.init()
pygame.key.set_repeat(10, 40)
def create_screen(height=640, width=480):
screen = pygame.display.set_mode((height, width))
screen.fill((255, 255, 255))
return screen
def mainloop(screen):
clock = pygame.time.Clock()
while 1:
pygame.display.flip()
clock.tick(50)
for event in pygame.event.get():
handle_event(event, screen)
def handle_event(event, screen):
x, y = SCREEN_HEIGHT/2, SCREEN_WIDTH/2
if event.type == KEYDOWN: # is a key pressed (down)?
if event.key == K_ESCAPE: # esc key pressed? exit if so
show_exit_message(screen)
if event.key == K_UP:
y -= 1
if event.key == K_DOWN:
y += 1
if event.key == K_LEFT:
x -= 1
if event.key == K_RIGHT:
x += 1
# create line
screen.set_at((x,y), (0,0,0))
def show_exit_message(screen):
colour = (0,0,0)
surface = create_font('Press any key to exit.', colour)
textpos = surface.get_rect(centerx=screen.get_width()/2, centery=screen.get_height()/2)
# fill & blit
screen.fill((255,255,255))
screen.blit(surface, textpos)
# exit on any keypress
pygame.display.flip()
while 1:
if pygame.event.wait().type in (QUIT, KEYDOWN, MOUSEBUTTONDOWN):
sys.exit()
def create_font(msg, colour):
font = pygame.font.Font(None, 30)
surface = font.render(msg, 0, colour)
return surface
def show_msg(screen, msg, colour):
surface = create_font(msg, colour)
textpos = surface.get_rect(centerx=screen.get_width()/2, centery=screen.get_height()/2)
screen.fill((255, 255, 255))
screen.blit(surface, textpos)
def main():
init_pygame()
screen = create_screen()
mainloop(screen)
if __name__ == '__main__':
main()