`
luc15luc
  • 浏览: 16468 次
社区版块
存档分类
最新评论

如何将OpenXLive添加到WP7 Silverlight游戏中

 
阅读更多

如何将OpenXLive添加到WP7 Silverlight游戏中
2011年04月02日
  OpenXLive beta版发布已经有一个半月的时间了,得到了开发者和玩家的好评,目前已经有五款OpenXLive游戏进入Windows Phone Marketplace,其中的7bomb和Super Hoops都取得了非常骄人的成绩。
  当OpenXLive在XNA游戏中大展身手的同时,我们也听到了一些来自Silverlight程序员的抱怨。在Windows Phone 7中虽然提供了XNA的游戏开发平台,但相当一部分的游戏是采用Silverlight开发的。毕竟对于显示性能不高的游戏来说,Silverlight是一个颇具魅力的快速开发工具。
  幸好,我们在最初的架构设计上考虑了未来支持Silverlight的可能性,所以将业务逻辑部分封装到了OpenXLive.dll中,而将XNA上的XLiveForm窗体和控件库封装到了OpenXLive.Forms.dll中。我们只需要在Silverlight中调用OpenXLive中的功能即可。
  在提供了一个OpenXLive on Silverlight的简单示例代码后,我们发现对Silverlight游戏的支持仍旧不够。首先,我们只提供了Leaderboard部分的示例代码,在缺乏文档的情况下,开发其他功能的UI是很困难的;其次,开发者并不希望自己动手写一个Silverlight UI,而只是想简单地在游戏中加入OpenXLive的支持,就像在XNA游戏中那样。
  所以,我们重新定义了OpenXLive Silverlight的功能,实现了OpenXLive中的所有功能,并将其封装到了OpenXLive.Silverlight.dll中。在开发过程中,我们尽力保持XNA和Silverlight框架的一致性,如果您使用过OpenXLive XNA版本,在Silverlight版本中,您会有一种似曾相识的感觉,这正是我们所希望的。
  需要提示的一点是,OpenXLive的Silverlight和XNA版本共同使用了一个逻辑程序集――OpenXLive.dll,所以他们在功能上是一致的。
  未来,我们会将OpenXLive Silverlight加入到OpenXLive SDK中,并提供Visual Studio模板。在某一个时间点上,我们会考虑对OpenXLive Silverlight进行开源,让开发者能够方便的将OpenXLive Silverlight修改成自己想要的样子。 微软为Windows Phone 7上的XNA和Silverlight游戏开发提供了非常好的开发工具和应用程序框架,使得开发者可以更加容易地开发出生动有趣的游戏来。但是随着开发的深入,我们发现,虽然我们开发的游戏品质可以和大公司的产品相媲美,但比起大公司游戏的用户体验还是相差很多。因为,我们必须将很多时间用于周边功能的开发,比如:启动界面(Splash Screen), 积分榜(Leaderboard)和游戏成就(Achievement)等,更不要奢谈为游戏加入SNS功能,比如:查看在线用户(Online Player)、云存储(Cloud Storage)等在线功能了。这些周边功能的开发时间,可能要超过游戏本身的开发时间,那我们该怎么办呢?
  OpenXLive正在想办法帮助个人开发者和小团队开发者,使他们在最短的时间内拥有以上这些只有大公司才可能拥有的游戏功能。
  
  OpenXLive是一种为Windows Phone 7智能手机游戏开发者提供的云端在线服务。支持开发者为单机游戏增加云端和SNS功能,帮助开发者以最小的工作量将云端服务集成到自己的游戏中。这些云端服务包括:积分榜、游戏成就、在线对战、Social Network和云端存储等功能。与Open XLive类似的服务,还有iOS上的OpenFeint。
  OpenXLive目前支持Windows Phone的XNA与Silverlight开发框架,不需要开发者编写UI代码,即可在游戏中方便地调用OpenXLive的界面及功能。由于XNA和Silverlight是两个不同的应用程序框架,所以,OpenXLive提供了不同的引用方式来支持XNA和Silverlight游戏。
  本文讨论的是如何将OpenXLive加入到Silverlight游戏中,如果您的游戏采用XNA编写,请查看《OpenXLive开发入门》,链接如下:
  http://wiki.openxlive.net/Getting-Started-with-Ope n-XLive.ashx 您可以在下面的链接中下载单独的OpenXLive Silverlight SDK: http://resource.openxlive.com/resource/Download/ad 686043-d477-4d5a-bc83-f27520a3d600 首先,我们假设您已经有了基于Silverlight开发的Windows Phone游戏。如果您想从头创建一个OpenXLive Silverlight游戏,您可以参考下一节《OpenXLive Silverlight向导使用》。
  我们采用的示例工程OpenXLiveGameSilverlight,您可以在OpenXLive的资源网站中找到。
  首先,我们在OpenXLive SDK的bin文件夹下找到OpenXLive.dll和OpenXLive.Silverlight.dll,将其拷贝到工程所在的目录中。
  然后,在Visual Studio 2010中,打开OpenXLiveGameSilverlight工程,在Solution Explorer中找到References节点,右键单击啊,选择Add References,在对话框中选择Browse页面,找到工程目录下的OpenXLive.dll和OpenXLive.Silverlight.dll,将两个程序集的引用加入到工程中。
  添加成功后,如下图所示:
  
  在引用添加完成之后,我们还要修改WMAppMainifest.xml文件,使Silverlight游戏启动时,启动OpenXLive.Silverlight中所包含的Startup页面。
  在工程的Propertes节点下找到WMAppMainifest.xml文件,双击打开,如下图所示:
  
  WMAppMainifest.xml文件的结构如下: ="http://schemas.microsoft.com/windowsphone/2009/d eployment"AppPlatformVersion="7.0">Appxmlns=""ProductID="{3cf35939-f7f6-4808-969c-22d520f6a526}"Title="OpenXLiveGameSilverlight"RuntimeType="Silverlight"Version="1.0.0.0"Genre="apps.normal"Author="OpenXLiveGameSilverlight author"Description="Sample description"Publisher="OpenXLiveGameSilverlight">IconPathIsRelative="true"IsResource="false">ApplicationIcon.pngIconPath>Capabilities>CapabilityName="ID_CAP_GAMERSERVICES"/>Capabilities>Tasks>DefaultTaskName="_default"NavigationPage="OpenXLive.Silverlight;component/Forms/StartupPag e.xaml"/>Tasks>
  在WMAppMainifest.xml文件中找到DefaultTask节点,并将其中的NavigationPage改为”OpenXLive.Silverlight;component/Forms/StartupPage. xaml”。这样能保证Silverlight游戏启动之后,会首先启动OpenXLive的Startup页面。
  接下来,我们还要完成对XLiveSLFormManager对象的初始化工作。打开工程中的App.xaml.cs文件,首先在文件顶部加入对OpenXLive.Silverlight的引用: 然后,在App类中找到Application_Launching方法,加入XLiveSLFormManager对象的创建操作: 其中,第一个参数为App实例的引用,第二个参数为SecretKey,该Key是在OpenXLive网站上创建游戏时,由系统生成的,作为OpenXLive系统识别游戏的唯一标识符,请保证这个SecretKey的安全,以防止其他游戏进行仿冒。
  更多详细情况,请查看《在开发者网站上创建OpenXLive游戏》,链接如下:
  http://wiki.openxlive.net/Tutorial-4-Create-OpenXL ive-Game-in-website.ashx
  当然,我们也可以在App类中创建一个static的FormManager属性,用于在程序的其他地方调用XLiveSLFormManager对象,但这一步不是必须的,代码如下: 我们运行程序,能够看到下面的界面,是不是有一种似曾相识的感觉?点击Game Center和Leaderboards,我们可以进入相关的界面:
  目前OpenXLive Silverlight只支持竖屏(Portrait)显示,未来我们会加入对于横屏(Landscape)的支持。另外,除了Startup界面之外,其他OpenXLive界面都是黑色背景,这样做主要是为了节省系统资源。 接下来,为了美化启动界面,我们要加入背景图片。添加背景图片的操作非常简单:在Solution Explorer中,选择Project节点,右键单击,选择Add
分享到:
评论

相关推荐

    cocos2d-x for xna 2D游戏引擎源码

    cocos2d-x for xna 2D游戏引擎源码 xna cocos2d-x是一个用C#编写的2D游戏引擎,基于[cocos2d-x][1]和使用MIT 协议。 引擎由 [cocos2d-x][1] 和 [OpenXLive][2] 联合开发。 cocos2d-x for xna is a 2D game ...

    iOS DevCamp幻灯片分享:在iOS平台上用Cocos2D做开发 | iOS独立开发者 秦春林

    本议题将以引擎移植者的身份清晰的讲解Cocos2D的结构,除此之外,还会分享App开发中的实际问题,例如灵活使用层,管理好触摸,整合使用Box2d物理引擎,Cocos2D与UIKit的整合等等开发中遇到的常见问题。 讲师简介:...

    Cocos2d-x for xna 2D游戏引擎源码下载

    一款Cocos2d-x for xna 2D游戏引擎源码下载,该源码na cocos2d-x是一个用C#编写的2D游戏引擎,基于[cocos2d-x][1]和使用MIT 协议。 引擎由 [cocos2d-x][1] 和 [OpenXLive][2] 联合开发。 cocos2d-x for xna is a 2D ...

    员工考勤系统.docx

    员工考勤系统.docx

    基于STM32的调试模块的外设和时钟电路分析

    基于STM32的调试模块的外设和时钟电路分析。回顾 CMSIS、LL、HAL 库

    基于 UDP 的分布式毫米波雷达python代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    pyzmq-25.1.1b2-cp36-cp36m-musllinux_1_1_x86_64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    grpcio-1.7.0-cp35-cp35m-macosx_10_7_intel.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    免费的浏览器内JSON到 CSV 转换器

    在处理 JSON 数据时,尤其是为了便于分析和共享,常常需要将其转换为 CSV 格式。免费的浏览器内 JSON 到 CSV 转换器为用户提供了简便而高效的方法来完成这一任务,无需额外的软件安装。这些工具通常基于 JavaScript,直接在浏览器中运行,适合开发者、数据分析师及其他需要转换数据格式的用户。 ### **免费 JSON 到 CSV 转换器的概述** **功能介绍** 1. **无安装要求** - **浏览器运行**:无需下载或安装任何软件,用户只需通过浏览器访问相应的在线工具,即可进行 JSON 到 CSV 的转换。 - **跨平台支持**:兼容 Windows、macOS、Linux 等操作系统,以及各种浏览器(如 Chrome、Firefox、Edge)。 2. **用户界面** - **简洁直观**:通常提供一个简单的文本框用于输入或粘贴 JSON 数据,并带有一个按钮或选项来触发转换。 - **即时转换**:点击转换按钮后,立即生成 CSV 数据,并提供下载链接或直接显示转换结果,便于复制或导出。 3. **支持大部分 JSON

    miflash_unlock.zip

    miflash_unlock.zip

    模型转换-OpenVINO模型IR-XML转换为onnx模型-附项目源码+使用教程-优质项目实战.zip

    模型转换_OpenVINO模型IR-XML转换为onnx模型_附项目源码+使用教程_优质项目实战

    pyzmq-25.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    测试1111111111111111

    测试1111111111111111

    Hume AI发掘AI新赛道 大模型为人类提供情绪价值

    OpenAI在推出GPT-4之后,大模型各方面的功能都再次升级,但是聊天功能方面人工智能的回复还是过于理性,不能满足人类想要的情绪价值。不过为人类提供情绪价值,让聊天回复更像真人这件事儿,有个大模型正在做。不久前,Hume AI 宣布推出首个基于大语言模型的语音对话式聊天助手EmpatHic Voice Interface(EVI),主打一个“有情商”。

    人脸识别matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    18细石混凝土楼地面工程.doc

    18细石混凝土楼地面工程

    grpcio-1.22.1-cp35-cp35m-win_amd64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    grpcio-1.7.3-cp35-cp35m-macosx_10_7_intel.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    cryptography-2.9.1-cp35-abi3-macosx_10_9_x86_64.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    02现浇顶板内管路敷设工程.doc

    02现浇顶板内管路敷设工程

Global site tag (gtag.js) - Google Analytics