def to_shooter(list): """ creates a shooter with a list of a shooter information """ s = Shooter(screen, list[0], list[1]) for tup in list[2]: s.stack.append(Bullet(screen, tup[0], tup[1], tup[2], tup[3],tup[4])) s.color = list[3] s.angle = list[4] s.life = list[5] s.score = list[6] s.X_BOUND = X_BOUND s.Y_BOUND = Y_BOUND return s
def do_client(new_sock): """ ~main server's loop~ for each client - send his shooter and all shooters in arena after some update, and checks """ me = Shooter(None, 500, 30) me.set_new_color() while not get_approval(me): me.set_new_color() me.set_random_position(X_BOUND, Y_BOUND) shooters.append(me) Done = False while not Done: try: to_send = shooters_to_send(me) if me.life <= 0: Done = True to_send = "LOS" elif me.life < 100: me.life += 0.01 to_send = json.dumps(to_send) new_sock.send(to_send) recv = new_sock.recv(1024) if recv == "CLD": #stands for - CLient Disconnected print "Client Disconnected" Done = True else: recv = json.loads(recv) me.angle = recv[0] presses = recv[1::] control_player(presses, me) me.move_shot() update_shooters(me) check_hits(me) except: print "closing current socket because of technical issues" Done = True shooters.remove(me) new_sock.close()