代码改变世界

随笔分类 -  Windows Phone 7

android与PC,C#与Java 利用protobuf 进行无障碍通讯【Socket】

2011-04-23 14:52 by Terry_龙, 19468 阅读, 收藏, 编辑
摘要: 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有速度上. 阅读全文

Windows Phone 7 截取当前屏幕保存图像的代码

2011-04-22 14:16 by Terry_龙, 2216 阅读, 收藏, 编辑
摘要: 导入以下命名空间: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(). 阅读全文

【WP7进阶】——XNA游戏平面矩形碰撞检测

2011-03-26 19:55 by Terry_龙, 3069 阅读, 收藏, 编辑
摘要: 碰撞检测在几乎任何游戏都是很关键的一个部分,而碰撞检测又决定了游戏的流畅性,它对流畅性的影响如何之大的原因,在于碰撞检测算法越是精确到位,游戏将会运行得越缓慢。在碰撞检测方面,很明显需要在准确性和性能之间进行权衡。 实现碰撞检测最简单和快速的方式是通过包围盒算法。当用一个包围盒算法时,就需要在屏幕上的每个物体(纹理图像)周围“画“一个盒子(矩形块),然后检查这些盒子是否相交,如果产生相交(怎么听起来这么耳熟?),就即可判断出是产生碰撞了。经典的碰撞游戏可以看看如今某I设备上风靡全球的小鸟通过物理算法和碰撞检测等实现这只小鸟欺负小猪的传说,这点是很值得借鉴滴。本篇学习文章将会有两个纹理图,一个. 阅读全文

【WP7进阶】——XNA游戏精灵的动画

2011-03-23 17:34 by Terry_龙, 2708 阅读, 收藏, 编辑
摘要: 通过上面几节的学习,慢慢的掌握了精灵的一些基本常识,但是我们知道游戏中游戏精灵都是富于表现能力的,并且通过不同的动作或者动画去构造一个游戏。这篇文章将学习如何使用系列图为游戏精灵添加动画效果,以下面这一系列图为例,将其分割显示:--这个图片是偷 深蓝 的 这是一张png图片,我们还是需要把它加载到纹理图形中,可以考虑如何在精灵位图上轮流获得独立的精灵帧。以下编写这个精灵帧所要先得到的信息:精灵位图中每个单独图像(帧)的宽和高精灵位图的行与列的总数指示接下来精灵位图中将要绘制精灵帧在精灵位图中所处的行与列的位置索引 上面的那张精灵位图中,每个单独精灵帧的宽和高都是150像素,有10行1列。所以. 阅读全文

【WP7进阶】——XNA游戏精灵放大、旋转、层深度

2011-03-22 17:34 by Terry_龙, 2683 阅读, 收藏, 编辑
摘要: 游戏很多都是涉及到操纵游戏精灵的相关知识,本篇还是根据游戏精灵的一些常用知识做的学习,下面是本文大纲:精灵界面居中精灵放大并且旋转纹理的层深度 精灵在界面居中上篇文章我们为游戏添加一个背景图片,接下来我们希望不让游戏精灵走动了,而是让其在游戏的正中间停靠。默认Window.ClientBounds这个矩形块可以获得当前设备的宽度和高度-(这里是绝对宽度和高度,无论你屏幕如何旋转它始终获取原始宽高。)而使用graphics.GraphicsDevice.Viewport 获取设备的宽高则是通过上面设置的PreferredBackBuffer 属性获取而来。这个是两者的区别使精灵界面居中,代码如下 阅读全文

【WP7进阶】——XNA游戏初探2

