<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>中文 &#187; xy8cn</title>
	<atom:link href="http://software.intel.com/zh-cn/blogs/author/xy8cn/feed/" rel="self" type="application/rss+xml" />
	<link>http://software.intel.com/zh-cn/blogs</link>
	<description></description>
	<lastBuildDate>Mon, 28 May 2012 14:23:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>《XNA游戏开发》Game1类的方法与字段</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/12/16/xnagame1/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/12/16/xnagame1/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 02:41:13 +0000</pubDate>
		<dc:creator>xy8cn</dc:creator>
				<category><![CDATA[博客征文专栏]]></category>
		<category><![CDATA[游戏]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/12/16/xnagame1/</guid>
		<description><![CDATA[  在上一篇内容中，我们了解到建好项目后生成的Game1类是继承自Microsoft.Xna.Framework.Game类型，然后再重写其中的方法，也就是说，我们的游戏主体这个Game1并不一定非要是这样的命名，当然你可以更改一个其他的名字，但是在改类名后，对应的在Program类的Main法中new的对象得相对应的变更为你改过的类型。 一、Game1中的字段： GraphicsDeviceManager graphics; SpriteBatch spriteBatch; 其中GraphicsDeviceManager为绘制界面管理类型。 SpriteBatch 为精灵处理类型（绘制处理类型）。 二、构造方法： 01.public Game1() { 02. graphics = new GraphicsDeviceManager(this); //初始化为界面管理对象 03. Content.RootDirectory = "Content"; //设置内容读取的目录 04.} 构造方法中：将graphics对象先创建出来，并规定Content的目录在Content文件夹之下。 三、Initialize方法： 01.protected override void Initialize() { 02. base.Initialize(); 03.} 作用：改写原父类型的初始方法。 说明：因为Microsoft已经把繁复的初始内写在父类型当中变得相当简化，直接调用base(基底类型)使用即可所以可以让我们专心在游戏重点的初始化。 也就是说，Microsoft为我们提供可更改初如化的机会。 四、LoadContent方法： 01.protected override void LoadContent() { 02. spriteBatch = new SpriteBatch(GraphicsDevice); 03.} 作用：在游戏启动时加载资源，如声音、图片、3D模型、字体等。 说明：方法中根据GraphicsDevice（绘制界面）创建了spriteBatch（绘制处理）对象。同时可以看到，在LoadContent方法中，并没有Base.LoadContent()方法，因为父类为Game基础来，在该类中并不需要去加载游戏资源，只有在我们制作游戏时才需要加载资源。 五、UnloadContent方法： 01.protected [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p>在上一篇内容中，我们了解到建好项目后生成的Game1类是继承自Microsoft.Xna.Framework.Game类型，然后再重写其中的方法，也就是说，我们的游戏主体这个Game1并不一定非要是这样的命名，当然你可以更改一个其他的名字，但是在改类名后，对应的在Program类的Main法中new的对象得相对应的变更为你改过的类型。</p>
<p>一、Game1中的字段：</p>
<p>GraphicsDeviceManager graphics;</p>
<p>SpriteBatch spriteBatch;</p>
<p>其中GraphicsDeviceManager为绘制界面管理类型。</p>
<p>SpriteBatch 为精灵处理类型（绘制处理类型）。</p>
<p>二、构造方法：</p>
<p>01.public Game1() {<br />
02. graphics = new GraphicsDeviceManager(this); //初始化为界面管理对象<br />
03. Content.RootDirectory = "Content"; //设置内容读取的目录<br />
04.}<br />
构造方法中：将graphics对象先创建出来，并规定Content的目录在Content文件夹之下。</p>
<p>三、Initialize方法：</p>
<p>01.protected override void Initialize() {<br />
02. base.Initialize();<br />
03.}<br />
作用：改写原父类型的初始方法。</p>
<p>说明：因为Microsoft已经把繁复的初始内写在父类型当中变得相当简化，直接调用base(基底类型)使用即可所以可以让我们专心在游戏重点的初始化。</p>
<p>也就是说，Microsoft为我们提供可更改初如化的机会。</p>
<p>四、LoadContent方法：<br />
01.protected override void LoadContent() {<br />
02. spriteBatch = new SpriteBatch(GraphicsDevice);<br />
03.}<br />
作用：在游戏启动时加载资源，如声音、图片、3D模型、字体等。<br />
说明：方法中根据GraphicsDevice（绘制界面）创建了spriteBatch（绘制处理）对象。同时可以看到，在LoadContent方法中，并没有Base.LoadContent()方法，因为父类为Game基础来，在该类中并不需要去加载游戏资源，只有在我们制作游戏时才需要加载资源。</p>
<p>五、UnloadContent方法：</p>
<p>01.protected override void UnloadContent() { ... }<br />
该重写方法是用来回收内容。在关闭游戏时，需要将游戏资源释放掉可以在该方法中完成。</p>
<p>六、Update方法：</p>
<p>01.protected override void Update(GameTime gameTime) {<br />
02. if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)<br />
03. this.Exit();<br />
04. base.Update(gameTime);<br />
05.}<br />
作用：重写了逻辑更新的方法。</p>
<p>其中：GameTime对象可以取得游戏时间。</p>
<p>GamePad对象可以得知玩家1是否按下了倒退键而退出游戏。</p>
<p>七、Draw方法：</p>
<p>01.protected override void Draw(GameTime gameTime) {<br />
02. GraphicsDevice.Clear(Color.CornflowerBlue);<br />
03. base.Draw(gameTime);<br />
04.}<br />
作用：重写了绘制游戏的部分。</p>
<p>说明：使用GameDevice对象Clear方法，把画面清成淡蓝色，同时也调用父类型进行运作。</p>
<p>八、注意Update与Draw方法：</p>
<p>1.Update跟Draw会连续进行每秒钟60HZ的更新速度来跑动游戏。</p>
<p>2.其他几个方法，分别为游戏启动时或关闭时进行调用。</p>
<p>3.如果我们想控制游戏的速度，可以通过Update中的GameTime定义</p>
<p>通过以上介绍，大概对XNA框架中，一些基本类及方法的作用及说明有了简单的了解。在以后的内容中，我们再详细介绍每个方法中如何编写代码，实现游戏的运行。</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/12/16/xnagame1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>《XNA游戏开发》简介</title>
		<link>http://software.intel.com/zh-cn/blogs/2011/12/16/xna/</link>
		<comments>http://software.intel.com/zh-cn/blogs/2011/12/16/xna/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 02:40:21 +0000</pubDate>
		<dc:creator>xy8cn</dc:creator>
				<category><![CDATA[博客征文专栏]]></category>
		<category><![CDATA[游戏]]></category>

		<guid isPermaLink="false">http://software.intel.com/zh-cn/blogs/2011/12/16/xna/</guid>
		<description><![CDATA[  一、XNA简介 XNA是基于DirectX的游戏开发环境。 以C# 为开发语言 以 .NET Framework 为基础、并加入游戏应用所需之函式库所构成的 XNA Framework 可开发XNA for Windows Phone游戏，Xbox游戏，PC游戏等。 二、XNA Versions XNA Game Studio Express XNA Game Studio 2.0（VS2005） XNA Game Studio 3.0（VS2008） XNA Game Studio 3.1（VS2008） XNA Game Studio 4.0（VS2010） 官方介绍 ：http://msdn.microsoft.com/zh-cn/windowsphone/gg315893 相关工具包： Windows Phone Developer Tools工具包 以上SDK安装包可以在微软网站 三、创建项目 安装好SDK工具包后，可以打开VS来进行项目的创建，我这里使用的版本是VS2010,安装的是XNA Game Studio 4.0。 四、解决方案 创建好项目后，可以在解决方案管理器中看到以下内容。其中Program类中，放着整个游戏程序的入口点。 五、游戏的主函数 01.static void [...]]]></description>
			<content:encoded><![CDATA[<p> </p>
<p>一、XNA简介</p>
<p>XNA是基于DirectX的游戏开发环境。</p>
<p>以C# 为开发语言</p>
<p>以 .NET Framework 为基础、并加入游戏应用所需之函式库所构成的 XNA Framework<br />
可开发XNA for Windows Phone游戏，Xbox游戏，PC游戏等。</p>
<p>二、XNA Versions</p>
<p>XNA Game Studio Express<br />
XNA Game Studio 2.0（VS2005）<br />
XNA Game Studio 3.0（VS2008）<br />
XNA Game Studio 3.1（VS2008）<br />
XNA Game Studio 4.0（VS2010）<br />
官方介绍 ：http://msdn.microsoft.com/zh-cn/windowsphone/gg315893<br />
相关工具包：<br />
Windows Phone Developer Tools工具包<br />
以上SDK安装包可以在微软网站</p>
<p>三、创建项目<br />
安装好SDK工具包后，可以打开VS来进行项目的创建，我这里使用的版本是VS2010,安装的是XNA Game Studio 4.0。<br />
<img src="http://images.csdn.net/20111215/11.jpg" alt="null" /><br />
四、解决方案</p>
<p>创建好项目后，可以在解决方案管理器中看到以下内容。其中Program类中，放着整个游戏程序的入口点。<br />
<img src="http://images.csdn.net/20111215/2.jpg" alt="null" /><br />
五、游戏的主函数</p>
<p>01.static void Main(string[] args) { 02. using (Game1 game = new Game1()) { 03. game.Run(); 04.} 05.}<br />
通常每一个桌面应用程序都有一个Main方法，做为整个应用程序的入口点，其中的参数“args”的作用是在执行.exe文件的时候，可以将命令行参数传进方法中，从而进行对应的操作。 在方法体中，用using创建了Game1类型的对象game，并执行了Run()方法来启动整个游戏。</p>
<p>六、注意Program中的预编译指令<br />
01.#if WINDOWS || XBOX 02. //游戏在 Windows 平台和 XBOX 游戏是否会执行代码 03.#else 04. //游戏在WP7上时执行代码 05.#endif</p>
<p>七、关于Game1类</p>
<p>01.public class Game1 : Microsoft.Xna.Framework.Game { ...... }<br />
可以看到Game1类型，是继承Microsoft.Xna.Framework.Game类型的。另外再看下Game1类中的方法都使用了override关建字。</p>
<p><img src="http://images.csdn.net/20111215/33.jpg" alt="null" /><br />
从以上图可以看出来微软的XNA框架为我们提供的Game类，本身是可以完成游戏的执行的，我们所需要做的就是重写其在游戏执行过程中的一些方法，就可以完成自己游戏的开发。</p>
<p>下篇介绍Game1类中，这些方法及两个字段的作用。</p>
]]></content:encoded>
			<wfw:commentRss>http://software.intel.com/zh-cn/blogs/2011/12/16/xna/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

