Ejemplo n.º 1
0
def join(room_id, name):
    room = rooms[room_id]
    join_room(room.id)

    player = room.new_player(name)

    sid_map[request.sid] = (room.id, player.id)

    current_app.logger.debug('(%s, %s) joined %s', player.id, player.name,
                             player.id)
    emit('lobby-joined',
         (player.id, ut.serialize_player(room.players, ['id', 'name'])))
    emit('lobby-update',
         ut.serialize_player(room.players, ['id', 'name']),
         room=room.id)
Ejemplo n.º 2
0
def game_loop(game_room, current_app):
    app.logger.debug("%s's game loop started", game_room.id)
    with current_app.app_context():
	    while game_room.state != GameRoom.State.Finished:
	        socketio.emit('game-update', ut.serialize_player(game_room.players, ['id','posx','posy']), room=game_room.id)
	        app.logger.debug('update sent to %s', game_room.id)
	        socketio.sleep(1) # 0
    app.logger.debug("%s's game loop ended", game_room.id)
Ejemplo n.º 3
0
def on_disconnect():
    room = rooms[sid_map[request.sid][0]]
    p_id = sid_map[request.sid][1]
    room.remove_player(p_id)
    leave_room(room.id)
    current_app.logger.info('Player %s left room %s', room.players[p_id].name,
                            room.id)
    emit('lobby-update',
         ut.serialize_player(room.players, ['id', 'name']),
         room=room.id)
Ejemplo n.º 4
0
def game_loop(game_room):
    app.logger.debug("%s's game loop started", game_room.id)
    while game_room.state == GameRoom.State.Playing:
        socketio.emit(
            'game-update',
            ut.serialize_player(game_room.players,
                                ['id', 'posx', 'posy', 'velx', 'vely']),
            room=game_room.id)
        #app.logger.debug('update sent to %s', game_room.id)
        socketio.sleep(0.05)  # 0
    app.logger.debug("%s's game loop ended", game_room.id)
Ejemplo n.º 5
0
def start():
    room_id, player_id = sid_map[request.sid]
    room = rooms[room_id]
    player = room.players[player_id]
    if player == room.owner and room.state == GameRoom.State.Lobby:
        room.spawn_players()
        emit('game-started',
             ut.serialize_player(room.players, ['id', 'posx', 'posy']),
             room=room_id)
        current_app.logger.debug('Starting server game loop for %s', room.id)
        socketio.start_background_task(game_loop, room,
                                       current_app._get_current_object())
    else:
        current_app.logger.info(
            'Attempt to start game %s by non-owner or a game not in Lobby state',
            room.id)