2011-03-21 23:33 by Terry_龙, 2219 阅读, 收藏, 编辑
摘要: 继上篇文章,有一个问题遗留了下来。就是Update方法与Draw 方法这两个方法的呼叫时机,通过上篇文章,我们知道重写了Update方法 是用来更新游戏状态的,而重写Draw 方法是用来显示游戏画面的。当游戏程序一进入运行时间便会不断地呼叫Update 方法和Draw 方法。注意:并不是每一次Update 方法被呼叫之后,Draw 方法就会跟着被呼叫(正常情况是这个顺序)。Update 方法与 Draw 方法被呼叫的频率要视Game1 的属性IsFixedTimeStep 值而定。true (默认值)时游戏处于固定更新(fixed-step)模式。如果程序绘制画面时无法跟上更新频率,则会调用. 阅读全文

【WP7进阶】——XNA游戏初探

2011-03-20 13:21 by Terry_龙, 3502 阅读, 收藏, 编辑
摘要: 之前一直在做Android 的软件应用,包括现在学习Wp7 开发也一直未接触过游戏方面的开发。这几天对XNA开发粗略的看了一下,也找了相关的文档,觉得对于学习XNA方式开发WP7游戏应用应该是一件很酷的事。也是对自己本身职业技能的提高吧。学习XNA开发游戏需要的工具Visual Studio 2010 前提是安装了Developer Tools 套件或Express for Windows PhoneMicrosoft Cross-Platform Audio Creation Tool 3 (XACT3):XACT 是一个由 Microsoft 开发的跨平台的音效建立工具,可以协助您建立游. 阅读全文

【WP7进阶】——详细教你使用帮你赚钱的广告控件

2011-03-03 21:31 by Terry_龙, 4037 阅读, 收藏, 编辑
摘要: AdVertising 广告控件是微软移动战略上的另一个组件,该组件可以轻松帮你在你的应用程序或者XNA框架游戏上显示广告。使用该组件的优势:赚更多的钱 这个组件为您的应用程序显示各种移动广告,这是一个实时的、轮换的、非常优秀的显示广告方法。显示内容包括各地的经销商和采购商包括了微软在内的adCenter 和大型微软广告市场。快速、无争议 AdVertising广告控件通过简单的控制、自助式的开发者签约,报告和自动支付系统使开发商能够从中收益。其中,该组件的SDK不仅支持Silverlight for Windows Phone 框架还支持XNA for Windows Game 框架的Wi. 阅读全文

【WP7进阶】——扩展框架组件

2011-02-27 20:56 by Terry_龙, 1977 阅读, 收藏, 编辑
摘要: 组件描述 该组件为Windows Phone 7 本身C#框架扩展了一系列方法,可以使你在编写代码的时候减少重复复制,并且增加了许多通用功能,使你的编写代码的时候可以更加流畅和得以应手。扩展类别该组件是将我们日常常用到的数据类型或者集合等操作再一次封装成易于使用的静态方法,分类为如下几大类:String 字符串扩展DateTime 日期扩展Guid 全局唯一标识符扩展IEnumerable 集合扩展Object 对象扩展Stream 流扩展Uri 统一资源标识符扩展Bool 真假“是否”扩展Int 整型扩展 扩展方法体以下为每个静态类的扩展方法列表StringExtensions静态方法成员截 阅读全文

【WP7进阶】——分享一个可供切换状态的ListBox组件

2011-02-20 19:57 by Terry_龙, 4486 阅读, 收藏, 编辑
摘要: 编写Asp.net的同学,经常会遇到一个Repeater 或者一个GridView ,当用户点击编辑状态时我们的列表组件会自动跳转到可选择(可供删除、编辑、选择等)状态。这时候一般的做法都会在组件的前方自动生成一系列复选框“CheckBox”,需要删除/选择哪行时只要在前方的复选框勾一下,便可以得到该行的数据或者行ID等。  上面的做法是一个比较典型的Web做法,那么在WP7 里面要实现这样的效果如何实现呢?有些同学就会说了,那简单使用ListBox 在它的数据模板里面添加一个CheckBox不就完事了吗?是的,这样是一种做法,但带来的问题是你得去控制他选中哪行并且得到 阅读全文

Windows Phone 7 不温不火学习之《Expression Blend 创建渐变效果和创建Storyboard动画》

