zoukankan      html  css  js  c++  java
  • Silverlight游戏开发初探(下篇)

         目前,HTML5的话题很热,Flash及Silverlight的未来会不会因为HTML5而变得无所事事?我的个人看法是,HTML5仍有很长的路要走,即使将来标准成熟了,Flash与Silverlight也将仍有它们的用武之地,它们各自将在自己适合的领域发挥作用,各自会得各自开发群体的支持,很难说谁能取代或消灭谁。

      谈到网络多人游戏的开发,游戏中客户端与服务端需要频繁的信息交流,本人对WCF只有初步了解,感觉用来做大型游戏的通讯似乎有点免为其难,别担心,Silverlight为我们准备了Socket. 从网上搜了一下,关于介绍Silverlight Socket的文章并不少。如:

    在silverlight中利用socket发送图片或文件
    Silverlight的socket通信实例源码

    Silverlight Socket 实现收发信息

    朋友们可以以此来构建自己的通讯方式,但要做好一款大游戏的后台通讯模块,并不是一件容易的事,本人也没有构建大型游戏后台的经验,但只要我们已经出发了,只要努力就一定能够达到胜利的彼岸。

    在多人网络游戏中,NPC的驱动全是由服务器端来完成,由服务器端传到客户端的信息,再驱动客户端相关元素的动作,在通讯进程中操作界面元素,我们可以使用Dispatcher对象的BeginInvoke方法,如下:

      ShowChat_("我来了,大家好")

      Private Delegate Sub Dele_ShowChat(ByVal strChat As string)
        Private Sub ShowChat_(ByVal strChat As string)
            Me.Dispatcher.BeginInvoke(New Dele_ShowChat(AddressOf ShowChat), strChat)
        End Sub
        Private Sub ShowChat(ByVal strChat As string)
                txtDisplay.text &=vbcrlf & strChat
        End Subs

     这样,使用Silverlight开发多人网页游戏基本上问题不大了,当然开发大型游戏不是件简单的事,其中有太多的细节需要去做。

     在前面单人游戏的基础上,我加了个服务端,构成了一个简单的多人游戏实例。有兴趣的朋友可以点击查看多人游戏在线演示

     (因服务端程序是放在朋友的主机上,不一定所有时候都是通的。如果不通,那此演示也就无法查看了. )

     另考虑到一些原因,这个多人游戏的演示源码就不提供了。朋友们可以参考上面的链接设计通讯模块。

     Silverlight游戏开发初探(上篇)

  • 相关阅读:
    nginx的那些事儿
    mysql优化初探
    mysql使用心得
    mysql 利用触发器来实现check约束
    mybtatis添加数据返回主键
    maven导入本地jar包
    mariadb做读写分离
    linux网络(一)
    kali进行arp嗅骗和攻击的一次记录
    Vue项目中:axios请求拦截器添加token验证
  • 原文地址:https://www.cnblogs.com/sigame/p/1726029.html
Copyright © 2011-2022 走看看