了解了前后端的通信,下面就可以开始自己的业务逻辑了,首先玩家输入名称,选择角色后进入游戏世界。

服务端的demo中已经提供了一些简单的角色信息和属性,数据地址位于 game-server/config/data 文件夹下的三个json文件 装备(treasure)、角色(role)、场景(area)

首先修改一下role里面的数据内容:

[
[
"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形式的存储,对于不需要大变化、数量不大的数据,存储在文件中要比存储在数据库中省力一些。

首先我们 应该获取角色的列表信息

新建 roleHandler用来处理服务端的请求

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代码)

network.GameSocket.getInstance().request("area.roleHandler.list", { }, (respose) => {

                    });

下面是egret中response接收到的返回值:

通过对respose.data.role的操作,可以很轻易的获取到所有role信息并在前端进行展示。

Egret代码下载

服务端代码

[egret+pomelo]实时游戏杂记(4)的更多相关文章

  1. [egret+pomelo]实时游戏杂记(3)

    [egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) 服务端的请求流程走完了一遍,下面就该看一下,在目前的服务端中,各服务 ...

  2. [egret+pomelo]实时游戏杂记(2)

    [egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) pomelo pomelo服务端介绍(game-server/con ...

  3. [egret+pomelo]实时游戏杂记(1)

    [egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) 资料 egret pomelo pomelo捡宝项目 准备工作 1. ...

  4. [egret+pomelo]实时对战游戏杂记(5)

    之前大体了解了pomelo服务端的运行的大体运行流程,下面详细的学习一下在服务端比较重要的一个容器模块bearcat,在bearcat的wiki中我们可以对其有个大概的了解,在服务端示例的代码中也大量 ...

  5. Egret 之 消除游戏 开发 PART 6 Egret elimination game development PART 6

    Egret 之 消除游戏 开发 PART 6 Egret elimination game development PART 6 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱: ...

  6. Pomelo分布式游戏服务器框架

    Pomelo介绍&入门 目录 前言&介绍 安装Pomelo 创建项目并启动 创建项目 项目结构说明 启动 测试连接 聊天服务器 新建gate和chat服务器 配置master.json ...

  7. 为什么MOBA和吃鸡类游戏不推荐用tcp协议 延迟不利于实时游戏

    http://news.gamedog.cn/a/20171221/2287418.html 我们知道,不同类型的游戏因为玩法.竞技程度不一样,采用的同步算法不一样,对网络延迟的要求也不一样.例如,M ...

  8. 微信小游戏 查看egret的小游戏支持库版本

    在开发者工具 console输入egret.wxgame

  9. egret之消除游戏开发

    1.地图 (1)地图形状不同,尺寸不变 (2)背景图变化 2.步数 (1)不同关卡步数不同 (2)步数为01,游戏失败 3.道具 4.消除 (1)>=3可消除 (2)不可消除时,自动打乱 5.数 ...

随机推荐

  1. 课程设计之"网络考试系统"(php、Extjs)

    1.TestSystem大概结构框图 2.数据库设计(11张表) 数据库名称:db_testsystem 数据库表: tb_admin 记录题库管理员帐户信息 代码 tb_allcontent 记录随 ...

  2. 15、Spring Boot使用Druid和监控配置【从零开始学Spring Boot】

    转载:http://blog.csdn.net/linxingliang/article/details/52001740目录(?)[-] 1添加Maven依赖 或jar包 2配置数据源相关信息 3 ...

  3. HDU 3591 The trouble of Xiaoqian(多重背包+全然背包)

    HDU 3591 The trouble of Xiaoqian(多重背包+全然背包) pid=3591">http://acm.hdu.edu.cn/showproblem.php? ...

  4. Python 第三方 http 库-Requests 学习

    Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTT ...

  5. ios控件自定义指引

    转载自:http://bbs.9ria.com/thread-256747-1-1.html 一直以来都想写点什么,做点有意义的事,从今天开始我将会把自己在这一年的学习和应用IOS开发中的学习心得和体 ...

  6. UIView创建的两种方式

    //通过xib创建 NSBundle * bundle = [NSBundle mainBundle]; NSArray * arr = [bundle loadNibNamed:@"myV ...

  7. layui-简单辅助元素 - 页面元素

    本篇主要集中罗列页面中的一些简单辅助元素,如:引用块.字段集区块.横线等等,这些元素都无需依赖任何模块 <!DOCTYPE html> <html> <head> ...

  8. [ACM] POJ 1068 Parencodings(模拟)

    Parencodings Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 19352   Accepted: 11675 De ...

  9. rtems 4.11 时钟驱动(arm, beagle)

    根据bsp_howto手册,时钟驱动的框架主要在 c/src/lib/libbsp/shared/Clockdrv_shell.h 文件中实现 时钟初始化 时钟驱动初始化函数为 Clock_initi ...

  10. 数据库ACID操作---事务四原则

    事务操作四原则: 1>原子性:简单来说——整个事务操作如同原子已经是物理上最小的单位,不可分离事务操作要么一起成功,要么一起失败. 2>一致性:倘若事务操作失败,则回滚事务时,与原始状态一 ...