Windows Phone Marketplace发布攻略

  作者:马宁 最近Windows Phone 7很火,Windows Phone 7的Marketplace也很火,开发者们都想趁Marketplace中应用数量还不算多的时候,抢占制高点。对于如何在Marketplace中发布软件的过程,相信大家都有所了解,我只是结合微软的官方流程,将自己的经验、教训写出来,希望能够节省开发者的时间。毕竟测试失败一次,就要耽误三至四天,同类的软件可能就会抢占先机。 至于Marketplace申请帐号的问题,我的经验可能无法给你什么实质性的帮助,所以请大家参考Jake Lin的文章《注册Windows Phone Marketplace经验》: http://www.cnblogs.com/procoder/archive/2010/12/13/Windows-Phone-Marketplace.html 第一步:编译XAP Visual Studio 2010每次编译后,会自动生成XAP文件,大家可以在工程文件的Bin目录下找到,千万记得要 Build一个Release版的出来。提交Debug版可能会造成很多意想不到的错误。 在编译XAP前,记得替换两个文件:Background.png(173×173)和GameThumbnail.png(64×64)。将这两个图片替换成与你的软件主题有关的图片,绝对不要使用默认提供的图片。这两个文件的长宽是有限制的,我们稍后会详细解释。   第二步:准备发布资料 很多开发者会以为写完了程序,编译出XAP就可以发布了。其实不是这样,建议大家在做提交前,还是仔细阅读一下微软的《App Hub Application Submission Walkthrough》: http://create.msdn.com/en-US/home/about/app_submission_walkthrough_upload 下面是我总结出来的文件列表,大家可以逐项核对: 1. XAP文件(Release版,已经替换Background.png和GameThumbnail.png) 2. 应用程序名称(必须是Marketplace唯一的,所以做好改名准备) 3. 应用程序标题(显示在Marketplace和开始菜单里,最好不要超过16个字符) 4. 详细描述: 描述软件的主要功能、如何使用等情况。对于中国开发者来说,如果你的软件界面中主要使用了中文,必须在描述中用英文在首要位置上说明,并且提供英文、中文的两种描述,缺一不可。 5. 关键字(方便用户搜索,不多做解释了) 6. App tile 软件图标,三种尺寸的相同图片:173x173,99x99,200x200。图片尺寸必须是规定格式,系统不会为你做裁剪,所以要提前准备好,省得到时候抓狂。图片必须采用PNG格式。 7. Background art 可选项,Zune应用程序里的背景图,尺寸1000x800,可以提高软件的吸引力。 8. Screenshots 软件截图,至少一张,最多8张。尺寸是480x800。因为要竖着显示软件截图,所以横屏显示的软件要考虑好对策。 9. 软件价格 Tips 1, 建议将以上提到的资料放在一个文件夹里,文字资料则放到一个文本中。因为提交时要进行修改,存放到文本中便于保存和记录; 2,…


Windows Phone7中的IronRuby

