[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.7.12 eclispe使用mybatis generator生成代码时提示project E is not exist
运行mybatis-generator之后,出现错误:project E is not exist 错误原因:使用了项目的绝对路径. http://bbs.csdn.net/topics/3914 ...
- 服务器性能之CPU
有时我们会发现开发的应用在CPU核数一样的虚拟服务器上性能表现出较大的差异,这是为什么呢?上次有童鞋问到我这样一个问题,所以我根据自己的理解给大家简说下! CPU生产商为了提高CPU的性能,通常做法是 ...
- JAVA Eclipse 创建android xml看不到预览怎么办
电机安卓图标,设置为更低的API版本即可
- 【Excle数据透视】如何在数据透视表字段列表中显示更多的字段
创建完数据透视表之后,由于字段太多,在列表中没有完全显示 解决方案 通过"字段节和区域节并排"功能来显示更多字段 修改后结果 字段已经完全显示出来了! "字段节和区域节层 ...
- 应用程序之TableView简单总结1
UITableView的代理方法 修改Cell的状态 UITableView常见方法 一.UITableView的代理方法 #pragma mark 每一行的高度 - (CGFloat)tableVi ...
- Hbase Basic
启动:start-hbase.sh 停止:stop-hbase.sh 进入shell:hbase shell 状态:status 创建表:create 'tableName', 'colFam1' 查 ...
- 转:static关键字的总结
static关键字的总结 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用. ...
- CSS3进度条 和 HTML5 Canvas画圆环
看到一些高大上的进度条插件,然后想自己用CSS写.经过搜索资料之后,终于成功了.为了以后方便拿来用,或者复习.将代码贴出. HTML代码: 只需要两个div,外面的为一个有border的div id为 ...
- servletResponse 文件下载
package response; import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOEx ...
- 字符串查找strpos()函数用法
#如果id=3 在字符串中查找出3是否存在.$str="2,12,33,22,55"; if(strpos(','.$id.',',','.$str.',')!==FALSE){ ...