04 2012 档案

XNA游戏:软键盘弹窗输入
摘要:在XNA中如果我们需要输入文字,那么我们就需要使用到软键盘了,在XNA中使用软键盘要用到Guide.BeginShowKeyboardInput方法,由于游戏的Update是会不断地执行的,所以要由Guide.IsVisible来检查弹出输入框是否已经显示出来了。Guide.BeginShowKeyboardInput方法的参数PlayerIndex 玩家的编号,手机是PlayerIndex.OneTitle 输入窗口的标题Description 输入窗口的描述DefaultText 默认的文字Callback 回调的方法State 使用者想要传送的物件Guide.BeginSho... 阅读全文

posted @ 2012-04-15 20:32 linzheng 阅读(940) 评论(0) 推荐(0)

XNA游戏:手势触控
摘要:在XNA游戏中使用到手势触控操作时,需要引入using Microsoft.Xna.Framework.Input.Touch; 空间,在该空间下下面两个类在触控编程中会用到。TouchLocation 用来保存某一个触摸点的状态信息。TouchCollection 是保存了当前所有触控状态(TouchLocation)的集合。当我们把一个指头在屏幕上操作,可能会有这样三种动作:按,移动,移开。那么这三个操作在WP7的XNA里如何获取呢?我们就需要了解XNA里的TouchPanel和TouchCollection这两个类 TouchCollection touchState= T... 阅读全文

posted @ 2012-04-15 19:30 linzheng 阅读(1271) 评论(0) 推荐(0)

XNA游戏:横竖屏设置
摘要:手机设备里面,会有横竖屏的状态,一般会有3种情况,一个中是竖屏,一个是右横屏,一个是左横屏,横屏的设置是通过GraphicsDeviceManager类的SupportedOrientations属性来设置的,GraphicsDeviceManager类在XNA类库介绍中提到的该类型是非常重要的。它为开发者提供方法来管理目标设备的显卡资源。简单地说就是调用显卡的一个接口,该对象的GraphicsDevice属性代表当前目标设备的显卡。示例:using System;using System.Collections.Generic;using System.Linq;using Microsof 阅读全文

posted @ 2012-04-15 15:46 linzheng 阅读(889) 评论(0) 推荐(0)

XNA游戏:重力感应
摘要:Windows Phone XNA游戏提供的重力传感器可以利用量测重力的原理判手机移动的方向,允许使用者利用摇动或甩动手机的方式控制游戏的执行,其原理和汽车的安全气囊相同,在侦测到汽车快速减速的时候立刻充气以保护驾驶人与乘客不会受伤。要使用重力传感器当做游戏程序的输入,以 XNA 为基础的游戏程序可以利用 Accelerometer 类别提供的功能启用/停用重力加速器,取得重力加速器的状态,以及处理重力加速器引发的事件。Accelerometer 类别常用的属性属性名称说明State管理重力加速器状态的属性,其型态为 SensorState 列举型态。有关 SensorState 列举型态合法 阅读全文

posted @ 2012-04-15 15:14 linzheng 阅读(1297) 评论(1) 推荐(0)

C#弱引用
摘要:.NET框架提供了另一有趣的特色,被用于实现多样的高速缓存。在.NET中弱引用通过System.WeakReference类实现。弱引用为引用的对象提供一项机制,使被引用的对象能够被垃圾收集器作用。ASP.NET高速缓存就使用了弱引用。如果内存使用率太高,高速缓存将被清除。强制垃圾收集 .NET框架为开发者提供System.GC类来控制垃圾收集器的一些方面。垃圾收集可以通过调用GC.Collect方法强制执行。通常建议不要手动的调用垃圾收集器,而将其设置为自动方式。在某些情况下,开发者会发现强制垃圾收集将推进性能。但是,使用这个方法需要非常小心,因为在垃圾收集器运行时将延缓当前执行的线程。GC 阅读全文

posted @ 2012-04-13 00:16 linzheng 阅读(7757) 评论(2) 推荐(3)

C#中的yield return
摘要:在迭代器块中用于向枚举数对象提供值或发出迭代结束信号。yield return <expression>; yield break;计算表达式并以枚举数对象值的形式返回;expression 必须可以隐式转换为迭代器的 yield 类型。yield 语句只能出现在 iterator 块中,该块可用作方法、运算符或访问器的体。一个迭代器块(iterator block)是一个能够产生有序的值序列的块。迭代器块和普通语句块的区别就是其中出现的一个或多个yield语句。 yield return语句产生迭代的下一个值。 yield break语句表示迭代完成。示例using System 阅读全文

posted @ 2012-04-12 23:52 linzheng 阅读(562) 评论(0) 推荐(0)