作者:马宁 示例代码下载地址: WP7_aawolf_IronRubyWP7.rar 写这篇BLOG完全是因为看了MSDN上的这篇文章: http://msdn.microsoft.com/en-us/magazine/ff960707.aspx Windows Phone 7的开发工具不支持动态语言,所以IronRuby支持Windows Phone 7就显得格外重要了。刚看这篇文章的时候,还闹了个笑话,看了一遍代码,一句都不认识,心想难道语言换到.NET上,变化怎么这么大?仔细一看,原来是Ruby,而不是Python ^_^,小蟒蛇这次落后了。以前用Python写过自动化测试脚本,没接触过Ruby,所以,把Ruby看成Python了。 不支持动态语言,一直是Windows Mobile编程的痛,这次终于有搞头了。终于可以动态改变程序的逻辑了,光这一点就给我们提供了无限的想象空间。Windows Phone上的F#也快了吧?^_^ 言归正传,这次我完全是照葫芦画瓢,只是将自己尝试中的一些关键点写出来,让大家少走弯路。更多信息大家可以参考Shay Friedman的BLOG:http://ironshay.com/ 首先,我们要下载IronRuby for Windows Phone版本(.NET 3.5): http://ironruby.codeplex.com/releases/view/43540#DownloadId=133276 然后,在Visual Studio 2010中创建一个Silverlight for Windows Phone 7的工程,工程名叫做“IronRubyWP7”,然后选择“Project”菜单的“Add Reference”选项,在弹出的对话框中,选择“Browse”标签,我们可以找到解压后的IronRuby目录,将\silverlight\bin中的DLL文件加入到工程中来: 在忽略一些警告提示之后,程序集将被加入到工程中。我们可以在Solution Explorer中看到刚被加入的程序集: 接下来,我们在工程中添加一个文本文件,在Solution Explorer中选中IronRubyWP7,右键,“Add”-“New Item”,在对话框中选择“Text File”,将文件名改为“MainPage.rb”。 选中MainPage.rb文件,在属性中将“Build Action”设置为“Embedded Resource”。 我们打开MainPage.rb文件,输入下面的Ruby代码:   # Include namespaces for ease of use include System::Windows::Media include System::Windows::Controls # Set the…


马宁的Windows Phone 7开发教程(4)——XNA显示中文字体

我最近勤快地连自己都有些不可思议。昨天有朋友在上一篇文章里留言,批评Windows Phone 7暂时没有支持中文版的问题。凡事都有个过程,在中文版出来前,咱们想自己想点办法吧。Silverlight for Windows Phone那边就不管了,肯定会有人想出办法来的。如何让Windows Phone 7游戏显示中文?把说“贴图”的那个人拖出去打死!因为XNA 4.0中支持中文的办法倒是现成的,这与XNA字体支持的方式有很大关系。 示例代码下载地址: http://files.cnblogs.com/aawolf/XNA_aawolf_SIP_Chinese.rar 绘制字体 我们先来看一下XNA中如何绘制字体,MSDN上的描述很好: http://msdn.microsoft.com/en-us/library/bb447673.aspx 关于字体授权的问题咱们就不纠结了,提醒一句,使用某种字体前首先确认是否能够使用、再分发。绘制字体的第一步是,创建Sprite Font字体。XNA中使用的字体文件叫做Sprite Font,文件扩展名为.spritefont,XNA支持从.ttf将字体转换为.spritefont。 首先,我们在VS 2010的Solution Explorer中找到WindowsPhoneGame1Content项目,右键菜单点击“Add”-“New Folder”,将新文件夹命名为Font,然后在Font上右键点击,选择“Add”-“New Item”,然后在对话框中选择创建“Sprite Font”,将字体文件命名为StartFont。 在Solution Explorer中双击StartFont.spritefont文件,我们会打开一个XML文件,我们省去XML注释部分: <?xml version="1.0" encoding="utf-8"?> <XnaContent xmlns:Graphics="Microsoft.Xna.Framework.Content.Pipeline.Graphics"> <Asset Type="Graphics:FontDescription"> <FontName>Kootenay</FontName> <Size>30</Size> <Spacing>0</Spacing> <UseKerning>true</UseKerning> <Style>Regular</Style> <CharacterRegions> <CharacterRegion> <Start>&#32;</Start> <End>&#126;</End> </CharacterRegion> </CharacterRegions> </Asset> </XnaContent> 按照XML的注释,我们可以很容易的了解每一项的功能,只看高亮部分:FontName,字体的名称;Size,字体的大小;Style,指定字体是否为粗体、斜体等;CharacterRegion,字体区间,目前的设置为只显示ASCII字体。这一点也是非常适合游戏开发的,游戏没有必要提供完整的字符集支持。 接下来就是绘制代码了,首先在类中增加SpriteFont的变量: public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics;…

1

马宁的Windows Phone 7开发教程(3)——XNA下使用MessageBox和软键盘

