import pygame
pygame.init()

screen = pygame.display.set_mode((200,100))
dude2 = pygame.image.load('dude2.bmp')
color = dude2.get_at((0,0))
dude2.set_colorkey(color)
(width, height) = dude2.get_size()

loop = True
curkey = None
pressed = False
(x,y) = (50,50)
(px,py) = (0,0)
while loop:
    for e in pygame.event.get():
        if e.type == pygame.KEYDOWN:
            if e.key == pygame.K_q:
                loop = False
                break
            else:
                curkey = e.key
        elif e.type == pygame.KEYUP:
            curkey = None
        elif e.type == pygame.MOUSEBUTTONDOWN:
            (px,py) = e.pos
            if x <= px and px <= x+width and \
               y <= py and py <= y+height:
                pressed = True
                px -= x
                py -= y
        elif e.type == pygame.MOUSEBUTTONUP:
            pressed = False
        elif e.type == pygame.MOUSEMOTION:
            if pressed:
                (x,y) = e.pos
                x -= px
                y -= py
    if curkey == pygame.K_LEFT:
        x -= 5
    elif curkey == pygame.K_RIGHT:
        x += 5
    elif curkey == pygame.K_UP:
        y -= 5
    elif curkey == pygame.K_DOWN:
        y += 5
    if pressed:
        screen.fill((255,0,0))
    else:
        screen.fill((0,0,255))
    screen.blit(dude2, (x, y))
    pygame.display.flip()
    pygame.time.delay(100)
    if not loop:
        break
    
