2011-04-23 14:52 by Terry_龙, 3451 visits, 网摘, 收藏, 编辑
摘要:protobuf 是什么? Protocol buffers是一种编码方法构造的一种有效而可扩展的格式的数据。谷歌使用其内部几乎RPC协议和文件格式的所有协议缓冲区。 参考文档 http://code.google.com/intl/zh-CN/apis/protocolbuffers/docs/overview.html API的参考文档 protobuf 适用的语言 正宗(Google 自己内部用的)的protobuf支持三种语言:Java 、c++和Pyton,很遗憾的是并不支持.Net 或者 Lua 等语言,但社区的力量是不容忽视的,由于protobuf确实比Json、XML有速度上.
阅读全文
2011-04-22 14:16 by Terry_龙, 1406 visits, 网摘, 收藏, 编辑
摘要:导入以下命名空间:using System.Windows.Media.Imaging;using System.IO;using Microsoft.Xna.Framework.Media;全部代码如下:1publicvoidCaptureScreen(objectsender,EventArgse)2{3WriteableBitmapbmp=newWriteableBitmap(480,800);4bmp.Render(App.Current.RootVisual,null);5bmp.Invalidate();67MemoryStreamstream=newMemoryStream().
阅读全文
2011-03-26 19:55 by Terry_龙, 2125 visits, 网摘, 收藏, 编辑
摘要:碰撞检测在几乎任何游戏都是很关键的一个部分,而碰撞检测又决定了游戏的流畅性,它对流畅性的影响如何之大的原因,在于碰撞检测算法越是精确到位,游戏将会运行得越缓慢。在碰撞检测方面,很明显需要在准确性和性能之间进行权衡。 实现碰撞检测最简单和快速的方式是通过包围盒算法。当用一个包围盒算法时,就需要在屏幕上的每个物体(纹理图像)周围“画“一个盒子(矩形块),然后检查这些盒子是否相交,如果产生相交(怎么听起来这么耳熟?),就即可判断出是产生碰撞了。经典的碰撞游戏可以看看如今某I设备上风靡全球的小鸟通过物理算法和碰撞检测等实现这只小鸟欺负小猪的传说,这点是很值得借鉴滴。本篇学习文章将会有两个纹理图,一个.
阅读全文
2011-03-23 17:34 by Terry_龙, 1998 visits, 网摘, 收藏, 编辑
摘要:通过上面几节的学习,慢慢的掌握了精灵的一些基本常识,但是我们知道游戏中游戏精灵都是富于表现能力的,并且通过不同的动作或者动画去构造一个游戏。这篇文章将学习如何使用系列图为游戏精灵添加动画效果,以下面这一系列图为例,将其分割显示:--这个图片是偷 深蓝 的 这是一张png图片,我们还是需要把它加载到纹理图形中,可以考虑如何在精灵位图上轮流获得独立的精灵帧。以下编写这个精灵帧所要先得到的信息:精灵位图中每个单独图像(帧)的宽和高精灵位图的行与列的总数指示接下来精灵位图中将要绘制精灵帧在精灵位图中所处的行与列的位置索引 上面的那张精灵位图中,每个单独精灵帧的宽和高都是150像素,有10行1列。所以.
阅读全文
2011-03-22 17:34 by Terry_龙, 1746 visits, 网摘, 收藏, 编辑
摘要:游戏很多都是涉及到操纵游戏精灵的相关知识,本篇还是根据游戏精灵的一些常用知识做的学习,下面是本文大纲:精灵界面居中精灵放大并且旋转纹理的层深度 精灵在界面居中上篇文章我们为游戏添加一个背景图片,接下来我们希望不让游戏精灵走动了,而是让其在游戏的正中间停靠。默认Window.ClientBounds这个矩形块可以获得当前设备的宽度和高度-(这里是绝对宽度和高度,无论你屏幕如何旋转它始终获取原始宽高。)而使用graphics.GraphicsDevice.Viewport 获取设备的宽高则是通过上面设置的PreferredBackBuffer 属性获取而来。这个是两者的区别使精灵界面居中,代码如下
阅读全文
2011-03-21 23:33 by Terry_龙, 1715 visits, 网摘, 收藏, 编辑
摘要:继上篇文章,有一个问题遗留了下来。就是Update方法与Draw 方法这两个方法的呼叫时机,通过上篇文章,我们知道重写了Update方法 是用来更新游戏状态的,而重写Draw 方法是用来显示游戏画面的。当游戏程序一进入运行时间便会不断地呼叫Update 方法和Draw 方法。注意:并不是每一次Update 方法被呼叫之后,Draw 方法就会跟着被呼叫(正常情况是这个顺序)。Update 方法与 Draw 方法被呼叫的频率要视Game1 的属性IsFixedTimeStep 值而定。true (默认值)时游戏处于固定更新(fixed-step)模式。如果程序绘制画面时无法跟上更新频率,则会调用.
阅读全文
2011-03-20 13:21 by Terry_龙, 2340 visits, 网摘, 收藏, 编辑
摘要:之前一直在做Android 的软件应用,包括现在学习Wp7 开发也一直未接触过游戏方面的开发。这几天对XNA开发粗略的看了一下,也找了相关的文档,觉得对于学习XNA方式开发WP7游戏应用应该是一件很酷的事。也是对自己本身职业技能的提高吧。学习XNA开发游戏需要的工具Visual Studio 2010 前提是安装了Developer Tools 套件或Express for Windows PhoneMicrosoft Cross-Platform Audio Creation Tool 3 (XACT3):XACT 是一个由 Microsoft 开发的跨平台的音效建立工具,可以协助您建立游.
阅读全文
2011-03-03 21:31 by Terry_龙, 2660 visits, 网摘, 收藏, 编辑
摘要:AdVertising 广告控件是微软移动战略上的另一个组件,该组件可以轻松帮你在你的应用程序或者XNA框架游戏上显示广告。使用该组件的优势:赚更多的钱 这个组件为您的应用程序显示各种移动广告,这是一个实时的、轮换的、非常优秀的显示广告方法。显示内容包括各地的经销商和采购商包括了微软在内的adCenter 和大型微软广告市场。快速、无争议 AdVertising广告控件通过简单的控制、自助式的开发者签约,报告和自动支付系统使开发商能够从中收益。其中,该组件的SDK不仅支持Silverlight for Windows Phone 框架还支持XNA for Windows Game 框架的Wi.
阅读全文
2011-02-27 20:56 by Terry_龙, 1465 visits, 网摘, 收藏, 编辑
摘要:组件描述 该组件为Windows Phone 7 本身C#框架扩展了一系列方法,可以使你在编写代码的时候减少重复复制,并且增加了许多通用功能,使你的编写代码的时候可以更加流畅和得以应手。扩展类别该组件是将我们日常常用到的数据类型或者集合等操作再一次封装成易于使用的静态方法,分类为如下几大类:String 字符串扩展DateTime 日期扩展Guid 全局唯一标识符扩展IEnumerable 集合扩展Object 对象扩展Stream 流扩展Uri 统一资源标识符扩展Bool 真假“是否”扩展Int 整型扩展 扩展方法体以下为每个静态类的扩展方法列表StringExtensions静态方法成员截
阅读全文
2011-02-20 19:57 by Terry_龙, 3649 visits, 网摘, 收藏, 编辑
摘要:编写Asp.net的同学,经常会遇到一个Repeater 或者一个GridView ,当用户点击编辑状态时我们的列表组件会自动跳转到可选择(可供删除、编辑、选择等)状态。这时候一般的做法都会在组件的前方自动生成一系列复选框“CheckBox”,需要删除/选择哪行时只要在前方的复选框勾一下,便可以得到该行的数据或者行ID等。 上面的做法是一个比较典型的Web做法,那么在WP7 里面要实现这样的效果如何实现呢?有些同学就会说了,那简单使用ListBox 在它的数据模板里面添加一个CheckBox不就完事了吗?是的,这样是一种做法,但带来的问题是你得去控制他选中哪行并且得到
阅读全文
2011-02-14 21:08 by Terry_龙, 3078 visits, 网摘, 收藏, 编辑
摘要:说起Expression Blend ,开发过Silverlight 或者WPF的同学肯定会暗爽一把。微软把这一神器免费提供给我们开发者使用,特别是自从WP7 发布就立刻免费,可以看出微软对WP7的重视。 年底又好消息不断,微软和NOKIA组成战略合作伙伴,NOKIA将把携地图数据与营销能力加入WP7的创新等,无疑给我们WP7开发者一剂强心剂。好了废话不多说,回到主题。Expression Blend 工具简介一款专业设计工具,制作基于Microsoft Silverlight的应用程序的精美复杂用户界面。让设计人员集中精力从事创作,开发人员集中精力从事编程工作。每个团队成员都可以单独进行工
阅读全文
2011-01-27 23:19 by Terry_龙, 2332 visits, 网摘, 收藏, 编辑
摘要:Deep Zoom 本来是微软开发团队为Silverlight 富客户端做图片的展示做的一个工具,可以产生非常好的效果,随便WP7使用Silverlight 技术,这一功能也移植到移动设置。本篇主要学习如何使用Deep Zoom 处理、加载图片,大纲如下:DeepZoom 基本知识DeepZoomComposer 工具MultilScaleImage 控件的使用 ,主要用来展示DeepZoom 图片DeepZoom基本知识源于遥感影像的金字塔显示方式提供了与高分辩率图像进行交互的能力可以快速绽放图像而不影响应用的性能加载或平衡图像时可以光滑过渡,Spring Animation 说了一大堆,
阅读全文
2011-01-25 00:14 by Terry_龙, 2210 visits, 网摘, 收藏, 编辑
摘要:同样出自微软的产品,像ASP.NET 一样,Windows Phone 7 也有一个叫UserControl 的东西。这个相当于一个组件,类似于Android 继承View 。 本篇将实现一个用户控件,默认为它添加高宽,并为它添加一个自己的事件,通过本篇学习,你可以学习到如何编写一个Windows Phone 7用户控件,如何为它添加属性,如何为我们自己的用户控件添加事件处理。 实现的DEMO运行效果如下 : 当你点击文本后,可以执行一些你要的操作,例如关闭该对话框。 实现我们自己的用户控件,第一步先添加一个用户控件模板:创建完成后,可以看到设计图并不是我们熟悉的Windows Pho
阅读全文
2011-01-20 21:30 by Terry_龙, 1859 visits, 网摘, 收藏, 编辑
摘要:跟大部分智能手机一样,Windows Phone 7 也有上下文菜单,比较典型的比较可以拿Android 的上下文菜单做比较,都是需要用户长按某一Element (Android 称为某一View)时才会弹出一个菜单项。作为一个辅助的控件,它只能辅助于某一单于控件,而不能设置为在某一布局。这点和Android 有点小差别,Android 允许上下文菜单在任何时间长按某一单元或者称为VIEW也行,因为所有的活动都是包含在这个VIEW里面。这个可能是他们之间的区别吧。 就使用而言的话,Windows Phone 7因为有强大的封装能力把上下文也封装成控件形式,故较之Android 来得要方便一点
阅读全文
2011-01-16 21:41 by Terry_龙, 2171 visits, 网摘, 收藏, 编辑
摘要:在Android 我们需要在屏幕画图,或扩展SurfaceView 或扩展父类View 在OnDraw()里面使用画板和调色笔画画。而在微软的强大封装下,这种画图的试成为了控件的可能,微软将众多日常必要的画图都以控件展示,开发人员则无须过多学习使用Paint 、使用Canvas 等画图知识就能轻松在WP7 手机上画各种图,不过这种灵活性是否会降低呢?这个姑且不深究。 今天学习的WP7 画图控件有以下几种:InkPresenter 可否单纯理解为画图面板?Path 路径Ellipse 圆形或椭圆形Rectangle 矩形,方块矩形或圆角矩形Line 直线Polygon 封闭多边形Polylin
阅读全文
2011-01-13 20:26 by Terry_龙, 2911 visits, 网摘, 收藏, 编辑
摘要:Windows Phone 7 可以把它看成是Android 的 ListView ,WP7 只是预先在XAML里面为它的数据模板规定了格式,而Android 可以通过后期引入数据的方式为其添加数据模板。 Android 我们可以通过以下几种方式为LISTVIEW 添加数据,用法极其简单:继承ListActivity,使用SetListAdapter,参考下面的代码。 [代码]可自定义数据源,继承BaseAdapter ,参考下面代码。自定义数据源 Code highlighting produced by Actipro CodeHighlighter (freeware)http://w
阅读全文
2011-01-08 20:57 by Terry_龙, 2150 visits, 网摘, 收藏, 编辑
摘要:Windows Phone 中的 Microsoft Push Notification Service 向第三方开发人员提供了一个弹性,专注,而且持续的渠道,使得开发人员可以从Web Service 向移动应用程序发送信息和更新。 过去移动应用程序需要经常主动访问相应的WEB服务,以了解是否有任何等待处理的通知。这样做是有效的,但会导航手机无线设备频繁打开,从而对电池续航时间或者用户的流量带来负面 影响。使用推送通知的方式取代主动调查,Web Service 能够提醒应用程序获取所需要的重要理更新。 当一个Web Service 有信息要发送到应用程序,它先发送一个通知到Push Not
阅读全文
2011-01-04 22:11 by Terry_龙, 746 visits, 网摘, 收藏, 编辑
摘要:无论哪个平台的开发,性能是至关重要的,尤其是移动开发,用户最关心的是你的应用的响应速度其次才是创意。网上有很实用的工具叫EQATEC Profiler ,这是一个针对.NET平台的一个性能分析器,可以分析WP7 而面加载、执行的效率时间,不过针对 WP7有几点限制,最大的限制是其不支持XNA 开发的WP7程序,以下是其限制清单:Only WP7 Silverlight apps are supported for now, not WP7 XNA appsConstructors are not timed due to a WP7 IL-verifier problemThe profile
阅读全文
2011-01-03 20:57 by Terry_龙, 1856 visits, 网摘, 收藏, 编辑
摘要:Android 允许应用程序通过Action、URI等机制调用系统内置功能,比如打电话、发邮箱、发短信等。 Windows Phone 7 也提供了类似的API提供开发人员使用,即启动器与选择器,但在Windows Phone 7 中他们是通过一套封装完整的Task 提供的。 Windows Phone 应用程序模型将每个应用分离成各自独立的沙箱,包括运行时和文件存储。微软提供的这套API只要正确的实施,启动器和选择器框架可以为最终用户提供一个完全无缝的体验,他们完全感觉不到应用程序之间的切换。那么什么是启动器?什么是选择器?这个可以用Andriod 的一些小知识来理解。 启动器 相当于
阅读全文
2010-12-29 22:42 by Terry_龙, 1687 visits, 网摘, 收藏, 编辑
摘要:在Android 里面我们要快速保存用户的设置或者游戏进行的数据,我们通常全使用SharePreference 这个类来进行操作,另外Android 还提供了一系列继承自SharePreference 的组件提供我们快速保存用户的设置项。那么在Windows Phone 7 提供了什么样的机制提供用户快速保存数据呢?微软使用了一个叫IsolatedStorageSettings 的类库提供给开发人员快速的使用独立存储保存用户数据的功能,但总体使用感觉来说没有Android 使用的方便,另外Andriod 的类似这种数据存储是暴露给用户的,而Windows Phone 7 的这种存储机制则是严格
阅读全文
2010-12-23 23:02 by Terry_龙, 1310 visits, 网摘, 收藏, 编辑
摘要:上篇学习文章漏了一个知识点,就是如何显示和隐藏系统托盘(System Tray),在这里补一下,显示或者隐藏系统托盘需要引入Microsoft.Phone.Shell这一命名空间,下面我写了一个Toggle System Tray 的方法,代码如下:[代码]下面是两张效果的比较:【使用托盘代码之前】【使用托盘代码之后】去托盘的方法相对于Android 来说差不多,只是叫法不一样罢了,Android 叫去除标题栏,代码是这样写的:[代码]或者在Manifest 里面注册对应的页面主题,也可以这样写:[代码]又跑题了。。。。。。继续Windows Phone 7 。进入本篇的主题,如何使用Expr
阅读全文
2010-12-21 23:31 by Terry_龙, 1787 visits, 网摘, 收藏, 编辑
摘要:还是以上篇导航为基础,完善导航的页面并为导航的页面绑定数据和显示数据。这篇学习笔记主要记录两个点,分别为如下:基于Silverlight 的Windows Phone 数据绑定为应用程序添加程序栏,额外记录显示和隐藏系统托盘(System.Tray)的代码1.数据绑定 数据绑定为基于Silverlight 的应用程序提供了一个简单的方式来实现显示和数据之间交互。数据显示从数据管理中分离出来。用户界面与数据模型之间的连接或者绑定,允许数据在两者之间流动。不一个绑定被建立,数据发生改变,被绑定到数据的UI(用户界面 )元素能自动发生改变。这本篇 学习笔记将针对Silverlight 提供的控件D
阅读全文
2010-12-19 21:56 by Terry_龙, 1550 visits, 网摘, 收藏, 编辑
摘要:用于Windows Phone 的SilverLight 提供了 PhoneApplicationFrame 和 PhoneApplicationPage类,这两个类是微软针对Silverlight for Windows Phone 另外封装的,它为导航提供了使得。 PhoneApplicationPage 控件代表了内容相互分离的区段,一个应用程序可以有多个PhoneApplicationPage 。 PhoneApplicationFrame 扮演了页面控件容器的角色,对页面之间的导航提供了便利,一个应用程序有一个独立的PhoneApplicationFrame。 Windows
阅读全文
2010-12-18 01:07 by Terry_龙, 1529 visits, 网摘, 收藏, 编辑
摘要:在Windows Phone 上运行的应用程序从开始到程序运行结束,其整个生命周期都是由Windows Phone 的执行模型所支配。执行模型被设计的目的就是为终端用户实时提供快速的、反应灵敏的体验。故,Windows Phone 7在设计的初衷是以单任务设计为主导,虽说在不久的将来微软会步苹果之后为自己的手机平台添加多任务,但那是后话。 Windows Phone 执行模型还维护着用户使用应用程序和查看页面所产生的日志。利用该日志就能定义电话后退键所遵循的后退路径,从而提供给用户一个能够回退到不同应用程序和浏览页面的后退选项。 当用户通过导航键功能离开某一应用程序时,操作系统执行挂起该程
阅读全文
2010-12-15 23:42 by Terry_龙, 1752 visits, 网摘, 收藏, 编辑
摘要:微软的Microsoft.Xna.Framework.Media组件中自带有MediaPlayer 的库,其中库里面存放有三首曲子,我们可以通过引用该组件来调用库中相应的函数进行歌曲播放,通过引用Microsoft.Xna.Framework.dll ,引用该命名空间即可使用该 组件。 这个DEMO是一个音乐播放的小例子,界面如下:如上图,有四个控件,一个图片控件,一个文本控件,两个控制按钮。当页面被导航进来时,得到一个Song 类型的歌曲,并为文本控件赋值歌曲名称。得到类型后,在页面初始完成时,得到一张歌曲的封面并为图片控件赋值。下面是整个应的代码:代码 Code highlight
阅读全文
2010-12-13 20:47 by Terry_龙, 1817 visits, 网摘, 收藏, 编辑
摘要:像学习Android 一样也必须先把Windows Phone 7的工程结构了解清楚才好,Windows Phone 7的项目结构以一个最标准的WP7应用为例,截图如下:把其中一些对应的文件展开如下:下面一起来了解一下对应文件的作用和用法。1.PropertiesAppManifest.xml翻译成中文为应用列表,当我们的WP应用开发完成后,会打包并发布,而此文件的作用是把我们需要布署和发布的所有文件列表列出来,这个跟Android 的Manifest 是不大相同的,Android 的manifest 虽然也可以理解成列表,但Andriod 必须自己手动添加需要的应用权限、服务、广播等。而这个
阅读全文
2010-12-12 11:12 by Terry_龙, 1584 visits, 网摘, 收藏, 编辑
摘要:利用闲暇时间看了一下Windows Phone 7的相关资料,觉得这个手机系统挺新颖,打算这段时间学习一下。打开Microsoft Visual Studio 2010 Express for Windows Phone 会看到如下图界面:使用Visual Studio 真让人怀念当初做c#的时候那种感觉,方便的编辑和调试,漂亮的界面等。Silverlight for Windows Phone 一共提供了五种模板供开发者选择,开发人员可根据自己的需求选择适合自己的模板,下面将介绍各种模板的用途:Windows Phone ApplicationWindows Phone Databound
阅读全文