作者:马宁 相信未来一段的业余时间,我都要和XNA为伍了。本来想向3D开发的纵深发展,但是遇到了一个实际的问题,就是如何在XNA下显示MessageBox和Software Input Panel。干脆先写出来吧,省得大家遇到这问题时抓狂。 按照为数不多的公开文档描述,XNA和Silverlight for Windows Phone应该是基于同一个.NET Compact Framework的CLR。但是,XNA并没有提供任何用户控件、MessageBox和软键盘等,也不能直接调用Silverlight for Windows Phone的类库。这样势必为XNA制造了很多人为的障碍。但调用MessageBox和Software Input Panel的后门,XNA还是给我们留下了,这就是Microsoft.Xna.Framework.GamerServices命名空间下的Guide类,类描述如下: http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.gamerservices.guide.aspx 该类不但可以调用MessageBox和软键盘,还能够调用Marketplace、XBox Live等窗体。不过,值得注意的是,Guide类提供的方法都是异步调用,而非同步调用,这也好理解,游戏的处理过程是以时间驱动的,所以任何操作不应该阻塞住游戏主线程。 Guide类调用MessageBox和软键盘的描述在这里: http://msdn.microsoft.com/en-us/library/ff827869.aspx http://msdn.microsoft.com/en-us/library/ff827868.aspx 但MSDN文档还是有一些瑕疵,按上面提供的方法会产生Exception,所以我在下面给出修改后可以运行的方法。运行环境基于VS 2010 + Windows Phone 7 SDK RTW版。 调用MessageBox 创建Windows Phone 7中XNA 4.0的工程,然后,我们在Update方法里添加对于MessageBox的调用。当然,大家请不要认为把MessageBox加到Update里正确的,这样会造成MessageBox不断弹出。我只是为了简化代码,才这么做的。 protected override void Update(GameTime gameTime) { // Allows the game to exit if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed) this.Exit(); // TODO: Add your…

1

Windows Phone XNA 4.0 3D游戏开发

  作者:马宁 程序代码编译环境Visual Stuido 2010, Windows Phone 7 SDK, XNA 4.0 Game Studio, 下载链接: http://files.cnblogs.com/aawolf/XNA_aawolf_3D.rar 今天有点空余时间,在看Windows Phone 7的开发。看到Silverlight for phone和XNA 4.0的开发文章已经有了不少,而且质量很高。我就来说说XNA 4.0的3D开发这个领域吧,正好跟目前的工作有些关系,而且XNA 4.0的3D类库设计的非常好,比iPhone和Android的OpenGLES类库高出一个档次。以后学习3D开发,用XNA类库也是个不错的选择,而且Windows Phone模拟器对3D的支持也非常好。唯一的遗憾是,Windows Phone不支持C++的3D开发。 如果做过Zune上XNA 3.1开发的朋友可能会记得,在XNA 3.1中是不支持3D开发的,XNA 4.0中加入的3D支持类,主要包含在Microsoft.Xna.Framework.Graphics命名空间中。如果XNA 4.0中的3D概念与OpenGLES十分相似,我们可以找到很多相对应的函数、方法等,某种意义上,XNA 4.0的3D支持是对OpenGLES 2.0的封装。 一.一个简单的3D程序 我们就从一个简单的3D程序开始吧,这个程序的原来介绍在下面这个链接里。 http://msdn.microsoft.com/en-us/library/bb203926.aspx 不过移植到Windows Phone 7上时,还是遇到了一些小问题,有的是文档的问题,有的是接口变化。如何在Visual Studio 2010里创建XNA 4.0的工程就不多说了,大家可以参考我写的《Windows Phone开发工具初体验》,链接如下: http://www.cnblogs.com/aawolf/archive/2010/08/28/1811438.html XNA 4.0的程序是派生自Microsoft.Xna.Framework.Game的类,开发者需要重载Game的四个方法:Initialize(初始化)、LoadContent(加载内容)、UnloadContent(卸载内容)、Update(更新)和Draw(绘制)等方法。 首先,我们在Game1类中加入所需要的一些私有变量: Matrix worldMatrix; Matrix viewMatrix; Matrix projectionMatrix; VertexPositionNormalTexture[] cubeVertices; VertexDeclaration…

4