def main(): pg.init() pg.event.set_grab(True) pg.mouse.set_visible(False) running = True gamestatus = {} try: p = Protocol("localhost", 1337, gamestatus) p.login("me", "foo", "bar") except socket.error as e: if e.errno == 111: # Connection refused print "Connection could not be established" sys.exit() else: print e screen = pg.display.set_mode((800, 600)) clock = pg.time.Clock() renderer = Renderer(gamestatus, screen) rel_mv = [0.0, 0.0] lst_mv = [0.0, 0.0] diff = [0.0, 0.0] max_diff = [0.1, 0.1] screenpos = [0.0, 0.0] keytable = {K_j: 0x1, K_k: 0x2} keystatustable = {KEYDOWN: 0x1, KEYUP: 0x0} total = 0 count = 0 while running: time = clock.tick(60) if time == 0: time = 1 total += time count += 1 for event in pg.event.get(): if event.type == QUIT: running = False if event.type == KEYDOWN or event.type == KEYUP: if event.key == K_ESCAPE: running = False if event.key in keytable: p.sendKeyStatus(keytable[event.key], keystatustable[event.type]) abs_mv = pg.mouse.get_rel() rel_mv = [abs_mv[0] / float(time), abs_mv[1] / float(time)] if rel_mv[0] > lst_mv[0]: diff[0] = rel_mv[0] - lst_mv[0] else: diff[0] = lst_mv[0] - rel_mv[0] if rel_mv[1] > lst_mv[1]: diff[1] = rel_mv[1] - lst_mv[1] else: diff[1] = lst_mv[1] - rel_mv[1] if diff[0] > max_diff[0] or diff[1] > max_diff[1]: try: p.sendMouse(velocity=rel_mv) except DisconnectException as e: running = False print e break lst_mv = rel_mv try: p.update(time) p.parse() renderer.render() pg.display.flip() except GTFOException as gtfo: print gtfo sys.exit() except socket.error as e: print "Socket Error: ", e sys.exit() # except Exception as e: # print e # sys.exit() print "Framerate: " + repr(1000.0 / (total / float(count)))