import appuifw, graphics, e32, key_codes BLACK = (0, 0, 0) WHITE = (255, 255, 255) key_down = None clicked = None def handle_event(event): global clicked, key_down if event['type'] == appuifw.EEventKey: if key_down: key_down = (event['keycode'], "down") else: key_down = (event['keycode'], "pressed") elif event['type'] == appuifw.EEventKeyUp and key_down: code, mode = key_down if mode == "pressed": clicked = code key_down = None def key_is_down(code): if key_down and key_down == (code, "down"): return True return False def quit(): global running running = False def handle_redraw(rect): if img: canvas.blit(img) img = None canvas = appuifw.Canvas(event_callback=handle_event, redraw_callback=handle_redraw) appuifw.app.screen = 'full' appuifw.app.body = canvas appuifw.app.exit_key_handler = quit x = y = 100 w, h = canvas.size img = graphics.Image.new((w, h)) img.clear(WHITE) running = True while running: if key_is_down(key_codes.EKeyLeftArrow): x -= 5 elif key_is_down(key_codes.EKeyRightArrow): x += 5 elif key_is_down(key_codes.EKeyDownArrow): y += 5 elif key_is_down(key_codes.EKeyUpArrow): y -= 5 #img.clear(WHITE) img.point((x, y), outline = BLACK, width = 50) handle_redraw(None) e32.ao_yield()