Photon开发实战(2)——开发框架、第一个Photon程序
2016-03-24 12:05
204 查看
Photon基础开发框架
Photon (v4)的基本框架。开发框架主要Photon和游戏逻辑(C#)两个部分,如下图最新的Photon v4支持的4种底层协议,游戏开发逻辑Photon目前主要划分为Load Balancing 和MMO(大型多人同时在线游戏)。using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ExitGames.Client.Photon; namespace MyPhotonClient { class Program { static void Main(string[] args) { MyPhotonClientPeerListener listener = new MyPhotonClientPeerListener(); PhotonPeer peer = new PhotonPeer(listener, ConnectionProtocol.Udp); if (peer.Connect("localhost:5055","MyServer")) { Console.WriteLine("客户端准备连接请求……"); while (!listener.IsConnect) { Console.WriteLine("连接中……"); peer.Service(); System.Threading.Thread.Sleep(500); } Console.WriteLine("已连接……"); //peer.Disconnect(); Console.ReadKey(); } else { Console.Write("未找到服务器"); } } } }
Program
1、IPhotonPeerListener接口主要有5个方法
DebugReturn方法:主要提供各类错误与警告【供开发者】查看,在开发状态下协助开发者纠错。比如:讲上面客户端Program.cs里的地址localhost:5055,改成localhost:5050运行的时候还是会不停的请求,但是无法成功连接,程序是不会报错的。这个时候我们在DebugReturn方法里打印一下message帮助查找问题源OnEvent(EventData eventData):处理Photon Server发送过来给客户端处理的事件。Event用于客户端和服务端沟通,操作(Operation)通常会触发Event,可以通过Event Code直到事件类型。时间的消息内容通常包含着它的Parameters里。这里暂作简单介绍
OnMessage(object messages):消息回调函数
OnOperationResponse(OperationResponse operationResponse):响应Operation的回调函数,比如加入游戏房间操作,服务器会分配给每个客户端一个编号。这个Client的编号就可以通过响应回调函数获取
OnStatusChanged(StatusCode statusCode):连接状态函数,当游戏的异步操作完成活发生错误时候,状态发生改变回调这个函数
2、PhotonPeer类
PhotonPeer主要功能是客户端和Photon Server 通信。可以理解为对等通信点或者勉强理解为信使。PhotonPeer通过listener和通信协议和服务端通信。。每个Application都可以有多个PhotonPeer,但是每一个不同的PhotonPeer都应该有自己listener用来监听事件、操作、回调函数。这里的listener就是继承IPhotonPeerListener接口的类的实例。peer.Connect调用的时候并不会直接去连接服务器,只有当peer.service()调用的时候才会向服务器发送请求。
后文再详解
相关文章推荐
- XML 实体扩展攻击
- linux 读取input输入设备demo
- C++变量、表达式及赋值语句
- XML 实体扩展攻击
- PHP错误机制知识汇总
- linux下的VI命令大全
- JSPatch-iOS热补丁方式快速修复bug
- iOS自定义tabbar(没有tabbar上的黑线)
- CSS盒模型全面讲解,怪异模式盒模型,CSS3 box-sizing属性
- 解决python问题:IndentationError :1. notepad++ 显示行号 2.tab自动转化为空格符
- Ubuntu14.04 gnome3下gedit首选项消失如何修改gedit主题
- JS高程读书笔记-第一、二章-内附在线思维导图和quizlet卡片
- CPM、CPC、CPA、PFP、CPS、CPL、CPR等广告术语是什么意思
- parted命令对齐分区,获得最佳性能
- js跨域的研究
- Android 百度地图-实现POI的搜索(搜索周边)
- 软工之我见
- Centos下安装docker-compose
- 【Java】IPv4 字符格式和整型格式相互转化
- 响应式设计