C# Lock关键字
摘要:lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁。lock语句根本使用的就是Monitor.Enter和Monitor.Exit,也就是说lock(this)时执行Monitor.Enter(this),大括号结束时执行Monitor.Exit(this).他的意义在于什么呢,对于任何一个对象来说,他在内存中的第一部分放置的是所有方法的地址,第二部分放着一个索引,他指向CLR中的SyncBlock Cache区域中的一个SyncBlock.什么意思呢?就是说,当你执行Monitor.Enter(Object)时,如果object的索引值为负数,就从Syn 阅读全文

posted @ 2012-04-11 20:12 linzheng 阅读(33719) 评论(4) 推荐(5)

C#线程、多线程、线程池、后台线程
摘要:System.Threading 命名空间System.Threading 命名空间提供一些使得可以进行多线程编程的类和接口。 除同步线程活动和数据访问的类(Monitor、Interlocked、AutoResetEvent 等)之外,此命名空间还包含一个 ThreadPool 类(它使用户能够使用系统提供的线程池)和一个 Timer 类(在线程池线程上执行回调方法)。 除了 System.Threading 命名空间中提供的功能之外,BackgroundWorker 类还提供一个简单的基于事件的方法,以同步对主应用程序线程的访问。Thread 类一个进程可以创建一个或多个线程以执行与该进程 阅读全文

posted @ 2012-04-11 11:49 linzheng 阅读(4489) 评论(0) 推荐(0)

XNA游戏:Bizzy Bees蜜蜂警官游戏
摘要:先来看一下游戏的界面游戏的思路差不多像俄罗斯方块一样,上面的花一直往下掉,然后你就需要选中一只蜜蜂来吃上面的花,当蜜蜂的颜色和花的颜色一样或者花是彩色的花的时候,花就会被蜜蜂给吃掉,这时候这只蜜蜂也会被随机生成一只新的蜜蜂。当吃掉一朵彩色的花的时候,会增加一分,当花落到了底下的时候游戏结束。看一下下面的代码:花的对象Flower.csusing System;using System.Collections.Generic;using System.Linq;using System.Text;namespace DemoGame{ class Flower { pu... 阅读全文

posted @ 2012-04-10 23:20 linzheng 阅读(1017) 评论(0) 推荐(0)

XNA游戏:对Content的理解
摘要:原文地址:http://msdn.microsoft.com/zh-cn/library/bb447756。XNA Game Studio Content Pipeline是一组施加在游戏素材上的处理过程,这个过程从素材的原始文件格式开始,借助于XNA框架类库,通过一系列处理将素材转换为XNA Game Studio可以使用的数据。Content是你的游戏中的所有非可执行的托管代码,它包括美术素材,例如纹理、sprite、mesh,effect和font;还包括声音素材,例如音乐或音效;数据也是Content,例如关卡的数据或角色的属性等。大多数content是使用digital conten 阅读全文

posted @ 2012-04-07 16:44 linzheng 阅读(1768) 评论(0) 推荐(0)

XNA游戏:名词解释
摘要:1、什么是反锯齿(Antialiasing)反锯齿是指平滑图像的边缘减少锯齿(阶梯状线条)的技术。反锯齿通常通过多重采样(multisampling)实现,你使用超过一个像素(“采样”)决定最终图像中一个像素的颜色。每个像素的采样点越多,最终图像越平滑。 PC和Xbox 360平台都支持全屏反锯齿(FSAA) 模式,额外的数据会渲染到一个渲染目标并用来作为创建最终图像的采样器。4x FSAA通过将场景渲染到一个长宽都为后备缓冲两倍的渲染目标,实现每个像素使用4个采样点,使用渲染目标中的额外采样点创建最终的反锯齿的图像。PC上2x FSAA也很常见并被Xbox 360平台支持。使用CheckDe 阅读全文

posted @ 2012-04-07 16:34 linzheng 阅读(1349) 评论(1) 推荐(0)

XNA游戏:精灵Sprite的概念
摘要:概要精灵是取代3D空间而直接绘制在屏幕上的2D位图, 通常用来显示一些玩家信息, 如生命值、生命数或者得分。一些游戏,特别是早期的游戏,几乎全部由精灵组成。精灵在屏幕上是按坐标定位的。 屏幕的宽和高和后台缓存是一样的(意思是如果你的屏幕为800x600的,那么后台缓存就是一个800x600x每个像素所占的内存数的大小的内存块)。x轴表示屏幕的宽,y轴表示屏幕的高 。一定要注意y轴是从上到下递增的,而x轴是从左到右递增的。例如,当你的后台缓存是800x600时,(0,0)表示屏幕的左上角,(800,600)表示屏幕的右下角(请看图1)图1. 一个位于屏幕坐标上的精灵(x 轴 400, y 轴 2 阅读全文

posted @ 2012-04-07 16:09 linzheng 阅读(2829) 评论(2) 推荐(0)

导航