[egret+pomelo]实时游戏杂记(4)
了解了前后端的通信,下面就可以开始自己的业务逻辑了,首先玩家输入名称,选择角色后进入游戏世界。
服务端的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+pomelo]实时游戏杂记(4)的更多相关文章
- [egret+pomelo]实时游戏杂记(3)
[egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) 服务端的请求流程走完了一遍,下面就该看一下,在目前的服务端中,各服务 ...
- [egret+pomelo]实时游戏杂记(2)
[egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) pomelo pomelo服务端介绍(game-server/con ...
- [egret+pomelo]实时游戏杂记(1)
[egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) 资料 egret pomelo pomelo捡宝项目 准备工作 1. ...
- [egret+pomelo]实时对战游戏杂记(5)
之前大体了解了pomelo服务端的运行的大体运行流程,下面详细的学习一下在服务端比较重要的一个容器模块bearcat,在bearcat的wiki中我们可以对其有个大概的了解,在服务端示例的代码中也大量 ...
- Egret 之 消除游戏 开发 PART 6 Egret elimination game development PART 6
Egret 之 消除游戏 开发 PART 6 Egret elimination game development PART 6 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱: ...
- Pomelo分布式游戏服务器框架
Pomelo介绍&入门 目录 前言&介绍 安装Pomelo 创建项目并启动 创建项目 项目结构说明 启动 测试连接 聊天服务器 新建gate和chat服务器 配置master.json ...
- 为什么MOBA和吃鸡类游戏不推荐用tcp协议 延迟不利于实时游戏
http://news.gamedog.cn/a/20171221/2287418.html 我们知道,不同类型的游戏因为玩法.竞技程度不一样,采用的同步算法不一样,对网络延迟的要求也不一样.例如,M ...
- 微信小游戏 查看egret的小游戏支持库版本
在开发者工具 console输入egret.wxgame
- egret之消除游戏开发
1.地图 (1)地图形状不同,尺寸不变 (2)背景图变化 2.步数 (1)不同关卡步数不同 (2)步数为01,游戏失败 3.道具 4.消除 (1)>=3可消除 (2)不可消除时,自动打乱 5.数 ...
随机推荐
- 2016.6.21 -Dmaven.multiModuleProjectDirectory system propery is not set,Check $M2_HOME environment variable and mvn script match.
eclipse中使用maven插件的时候,运行run as maven build的时候报错: -Dmaven.multiModuleProjectDirectory system propery i ...
- 关于阿里 weex 的使用与案例
1. 阿里宣布开源Weex http://mp.weixin.qq.com/s?__biz=MzA4MjA0MTc4NQ==&mid=504089541&idx=1&sn=3a ...
- .NET创建宿主设计器--DesignHost、DesignSurface.
一个窗口在运行时,是这样的: 但是,在设计时,却远比这复杂的多,它需要一个设计器对象:它仅存在于设计时,并连接到运行时存在的对象. 宿主容器 我们可以看到每个窗体和按钮均有与之相关的设计器.这两个 ...
- JAVA Eclipse开发Android如何设置滚动条最大值最小值
最小值默认为0,你最好在实现逻辑中修改 最大值为max 初始值为progress <SeekBar android:id="@+id/seekBarSpeedMov ...
- 【AngularJS】【03】使用AngularJS进行开发
看不到PPT的请自行解决DNS污染问题.
- vue组件class绑定
当在一个自定义组件上使用 class 属性时,这些类将被添加到该组件的根元素上面.这个元素上已经存在的类不会被覆盖. 例如,如果你声明了这个组件: Vue.component('my-componen ...
- Redhat Crash Utility-Ramdump
Redhat Crash Utility edit by liaoye@2014/9/16 http://blog.csdn.net/paul_liao Crash utility是redhat提供的 ...
- 如何让<input type="text" />中的文字居中
高(height)和行高(line-height)相等.不能用vertical-align
- 查看本机外网ip地址
DOS下是无法查看外网IP的,只能获取本机内网IP地址 外网IP只能通过专门的测IP网站 http://www.ip138.com/ip2city.asp
- 生成二维码 加密解密类 TABLE转换成实体、TABLE转换成实体集合(可转换成对象和值类型) COOKIE帮助类 数据类型转换 截取字符串 根据IP获取地点 生成随机字符 UNIX时间转换为DATETIME\DATETIME转换为UNIXTIME 是否包含中文 生成秘钥方式之一 计算某一年 某一周 的起始时间和结束时间
生成二维码 /// <summary>/// 生成二维码/// </summary>public static class QRcodeUtils{private static ...