def process_move(session, msg): print('process_move', msg.ops) now_tm = time.time() if now_tm - session.player.last_move_tm < 0.1: print('move too fast') return session.player.last_move_tm = now_tm offset = g_move_offset.get(msg.ops) if None == offset: return session.player.x += offset[0] * MOVE_SPEED session.player.y += offset[1] * MOVE_SPEED if session.player.x < 0: session.player.x = 0 elif session.player.x > MAX_X: session.player.x = MAX_X if session.player.y < 0: session.player.y = 0 elif session.player.y > MAX_Y: session.player.y = MAX_Y ret_msg = msg_def.input_ret_t() ret_msg.id = session.get_id() ret_msg.ops = msg.ops ret_msg.x = session.player.x ret_msg.y = session.player.y print('input', ret_msg) session.broadcast(msg_def.server_cmd_e.INPUT_RET, ret_msg) #ffext.change_session_scene(session.get_id(), 'scene@0') goto_msg = msg_def.input_req_t() goto_msg.ops = '%d_%d_%d'%(session.get_id(), session.player.x, session.player.y) session.goto_scene('scene@0', goto_msg) return
def process_move(session, msg): print('process_move %s %s' % (session.player.name, msg.ops)) now_tm = time.time() if now_tm - session.player.last_move_tm < 0.1: print('move too fast') return session.player.last_move_tm = now_tm offset = g_move_offset.get(msg.ops) if None == offset: return session.player.x += offset[0] * MOVE_SPEED session.player.y += offset[1] * MOVE_SPEED if session.player.x < 0: session.player.x = 0 elif session.player.x > MAX_X: session.player.x = MAX_X if session.player.y < 0: session.player.y = 0 elif session.player.y > MAX_Y: session.player.y = MAX_Y ret_msg = msg_def.input_ret_t() ret_msg.id = session.get_id() ret_msg.ops = msg.ops ret_msg.x = session.player.x ret_msg.y = session.player.y print('input', ret_msg) session.broadcast(msg_def.server_cmd_e.INPUT_RET, ret_msg) #下面的代码模拟的是调scene,goto_scene直接完成调scene,so easy! #由于本demo没有启动多个scene,所以这里只是把player对象传过去,没有给client发送player消失消息 goto_msg = msg_def.input_req_t() goto_msg.ops = '%d_%d_%d_%s' % (session.get_id(), session.player.x, session.player.y, session.player.name) print('goto_msg:', goto_msg) session.goto_scene('scene@0', goto_msg) return
def process_move(session, msg): print('process_move %s %s'%(session.player.name, msg.ops)) now_tm = time.time() if now_tm - session.player.last_move_tm < 0.1: print('move too fast') return session.player.last_move_tm = now_tm offset = g_move_offset.get(msg.ops) if None == offset: return session.player.x += offset[0] * MOVE_SPEED session.player.y += offset[1] * MOVE_SPEED if session.player.x < 0: session.player.x = 0 elif session.player.x > MAX_X: session.player.x = MAX_X if session.player.y < 0: session.player.y = 0 elif session.player.y > MAX_Y: session.player.y = MAX_Y ret_msg = msg_def.input_ret_t() ret_msg.id = session.get_id() ret_msg.ops = msg.ops ret_msg.x = session.player.x ret_msg.y = session.player.y print('input', ret_msg) session.broadcast(msg_def.server_cmd_e.INPUT_RET, ret_msg) #下面的代码模拟的是调scene,goto_scene直接完成调scene,so easy! #由于本demo没有启动多个scene,所以这里只是把player对象传过去,没有给client发送player消失消息 goto_msg = msg_def.input_req_t() goto_msg.ops = '%d_%d_%d_%s'%(session.get_id(), session.player.x, session.player.y, session.player.name) print('goto_msg:', goto_msg) session.goto_scene('scene@0', goto_msg) return