2011-02-14 21:08 by Terry_龙, 4615 阅读, 收藏, 编辑
摘要: 说起Expression Blend ,开发过Silverlight 或者WPF的同学肯定会暗爽一把。微软把这一神器免费提供给我们开发者使用,特别是自从WP7 发布就立刻免费,可以看出微软对WP7的重视。  年底又好消息不断,微软和NOKIA组成战略合作伙伴,NOKIA将把携地图数据与营销能力加入WP7的创新等,无疑给我们WP7开发者一剂强心剂。好了废话不多说,回到主题。Expression Blend 工具简介一款专业设计工具,制作基于Microsoft Silverlight的应用程序的精美复杂用户界面。让设计人员集中精力从事创作,开发人员集中精力从事编程工作。每个团队成员都可以单独进行工 阅读全文

Windows Phone 7 不温不火学习之【DeepZoom 详细使用方法】

2011-01-27 23:19 by Terry_龙, 3796 阅读, 收藏, 编辑
摘要: Deep Zoom 本来是微软开发团队为Silverlight 富客户端做图片的展示做的一个工具,可以产生非常好的效果,随便WP7使用Silverlight 技术,这一功能也移植到移动设置。本篇主要学习如何使用Deep Zoom 处理、加载图片,大纲如下:DeepZoom 基本知识DeepZoomComposer 工具MultilScaleImage 控件的使用 ,主要用来展示DeepZoom 图片DeepZoom基本知识源于遥感影像的金字塔显示方式提供了与高分辩率图像进行交互的能力可以快速绽放图像而不影响应用的性能加载或平衡图像时可以光滑过渡,Spring Animation  说了一大堆, 阅读全文

Windows Phone 7 不温不火学习之《创建用户控件》

2011-01-25 00:14 by Terry_龙, 3120 阅读, 收藏, 编辑
摘要: 同样出自微软的产品,像ASP.NET 一样,Windows Phone 7 也有一个叫UserControl 的东西。这个相当于一个组件,类似于Android 继承View 。  本篇将实现一个用户控件,默认为它添加高宽,并为它添加一个自己的事件,通过本篇学习,你可以学习到如何编写一个Windows Phone 7用户控件,如何为它添加属性,如何为我们自己的用户控件添加事件处理。  实现的DEMO运行效果如下 :  当你点击文本后,可以执行一些你要的操作,例如关闭该对话框。  实现我们自己的用户控件,第一步先添加一个用户控件模板:创建完成后,可以看到设计图并不是我们熟悉的Windows Pho 阅读全文

Windows Phone 7 不温不火学习之《Control Toolkit--静态和动态的ContextMenu》

2011-01-20 21:30 by Terry_龙, 2903 阅读, 收藏, 编辑
摘要: 跟大部分智能手机一样,Windows Phone 7 也有上下文菜单,比较典型的比较可以拿Android 的上下文菜单做比较,都是需要用户长按某一Element (Android 称为某一View)时才会弹出一个菜单项。作为一个辅助的控件,它只能辅助于某一单于控件,而不能设置为在某一布局。这点和Android 有点小差别,Android 允许上下文菜单在任何时间长按某一单元或者称为VIEW也行,因为所有的活动都是包含在这个VIEW里面。这个可能是他们之间的区别吧。  就使用而言的话,Windows Phone 7因为有强大的封装能力把上下文也封装成控件形式,故较之Android 来得要方便一点 阅读全文

Windows Phone 7 不温不火学习之《画图》

2011-01-16 21:41 by Terry_龙, 3257 阅读, 收藏, 编辑
摘要: 在Android 我们需要在屏幕画图,或扩展SurfaceView 或扩展父类View 在OnDraw()里面使用画板和调色笔画画。而在微软的强大封装下,这种画图的试成为了控件的可能,微软将众多日常必要的画图都以控件展示,开发人员则无须过多学习使用Paint 、使用Canvas 等画图知识就能轻松在WP7 手机上画各种图,不过这种灵活性是否会降低呢?这个姑且不深究。  今天学习的WP7 画图控件有以下几种:InkPresenter 可否单纯理解为画图面板?Path 路径Ellipse 圆形或椭圆形Rectangle 矩形,方块矩形或圆角矩形Line 直线Polygon 封闭多边形Polylin 阅读全文

