之前大体了解了pomelo服务端的运行的大体运行流程,下面详细的学习一下在服务端比较重要的一个容器模块bearcat,在bearcat的wiki中我们可以对其有个大概的了解,在服务端示例的代码中也大量的出现了对bearcat模块的使用. 如playerHandler.js中: module.exports = function (app) { //设置bearcat bean return bearcat.getBean({ id: "playerHandler",//唯一Id fun…
[egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) 服务端的请求流程走完了一遍,下面就该看一下,在目前的服务端中,各服务端所提供的功能了. Gate:game-server/app/servers/gate/handler/gateHandler.js queryEntry(msg,session,next):注册服务端,返回分配的connector服务端地址 Connector:game-server/app/se…
[egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) pomelo pomelo服务端介绍(game-server/config/server.json): { "development": { "connector": [ {"id": "connector-server-1", "host": "127.0.0.1&…
[egret+pomelo]学习笔记(1) [egret+pomelo]学习笔记(2) [egret+pomelo]学习笔记(3) 资料 egret pomelo pomelo捡宝项目 准备工作 1.下载并搭建pomelo项目 2.下载pomelo捡宝项目(github上下载的,最好是看一遍git上的教程,再进行搭建会比较顺利) 3.下载的捡宝项目[Treasures] 中有简略的项目教程,可以帮助我们快速搭建和熟悉捡宝项目. 开始创建Egret项目: 因个人比较熟悉egret引擎,在论坛中找到…
了解了前后端的通信,下面就可以开始自己的业务逻辑了,首先玩家输入名称,选择角色后进入游戏世界. 服务端的demo中已经提供了一些简单的角色信息和属性,数据地址位于 game-server/config/data 文件夹下的三个json文件 装备(treasure).角色(role).场景(area) 首先修改一下role里面的数据内容: [ [ "id", "名字", "英文名", "怪物级别", "初始血量&quo…
对战游戏 要求: 自建数据表(例如:数据表包含:代号,姓名,性别,血量,攻击力,防御力,命中,闪避,等级等字段) 需要通过程序向数据表添加人员 添加的时候,根据用户输入的名字,自动计算生成相应的血量.攻击力.防御力等(例如,名字的前两个字作为种子生成血量,名字的第一个字作为种子生成攻击力,名字的第二个字作为种子生成防御力等) 添加完成用户可以输入两个用户进行对战 通过程序逻辑实现对战双方的血量变化并显示(使用随机数浮动攻击防御) 最终血量先到达0的失败,胜利的一方属性增加(比如等级level加1…
第一代,不是很完善,会在后续增加更多的功能 主: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 对战游戏 { class Program { static void Main(string[] args) { Random r = new Random(); Soldier s1 = new…
博文背景: 还记大二上学期的时候看的这个C++&RPG游戏(博主大一下学期自学的php,涵盖oop内容),一个外校的同学他们大一学的C++,大二初期C++实训要求做一个程序填空,就是这个 RPG 对战游戏,有几处空需要填上,问我可以不,我就信誓旦旦的说OK,最后"万般无奈多方考究"才给将程序补充完整.最近在做毕业设计,用到C++&QT oop部分,重新温习了下C++ oop,就想起来大二的时候还"捣鼓"过这么个游戏,现重新看了下,进行整理总结,写下该…
网吧充值系统namespace ConsoleApplication1 { class Program { struct huiyuan { public string name; public string password; public double yue; } static void Main(string[] aaa) { ArrayList Ul = new ArrayList(); while (true) { try { Console.WriteLine("请输入您要执行的操…
扩展属性 有外键关系时将信息处理成用户可看懂的 利用扩展属性 如:Info表中的民族列显示的是民族代号处理成Nation表中的民族名称 需要在Info类里面扩展一个显示nation名称的属性 例:先前在NationDA里面已经下好了一个代号换成名称的方法 public class Info { //扩展的名族名称属性 public string NationName { get { NationDA da = new NationDA(); return da.NationName(this.n…
推箱子游戏提纲,只有向右向上的操作,向左向下同理,后期需完善. namespace 推箱子 { class Program { static void Main(string[] args) { //小人初始位置的索引 ; ; ; ; #region 画地图 , ] { {" "," ","■","■","■","■","■","■","…
引言 本文主要讲述在局域网内,使用c#基于Udp协议编写一个对战的五子棋游戏.主要从Udp的使用.游戏的绘制.对战的逻辑这三个部分来讲解. 开发环境:vs2013,.Net4.0,在文章的末尾提供源代码下载的地址.   Udp通信 Udp是基于无连接的传输协议,特点是资源消耗小.处理速度快.使用方便,不需要与接收方建立连接即可发送消息,但是对方有可能会接受不到发送的消息.在.Net中提供了UdpClient类来实现基于Udp协议的通信,下面就讲解一下Udp的基本使用.   1.发送信息 首先声明…
推箱子 //只做了两关 class Program { static void Main(string[] args) { ; ; ; ; ; ; ; #region 地图绘制 , , ] { { {"●", "●", "●", "●", "●", "●", "●", "●", "●", "●"}, {&qu…
五子棋工作文档 1说明: 这个程序在创建初期的时候是有一个写的比较乱的文档的,但是很可惜回学校的时候没有带回来……所以现在赶紧整理一下,不然再过一段时间就忘干净了. 最初这个程序是受老同学所托做的,一开始的时候要求要人人对战和人机对战,但是大家都很明白,所谓的人人对战就是简单那的GDI绘图罢了,那些基础函数用好了自然没问题.而人机对战则需要一定的棋盘分析能力,做起来还是很复杂的.当时受时间限制,第一个版本是我用了两天时间做的一个人人对战,直接就给她发过去了,用来应付她的实习,因为我当时也不确定人…
功能 1.天气预报 2.局域网对战 展示  java学习群669823128   部分源码 package game.weather; import java.util.HashMap; public class Weather { /** * @Fields 今天的天气数据,整体 */ private JSONObject today; /** * @Fields 今天的天气指数 index第一个String是指数中文名,index的Map键值为"ivalue" "deta…
推荐阅读: 我的CSDN 我的博客园 QQ群:704621321 我的个人博客 最近事情特别多,今天终于实现了排行榜功能,记录下来大家一起学习学习. 一.调用默认排行榜 首先我们需要了解: 1.白鹭开发文档(开放数据域):http://developer.egret.com/cn/github/egret-docs/Engine2D/minigame/openDataContext/index.html 2.微信小游戏开发文档(关系链数据):https://developers.weixin.q…
今天给大家分享一下微信分享转发功能,话不多说,直接干 方法一: 1.在egret中打开Platfrom.ts文件,添加代码如下(当然,你也可以直接复制粘贴) /** * 平台数据接口. * 由于每款游戏通常需要发布到多个平台上,所以提取出一个统一的接口用于开发者获取平台数据信息 * 推荐开发者通过这种方式封装平台逻辑,以保证整体结构的稳定 * 由于不同平台的接口形式各有不同,白鹭推荐开发者将所有接口封装为基于 Promise 的异步形式 */ declare interface Platform…
假设我们要实现的功能是从小游戏A跳转到小游戏B 对于小游戏A: (1)在platform.ts中添加代码如下: /** * 平台数据接口. * 由于每款游戏通常需要发布到多个平台上,所以提取出一个统一的接口用于开发者获取平台数据信息 * 推荐开发者通过这种方式封装平台逻辑,以保证整体结构的稳定 * 由于不同平台的接口形式各有不同,白鹭推荐开发者将所有接口封装为基于 Promise 的异步形式 */ declare interface Platform { getUserInfo(): Promi…
http://bbs.egret-labs.org/thread-242-1-1.html 对于AS3的开发者来说,可以直接过渡到的HTML5框架就是Egret了,基本上是了解了TypeSprite的基本语法(http://www.nshen.net/article/2013-05-18/as3-to-typescript/)就可以直接上手开发了. 这个是我花了1周的闲暇时间做的2048,大家有兴趣可以参考一下源码.…
CyclicBarrier是java.util.concurrent包下面的一个工具类,字面意思是可循环使用(Cyclic)的屏障(Barrier),通过它可以实现让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,所有被屏障拦截的线程才会继续执行. 这篇文章将介绍CyclicBarrier这个同步工具类的以下几点 通过案例分析 两种不同构造函数测试 CyclicBarrier和CountDownLatch的区别 await方法及源码分析. 需求 继上一篇CountDo…
使用socket.set 和 socket.get 在存取玩家信息 百牛信息技术bainiu.ltd整理发布于博客园 socket.get('playerinfo', function (err, player) { if(player == null) { console.log("[new player]",data.name); var player = new Player(socket, data); } else { console.log("[wait play…
(1)新建皮肤,并命名如下 (2)根据实际情况自定义皮肤,例如: (3)修改名字为如下: (4)运行游戏会自动生成以下代码: (5)在default.thm.json中添加如下代码:(具体路径名字根据实际情况填写) (6)新建ts文件,添加如下代码,j即可调用皮肤上的组件. 注意;记得添加ts文件继承的类及实现方法.…
2d游戏制作的笔记 save Layout 增加配置 Packges文件夹 插件 调整视野 鼠标中键 拉近拉远 鼠标右键 平移 Alt+鼠标左键 移动视角 Pivot/Center 当前物体中心和多个物体共同的中心 Local/Global 全局坐标 步移工具 工具: 1.Sprite Renderer Order in Layer 可以调节物体的前后关系 值越大越在前面 不要乱改script文件名 Start()方法只会执行一次,类似于初始化 Update()方法会不断循环执行 Time.de…
1.给物体施加一个径向力 定义一个径向力: URadialForceComponent* RadialForceComp; 在构造函数里赋默认值: RadialForceComp = CreateDefaultSubobject<URadialForceComponent>(TEXT("RadialForceComp")); RadialForceComp->SetupAttachment(MeshComp); RadialForceComp->Radius =…
使用Profiler工具分析内存占用情况 System.ExecutableAndDlls:系统可执行程序和DLL,是只读的内存,用来执行所有的脚本和DLL引用.不同平台和不同硬件得到的值会不一样,可以通过修改Player Setting的Stripping Level来调节大小. Ricky:我试着修改了一下Stripping Level似乎没什么改变,感觉虽占用内存大但不会影响游戏运行.我们暂时忽略它吧(- -)! GfxClientDevice:GFX(图形加速\图形加速器\显卡 (Gra…
从本篇起,我们将迈入新的领域:网络传输.首先我们看看 P2P 连接的建立过程,以及 DataChannel 的使用,最终我们会利用 DataChannel 实现一个 P2P 的文字聊天功能. P2P 连接过程 首先总结一下 WebRTC 建立 P2P 连接的过程(就是喜欢手稿): 我们先来一个简单的名词解释. SDP SDP 全称 Session Description Protocol,顾名思义,它是一种描述会话的协议.一次电话会议,一次网络电话,一次视频流传输等等,都是一次会话.那会话需要哪…
QoS入门,为了进一步学习DPDK上的QoS <计算机网络的服务质量(QoS)> 林闯,单志广,任丰原 著 Background Internet的传统分组交换网络是面向非实时数据通信而设计的,典型应用例如FTP和Email.IP协议是典型的Best-effort,尽力而为的服务,TCP这类可靠的传输层协议被设计出来是为了缓解严重的网络拥塞,优化网络的数据吞吐量,最重要的是保证数据通信的可靠性.随着网络的发展,人们对于网络的要求越来越高,Internet上也从单一的数据传输变为数据.语音.图像…
服务端和客户端总是需要互相交换数据,来做到实时的游戏体验. 很久之前,我们的网速都不是很快,甚至带宽只有 1Mbps (128KB/s)这样的速度,作为当时一个网络实时对战游戏,每时每刻都要传递数据,为了完成各种各样复杂的效果,要传递的数据量自然也就多了. 为了减少需要发送的数据大小,引擎的程序员开发出了 Delta 模块. 它能把需要传递的数据的大小压缩到极致,大大减少了网络传输的数据量,使得当时网速很慢的电脑也能流畅地玩游戏! 如果你看过我的前两篇文章,你一定对 clientdata_t.e…
开始之前先分享几款性能优化的插件: 1.SimpleLOD : 除了同样拥有Mesh Baker所具有的Mesh合并.Atlas烘焙等功能,它还能提供Mesh的简化,并对动态蒙皮网格进行了很好的支持. 该插件可在Run-time和Editor中都可以使用,同时开放了源码,大家可以根据项目的实际情况而作修改. http://download.csdn.net/download/jasonczy/10178526 一. 转载自 http://blog.csdn.net/game_jqd/articl…
前言: 好久没更新博客了,以前很多都不会,所以常常写博客总结,倒是现在有点点经验了就懒了.在过去的几个月里,在canvas游戏框架方面,撸过了CreateJS,玩得了Egret,又学过PIXI.js.在移动前端方面,尤其是小游戏开始有一点点小经验了.但只是小经验,为什么说是小经验? 首先,深度不足,虽然用得最熟最多的白鹭,可是习惯了JavaScript,对TypeScript的OOP编程掌握得还不够:其次,对Egret等游戏框架了解的广度还不够,还有相当部分用法没用到.虽然能够应付朋友圈里传播的…