Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // env, kit 為 server 暴露給開發者用的功能物件
- var say = kit.say; // 基本系統功能
- var db = kit.game.db; // 資料永續儲存相關
- var logic = kit.game.logic; // 註冊遊戲邏輯的工具物件
- var service = kit.game.service; // 管理遊戲服務的物件
- /*
- * 1. 註冊 message tag 跟 handler
- *
- * 格式: logic.register( TAG, FUNCTION );
- */
- var mem = {}; // 開發者自己的變數
- logic.register('G_INIT', function(data){ // 遊戲啟動時, 資料初始化一次
- mem.players = {}; // 玩家列表
- mem.gamestate = false; // 遊戲開始與否
- mem.t = 0; // 遊戲時間
- };
- logic.register('G_JOIN', function(data){ // 玩家加入, 參考資料存在 data
- kit.say('player want to join');
- // 遊戲已經開始, 不給加
- if (mem.gamestate)
- return;
- var eml = data.email;
- var info = data.info;
- if (count(mem.players) < 4)
- mem.players[eml] = info;
- };
- logic.register('G_QUIT', function(data){ // 玩家離開, 參考資料存在 data
- delete mem.players[data.email];
- };
- logic.register('G_START', function(data){ // 收到遊戲開始的指令
- if (mem.gamestate || count(mem.players) < 4)
- return;
- mem.gamestate = true;
- };
- logic.register('G_END', function(data){ // 收到遊戲結束的指令
- mem.gamestate = false;
- };
- /*
- * 2. 直接覆蓋系統功能, 含 loop, init ...等
- * 若無覆蓋 server 會使用內建版本
- */
- service.init = function(){
- // ...服務初始化...
- };
- service.loop = function(){ // server 將會定期、反覆執行 loop
- mem.t++;
- kit.say('現在是 tick' + mem.t);
- };
Add Comment
Please, Sign In to add comment