当前位置: 首页 > news >正文

塑胶原料 东莞网站建设/网站推广基本方法是

塑胶原料 东莞网站建设,网站推广基本方法是,专业网站建设开发,泰州 做网站2019独角兽企业重金招聘Python工程师标准>>> XNA是微软推出的一个基于DirectX的.net平台游戏开发框架,用来开发XBOX和Windows桌面的游戏,后被移植到了 silverlight和windows phone上。内部是一个game loop,不同于事件驱动模式&…

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

XNA是微软推出的一个基于DirectX的.net平台游戏开发框架,用来开发XBOX和Windows桌面的游戏,后被移植到了 silverlight和windows phone上。内部是一个game loop,不同于事件驱动模式,但也不难掌握,性能方面还是不错的。下面就用XNA创建一个简单的局域网游戏。

网络连接无外乎就是那么几个阶段,连接-发送、接收数据-断开。

用到的几个主要的类是:

复制代码
using Microsoft.Xna.Framework.Net;//网络连接会话类         NetworkSession networkSession;//发送packet的类         PacketWriter packetWriter = new PacketWriter();//读取packet的类         PacketReader packetReader = new PacketReader();
复制代码

游戏开始需要有一个人来创建一个session,然后有人来加入到你创建的游戏当中来。

创建游戏session:

复制代码
// 创建一个session,最大人数2             networkSession = NetworkSession.Create(NetworkSessionType.SystemLink, 1, 2);networkSession.AllowHostMigration = true;networkSession.AllowJoinInProgress = false;//绑定join和left时间             networkSession.GamerJoined += GamerJoined;networkSession.GamerLeft += GamerLeft;void GamerJoined(object sender, GamerJoinedEventArgs e){//tag是一个object类型的容器,用来保存用户自定义的信息。                 e.Gamer.Tag = new entity;}void GamerLeft(object sender, GamerLeftEventArgs e){networkSession.Dispose();networkSession = null;}
复制代码

加入游戏:

复制代码
// 查找是否存在游戏session             AvailableNetworkSessionCollection sessions =NetworkSession.Find(NetworkSessionType.SystemLink, 1, null);if (sessions.Count > 0){//如果session存在,就加入到这个session中                 networkSession = NetworkSession.Join(sessions[0]);//绑定join和left事件,同上                 networkSession.GamerJoined += GamerJoined;networkSession.GamerLeft += GamerLeft;}
复制代码

加入到游戏session之后就开是玩家之间进行数据的传输和接收了。

复制代码
protected void UpdateLocalPlayer(GameTime gameTime){// 获取本地玩家             LocalNetworkGamer localGamer = networkSession.LocalGamers[0];// 获取上面绑定到tag中的entity             entity sprite = (entity )localGamer.Tag;// 写入数据到packetWriter中             packetWriter.Write((int)1);packetWriter.Write(Vector.Zero);// 发送数据             localGamer.SendData(packetWriter, SendDataOptions.InOrder);}
复制代码
复制代码
protected void ProcessIncomingData(GameTime gameTime){// 获取玩家             LocalNetworkGamer localGamer = networkSession.LocalGamers[0];//是否有数据可读取             while (localGamer.IsDataAvailable){//接收数据                 NetworkGamer sender;localGamer.ReceiveData(packetReader, out sender);//忽略到自己发送的数据                 if (!sender.IsLocal){//读取数据到packetReader中                     MessageType messageType = (int)packetReader.ReadInt32();}foreach (NetworkGamer gamer in networkSession.AllGamers){if (!gamer.IsLocal){//获取绑定到tag中的实体             entity _e= ((entity)gamer.Tag);//读取packetReader中的数据             Vector2 Pos = packetReader.ReadVector2();}//add some game logic here             }}}
复制代码

在接收到数据之后就可以在Update方法中写游戏逻辑,最后Draw方法也很简单。

复制代码
// 循环所有游戏玩家             foreach (NetworkGamer gamer in networkSession.AllGamers){//调用entity中的draw方法                 entity sprite = ((entity)gamer.Tag);sprite.Draw(gameTime, spriteBatch);}
复制代码
代码都很简单,一看就懂,感兴趣的朋友可以自己去找些资料来看。

转载于:https://my.oschina.net/dgwutao/blog/59176

http://www.lbrq.cn/news/1601137.html

相关文章:

  • 织梦装修网站模板/娄底地seo
  • title 门户网站建设招标书/推广普通话心得体会
  • 珠海网站建设知识/快速提高关键词排名的软件
  • 网站地图 设计/网络营销的方式有哪些
  • 杭州seo网站推广/网络营销的三种方式
  • 网站建设南昌/软文网站有哪些
  • 个人电脑建立网站/长沙官网seo技术
  • 做搜索网站挣钱/百度seo点击排名优化
  • 企业营销网站模板免费下载/查网站
  • 温岭市建设工程质量安全网站/360推广登录平台
  • office做网站的软件/360营销
  • 泰州百度seo公司/seo关键字优化
  • 郑州企业网站设计公司哪家好/小程序推广运营的公司
  • 织梦做动漫网站/快点tv下载安装
  • 制作社交app的网站/网络优化公司有哪些
  • html网站模版/优化网站排名
  • 给传销产品做网站/西安网
  • 武汉网站建设dw027/线上营销
  • 南京每月做社保明细在哪个网站查/1个百度指数代表多少搜索
  • 建筑网建设通网站作用/武汉seo网站优化技巧
  • h5响应式网站开发成本/种子资源
  • 茂名专业网站制作公司/网站权重如何查询
  • 永康网站优化/怎么进行网络推广
  • 有哪个网站可以做口腔执业助理医师题库/网站优化排名查询
  • 做外贸选取哪个网站/厦门人才网官网招聘
  • 对网站建设培训的建议/成都网站搜索排名优化公司
  • 制作婚恋网站/搜索引擎优化介绍
  • 如何在网站做404页面/第三方营销策划公司有哪些
  • 泰安网站开发公司/怎么进行推广
  • 做论坛网站需要备案/全网营销代理加盟
  • Claude Code六周回顾
  • (论文速读)Text-IF:基于语义文本引导的退化感知交互式图像融合方法
  • C++-异常
  • 区块链 和 一致性哈希的结合
  • 网关与路由器的区别
  • 线程锁-互斥、自旋、读写、原子操作、线程池