📄 gamecontroller.java
字号:
package zsw_mmorpg.server.controller;import zsw_mmorpg.common.*;import zsw_mmorpg.server.*;import java.util.*;/** * GameController.java * * 从wrap类继承而来,使用后台线程 * 是游戏引擎的基类 * * @author <a href="mailto:shiwei@raymobile.com">朱世伟</a> * @version 1.0 */public abstract class GameController extends Wrap { /** GameServer 的引用*/ protected GameServer gameServer; /** * GAMESERVER 会调用这个初始化游戏引擎 */ public final void init(GameServer s, GameConfig gc) { this.gameServer = s; // todo: get the preferred number of workers from the GameConfig // int nw = gc.getInt("NUM_WORKERS", 5); // init the Wrap first initWrap(Globals.DEFAULT_CONTROLLER_WORKERS); // now call the subclasses' init initController(gc); } /** * 发送事件给特定玩家 */ protected void sendEvent(GameEvent e, Player p) { e.setPlayerId(p.getPlayerId()); gameServer.writeEvent(e); } /** * 发送事件给多个玩家 */ protected synchronized void sendBroadcastEvent(GameEvent e, Collection players) { Iterator i = players.iterator(); String[] recipients = new String[players.size()]; int j=0; while(i.hasNext()) { Player p = (Player) i.next();// if (!(p.getPlayerId().equals(e.getPlayerId()))) recipients[j++] = p.getPlayerId(); } e.setRecipients(recipients); gameServer.writeEvent(e); } /** * 引擎初始化 */ protected abstract void initController(GameConfig gc); /** * 返回 GameName */ public abstract String getGameName(); /** * 创建玩家 */ public abstract Player createPlayer(); /** * 创建游戏事件 */ public abstract GameEvent createGameEvent();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -