瞭解了先後端的通訊,下面就能夠開始本身的業務邏輯了,首先玩家輸入名稱,選擇角色後進入遊戲世界。前端
服務端的demo中已經提供了一些簡單的角色信息和屬性,數據地址位於 game-server/config/data 文件夾下的三個json文件 裝備(treasure)、角色(role)、場景(area)數據庫
首先修改一下role裏面的數據內容:json
[ [ "id", "名字", "英文名", "怪物級別", "初始血量", "初始魔法", "初始攻", "初始防", "命中率", "閃避率", "攻擊速度", "行走速度", "升級係數", "基礎經驗值", "" ], [ "id", "name", "englishName", "level", "hp", "mp", "attackValue", "defenceValue", "hitRate", "dodgeRate", "attackSpeed", "walkSpeed", "upgradeParam", "baseExp", "" ], [ 210, "戰士", "warrior", "1", 220, 20, 23, "9", 90, 13, "1.2", 240, 0.3, 20, "" ], [ 211, "道士", "rabbi", "1", 180, 60, 18, 12, 95, 10, "1.2", 240, 0.3, 20, "" ], [ 201, "法師", "enchanter", "1", 180, 40, 25, "8", 90, 15, "1", 260, 0.25, 20, "" ] ]
相似數據庫表格,只不過是以json形式的存儲,對於不須要大變化、數量不大的數據,存儲在文件中要比存儲在數據庫中省力一些。後端
首先咱們 應該獲取角色的列表信息session
新建 roleHandler用來處理服務端的請求app
var logger = require('pomelo-logger').getLogger('bearcat-treasures', 'RoleHandler'); var bearcat = require('bearcat'); var fs = require('fs'); var RoleHandler = function (app) { this.app = app; this.consts = null; this.areaService = null; }; /** * 獲取全部角色信息 */ RoleHandler.prototype.list = function (msg, session, next) { //隨機得到角色 var role = this.dataApiUtil.role(); //返回玩家角色信息 var r = { code: this.consts.MESSAGE.RES, data: { role: role.data } } next(null, r); } module.exports = function (app) { return bearcat.getBean({ id: "roleHandler", func: RoleHandler, args: [{ name: "app", value: app }], props: [{ name: "areaService", ref: "areaService" }, { name: "dataApiUtil", ref: "dataApiUtil" }, { name: "consts", ref: "consts" }] }); };
服務端作好後,客戶端訪問(egret代碼)ide
network.GameSocket.getInstance().request("area.roleHandler.list", { }, (respose) => {
});
下面是egret中response接收到的返回值:ui
經過對respose.data.role的操做,能夠很輕易的獲取到全部role信息並在前端進行展現。this
Egret代碼下載spa