Windows Phone 7 不温不火学习之《ListBox 数据与Android ListView 数据绑定》

2011-01-13 20:26 by Terry_龙, 4946 阅读, 收藏, 编辑
摘要: Windows Phone 7 可以把它看成是Android 的 ListView ,WP7 只是预先在XAML里面为它的数据模板规定了格式,而Android 可以通过后期引入数据的方式为其添加数据模板。  Android 我们可以通过以下几种方式为LISTVIEW 添加数据,用法极其简单:继承ListActivity,使用SetListAdapter,参考下面的代码。 [代码]可自定义数据源,继承BaseAdapter ,参考下面代码。自定义数据源 Code highlighting produced by Actipro CodeHighlighter (freeware)http://w 阅读全文

Windows Phone 7 不温不火学习之《推送通知服务》

2011-01-08 20:57 by Terry_龙, 3329 阅读, 收藏, 编辑
摘要: Windows Phone 中的 Microsoft Push Notification Service 向第三方开发人员提供了一个弹性,专注,而且持续的渠道,使得开发人员可以从Web Service 向移动应用程序发送信息和更新。  过去移动应用程序需要经常主动访问相应的WEB服务,以了解是否有任何等待处理的通知。这样做是有效的,但会导航手机无线设备频繁打开,从而对电池续航时间或者用户的流量带来负面 影响。使用推送通知的方式取代主动调查,Web Service 能够提醒应用程序获取所需要的重要理更新。  当一个Web Service 有信息要发送到应用程序,它先发送一个通知到Push Not 阅读全文

Windows Phone 7 不温不火学习之《程序性能分析器》

2011-01-04 22:11 by Terry_龙, 1254 阅读, 收藏, 编辑
摘要: 无论哪个平台的开发,性能是至关重要的,尤其是移动开发,用户最关心的是你的应用的响应速度其次才是创意。网上有很实用的工具叫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 阅读全文

Windows Phone 7 不温不火学习之《启动器与选择器》

2011-01-03 20:57 by Terry_龙, 2531 阅读, 收藏, 编辑
摘要: Android 允许应用程序通过Action、URI等机制调用系统内置功能,比如打电话、发邮箱、发短信等。  Windows Phone 7 也提供了类似的API提供开发人员使用,即启动器与选择器,但在Windows Phone 7 中他们是通过一套封装完整的Task 提供的。  Windows Phone 应用程序模型将每个应用分离成各自独立的沙箱,包括运行时和文件存储。微软提供的这套API只要正确的实施,启动器和选择器框架可以为最终用户提供一个完全无缝的体验,他们完全感觉不到应用程序之间的切换。那么什么是启动器?什么是选择器?这个可以用Andriod 的一些小知识来理解。  启动器 相当于 阅读全文

Windows Phone 7 不温不火学习之《独立存储空间》

2010-12-29 22:42 by Terry_龙, 2149 阅读, 收藏, 编辑
摘要: 在Android 里面我们要快速保存用户的设置或者游戏进行的数据,我们通常全使用SharePreference 这个类来进行操作,另外Android 还提供了一系列继承自SharePreference 的组件提供我们快速保存用户的设置项。那么在Windows Phone 7 提供了什么样的机制提供用户快速保存数据呢?微软使用了一个叫IsolatedStorageSettings 的类库提供给开发人员快速的使用独立存储保存用户数据的功能,但总体使用感觉来说没有Android 使用的方便,另外Andriod 的类似这种数据存储是暴露给用户的,而Windows Phone 7 的这种存储机制则是严格 阅读全文