<?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>Luin&#039;s Blog &#187; XNA</title>
	<atom:link href="http://luinlee.com/category/study-tech/xna/feed/" rel="self" type="application/rss+xml" />
	<link>http://luinlee.com</link>
	<description>A long river</description>
	<lastBuildDate>Sat, 07 Aug 2010 04:55:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>贴图啊，永远的痛。XNA导入成功~</title>
		<link>http://luinlee.com/216/xna23dsmax/</link>
		<comments>http://luinlee.com/216/xna23dsmax/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 16:20:53 +0000</pubDate>
		<dc:creator>Luin</dc:creator>
				<category><![CDATA[XNA]]></category>
		<category><![CDATA[设计&美术]]></category>

		<guid isPermaLink="false">http://luinlee.com/?p=216</guid>
		<description><![CDATA[弄了很久终于把3ds max上的model导入到了XNA中，使用了FBX中介，不过效果一般，只是最终加上了贴图。 图中那个很突兀的白色球体是下面的东西： 但是部分的贴图因为路径问题仍然有些纠结。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 [...]]]></description>
			<content:encoded><![CDATA[<p>弄了很久终于把3ds max上的model导入到了XNA中，使用了FBX中介，不过效果一般，只是最终加上了贴图。</p>
<div id="attachment_217" class="wp-caption alignnone" style="width: 310px"><a class="highslide img_1" href="http://luinlee.com/wp-content/uploads/2009/12/3DXCX.png" onclick="return hs.expand(this)"><img class="size-medium wp-image-217" title="model们很散漫，请不要介意.." src="http://luinlee.com/wp-content/uploads/2009/12/3DXCX-300x234.png" alt="model们很散漫，请不要介意.." width="300" height="234" /></a><p class="wp-caption-text">model们很散漫，请不要介意..</p></div>
<p>图中那个很突兀的白色球体是下面的东西：</p>
<div id="attachment_218" class="wp-caption alignnone" style="width: 310px"><a class="highslide img_2" href="http://luinlee.com/wp-content/uploads/2009/12/3DXCX1.png" onclick="return hs.expand(this)"><img class="size-medium wp-image-218" title="可爱的头骨" src="http://luinlee.com/wp-content/uploads/2009/12/3DXCX1-300x176.png" alt="可爱的头骨" width="300" height="176" /></a><p class="wp-caption-text">可爱的头骨</p></div>
<p>但是部分的贴图因为路径问题仍然有些纠结。</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;">        <span style="color: #0600FF;">protected</span> <span style="color: #0600FF;">override</span> <span style="color: #0600FF;">void</span> LoadContent<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #008080; font-style: italic;">// Create a new SpriteBatch, which can be used to draw textures.</span>
            spriteBatch <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> SpriteBatch<span style="color: #000000;">&#40;</span>GraphicsDevice<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            audioEngine <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> AudioEngine<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Content<span style="color: #008080; font-weight: bold;">\\</span>Audio<span style="color: #008080; font-weight: bold;">\\</span>TutorialAudio.xgs&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            waveBank <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> WaveBank<span style="color: #000000;">&#40;</span>audioEngine, <span style="color: #666666;">&quot;Content<span style="color: #008080; font-weight: bold;">\\</span>Audio<span style="color: #008080; font-weight: bold;">\\</span>Wave Bank.xwb&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            soundBank <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> SoundBank<span style="color: #000000;">&#40;</span>audioEngine, <span style="color: #666666;">&quot;Content<span style="color: #008080; font-weight: bold;">\\</span>Audio<span style="color: #008080; font-weight: bold;">\\</span>Sound Bank.xsb&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">//建立Camera</span>
            mainCamera <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Camera<span style="color: #000000;">&#40;</span><span style="color: #0600FF;">this</span>, cameraPosition, cameraLookAt, Vector3.<span style="color: #0000FF;">Up</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            terrain.<span style="color: #0000FF;">model</span> <span style="color: #008000;">=</span> Content.<span style="color: #0000FF;">Load</span><span style="color: #000000;">&#40;</span>
                <span style="color: #666666;">&quot;Models<span style="color: #008080; font-weight: bold;">\\</span>terrain&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #008080; font-style: italic;">//载入坦克模型</span>
            tank.<span style="color: #0000FF;">model</span> <span style="color: #008000;">=</span> Content.<span style="color: #0000FF;">Load</span><span style="color: #000000;">&#40;</span>
                <span style="color: #666666;">&quot;Models<span style="color: #008080; font-weight: bold;">\\</span>kl&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            tank.<span style="color: #0000FF;">scale</span> <span style="color: #008000;">=</span> 0.08f<span style="color: #008000;">;</span>
            tank.<span style="color: #0000FF;">position</span>.<span style="color: #0000FF;">Y</span> <span style="color: #008000;">+=</span> <span style="color: #FF0000;">50</span><span style="color: #008000;">;</span>
            tank.<span style="color: #0000FF;">position</span>.<span style="color: #0000FF;">Z</span> <span style="color: #008000;">-=</span> <span style="color: #FF0000;">500</span><span style="color: #008000;">;</span>
&nbsp;
            missileLauncherBase.<span style="color: #0000FF;">model</span> <span style="color: #008000;">=</span> Content.<span style="color: #0000FF;">Load</span><span style="color: #000000;">&#40;</span>
                <span style="color: #666666;">&quot;Models<span style="color: #008080; font-weight: bold;">\\</span>launcher_base&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            missileLauncherBase.<span style="color: #0000FF;">scale</span> <span style="color: #008000;">=</span> 0.2f<span style="color: #008000;">;</span>
&nbsp;
            missileLauncherHead.<span style="color: #0000FF;">model</span> <span style="color: #008000;">=</span> Content.<span style="color: #0000FF;">Load</span><span style="color: #000000;">&#40;</span>
                <span style="color: #666666;">&quot;Models<span style="color: #008080; font-weight: bold;">\\</span>launcher_head&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            missileLauncherHead.<span style="color: #0000FF;">scale</span> <span style="color: #008000;">=</span> 0.2f<span style="color: #008000;">;</span>
            missileLauncherHead.<span style="color: #0000FF;">position</span> <span style="color: #008000;">=</span> missileLauncherBase.<span style="color: #0000FF;">position</span> <span style="color: #008000;">+</span>
                <span style="color: #008000;">new</span> Vector3<span style="color: #000000;">&#40;</span>0.0f, 20.0f, 0.0f<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            missiles <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> GameObject<span style="color: #000000;">&#91;</span>numMissiles<span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> numMissiles<span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                missiles<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span> <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> GameObject<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                missiles<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">model</span> <span style="color: #008000;">=</span>
                    Content.<span style="color: #0000FF;">Load</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;Models<span style="color: #008080; font-weight: bold;">\\</span>missile&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                missiles<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">scale</span> <span style="color: #008000;">=</span> 3.0f<span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
&nbsp;
            enemyShips <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> GameObject<span style="color: #000000;">&#91;</span>numEnemyShips<span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> i <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> numEnemyShips<span style="color: #008000;">;</span> i<span style="color: #008000;">++</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                enemyShips<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span> <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> GameObject<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                enemyShips<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">model</span> <span style="color: #008000;">=</span> Content.<span style="color: #0000FF;">Load</span><span style="color: #000000;">&#40;</span>
                    <span style="color: #666666;">&quot;Models<span style="color: #008080; font-weight: bold;">\\</span>enemy&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                enemyShips<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">scale</span> <span style="color: #008000;">=</span> 0.1f<span style="color: #008000;">;</span>
                enemyShips<span style="color: #000000;">&#91;</span>i<span style="color: #000000;">&#93;</span>.<span style="color: #0000FF;">rotation</span> <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Vector3<span style="color: #000000;">&#40;</span>
                    0.0f, MathHelper.<span style="color: #0000FF;">Pi</span>, 0.0f<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">// TODO: use this.Content to load your game content here</span>
        <span style="color: #000000;">&#125;</span></pre></td></tr></table></div>

<p>不过很欣喜的写出了一个camera类~</p>
]]></content:encoded>
			<wfw:commentRss>http://luinlee.com/216/xna23dsmax/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[转]Creating a Title Engine With Game Studio Express and XNA</title>
		<link>http://luinlee.com/180/cate1/</link>
		<comments>http://luinlee.com/180/cate1/#comments</comments>
		<pubDate>Sat, 28 Nov 2009 05:33:03 +0000</pubDate>
		<dc:creator>Luin</dc:creator>
				<category><![CDATA[XNA]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[IE]]></category>

		<guid isPermaLink="false">http://luinlee.com/?p=180</guid>
		<description><![CDATA[转自 http://www.xnaresources.com/pages.asp?pageid=21 Introduction This tutorial will walk through the steps to create a basic tile-based engine with Game Studio Express Beta 2. This engine is similar to the old style Ultima games and other RPGs back from the &#8220;Good Ole Days&#8221;. With a bit of enhancement (and artistic ability, because my tiles are pretty terrible!) [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>转自 http://www.xnaresources.com/pages.asp?pageid=21</p></blockquote>
<p><span id="more-180"></span></p>
<h2>Introduction</h2>
<p>This tutorial will walk through the steps to create a basic tile-based engine with Game Studio Express Beta 2. This engine is similar to the old style Ultima games and other RPGs back from the &#8220;Good Ole Days&#8221;. With a bit of enhancement (and artistic ability, because my tiles are pretty terrible!) You can put together a decent tile engine in GSE very quickly.</p>
<p>The engine created here is a square-tile based system. I plan on following up with another article on creating an isometric tile based engine in the near future.</p>
<h2>Concept</h2>
<p>For this tutorial, we will be creating a simple tile-based map engine. In order to do this, we will need:</p>
<ul>
<li>A map grid that represents the tile that will be used on each square.</li>
<li>A &#8220;Tile Set&#8221; of square graphics that can be drawn to represent the player&#8217;s location on the map</li>
</ul>
<h2>Creating the Project</h2>
<p>Start by opening Game Studio Express Beta and create a new project of the type &#8220;Windows Game (XNA)&#8221;. Remember to give your project a name. I would also recommend changing the name of the &#8220;Game1.cs&#8221; file, though throughout this tutorial I will continue to refer to it as Game1.cs.<br />
The basic &#8220;Windows Game (XNA)&#8221; template contains a single Graphics object and a class to represent your game in the Game1.cs file. The code in Game1.cs contains five important methods:</p>
<ul>
<li>Initialize &#8211; Run as the game is starting up. Here you can register game components and other stuff on the startup of your game.</li>
<li>LoadGraphicsContent &#8211; Again, called when the game is starting, but also called if the game loses access to the display and needs to reload non-automatically managed content.</li>
<li>UnloadGraphicsContent &#8211; Called to free content when the game is exiting.</li>
<li>Update &#8211; This routine is run in a continuous loop and is intended to be the place where your game logic is run. Here you can accept player input, update locations of game objects, etc</li>
<li>Draw &#8211; Finally, the Draw method is responsible to rendering the current game state to the screen. It is called by the class as rapidly as the system can handle.</li>
</ul>
<h2>Creating our Resources</h2>
<p>Before we can create a tile engine, we will need some tiles to draw onto the screen. I&#8217;ve created a few here by simply resizing a few texture images taken from <a href="http://www.texturebin.com/">The TextureBin</a>. Someone with artistic talent could do a much better job at creating a tileset. It would also be important to create corner and edge tiles so that grass and beach would blend smoothly into each other, for instance.<br />
That aside, here are the tiles I &#8220;created&#8221; quickly for this tutorial:</p>
<table border="0" width="99%">
<tbody>
<tr>
<td align="center"><img src="http://www.xnaresources.com/images/tutorialimages/tilemap_tut_grass.jpg" alt="" width="48" height="48" /></td>
<td align="center"><img src="http://www.xnaresources.com/images/tutorialimages/tilemap_tut_road.jpg" alt="" width="48" height="48" /></td>
<td align="center"><img src="http://www.xnaresources.com/images/tutorialimages/tilemap_tut_rock.jpg" alt="" width="48" height="48" /></td>
<td align="center"><img src="http://www.xnaresources.com/images/tutorialimages/tilemap_tut_water.jpg" alt="" width="48" height="48" /></td>
</tr>
<tr>
<td align="center">Grass</td>
<td align="center">Road</td>
<td align="center">Rock</td>
<td align="center">Water</td>
</tr>
</tbody>
</table>
<p>You can download and save these tile images our create your own. In this engine example, I have set the tile size at 48&#215;48 pixels. All of the tiles in a tileset (for this engine) must be the same size.</p>
<h2>Adding Resource to the Project</h2>
<p>In order for these resources to be accessable to the game, we need to add them to the project. Since we aren&#8217;t using transparency for <strong><em>these</em></strong> sprites, we can leave them as .JPG files. However, the DirectX Texture Tool can be used to create textures with alpha channels. We&#8217;ll do that later when we add a figure to represent the player to the map.</p>
<p>With the advent of the Beta 2, we will not be using the &#8220;content pipeline&#8221; to manage our graphics content. The content pipeline will handle getting our resources into a format that is usable on either Windows or the XBox.</p>
<p>Right click on the name of your project in the Solutions Explorer and select &#8220;Add&#8221; and &#8220;New Folder&#8221;. Call the folder &#8220;Content&#8221;. Right click on the content folder and click &#8220;Add&#8221; and &#8220;New Folder&#8221; again. This time call the folder &#8220;Textures&#8221;.</p>
<p>Now, use Windows Explorer to copy your graphical resources to the Textures folder. When you are all done, you should have four .JPG files in the content\textures folder.</p>
<p>Go back to Visual C# and right click on the Textures folder and select &#8220;Add&#8221; and &#8220;Existing Item&#8221;. In the dialog box that appears, select the tile files (you may need to change the File Type to Images to see them) and click ok. The Content Pipeline will give each of the resources a resource name (visible in the properties window below the Solution Explorer). Previously we had to set our graphics to &#8220;Copy Always&#8221; so that they were available to our program at run time. This is no longer necessary for any content that the Content Pipeline knows how to handle.</p>
<h2>Declaring Variables</h2>
<p>The first thing we need to do is declare some variables that we will use throughout the game to represent our game objects. In this case, it will be the map we are using, the &#8220;sprites&#8221; we will use to draw the tiles, and some control variables that we will use in the Draw and Update routines to maintain the game state.<br />
Right-Click on Game1.cs in the Solutions Explorer and select View Code. Locate the constructor (Public Game1()) and place the following right after the close brace (These are outside of any method, so they are available to all of the methods in the class):</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">        <span style="color: #008080; font-style: italic;">// An array of &quot;Texture2D&quot; objects to hold our Tile Set</span>
        Texture2D<span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> t2dTiles <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Texture2D<span style="color: #000000;">&#91;</span><span style="color: #FF0000;">4</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF;">const</span> <span style="color: #FF0000;">int</span> iMapWidth <span style="color: #008000;">=</span> <span style="color: #FF0000;">20</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF;">const</span> <span style="color: #FF0000;">int</span> iMapHeight <span style="color: #008000;">=</span> <span style="color: #FF0000;">20</span><span style="color: #008000;">;</span>
        <span style="color: #008080; font-style: italic;">// Our simple integer-array based map</span>
        <span style="color: #FF0000;">int</span><span style="color: #000000;">&#91;</span>,<span style="color: #000000;">&#93;</span> iMap <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> <span style="color: #FF0000;">int</span><span style="color: #000000;">&#91;</span>iMapHeight,iMapWidth<span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span>
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">3</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
        <span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
        <span style="color: #008080; font-style: italic;">// Variable we will need for Keyboard Input</span>
        KeyboardState ksKeyboardState<span style="color: #008000;">;</span>
        <span style="color: #008080; font-style: italic;">//Map coordinates for upper left corner</span>
        <span style="color: #FF0000;">int</span> iMapX <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
        <span style="color: #FF0000;">int</span> iMapY <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
        <span style="color: #008080; font-style: italic;">// How far from the Upper Left corner of the display do we want our map to start</span>
        <span style="color: #FF0000;">int</span> iMapDisplayOffsetX <span style="color: #008000;">=</span> <span style="color: #FF0000;">30</span><span style="color: #008000;">;</span>
        <span style="color: #FF0000;">int</span> iMapDisplayOffsetY <span style="color: #008000;">=</span> <span style="color: #FF0000;">30</span><span style="color: #008000;">;</span>
        <span style="color: #008080; font-style: italic;">// How many tiles should we display at a time</span>
        <span style="color: #FF0000;">int</span> iMapDisplayWidth <span style="color: #008000;">=</span> <span style="color: #FF0000;">6</span><span style="color: #008000;">;</span>
        <span style="color: #FF0000;">int</span> iMapDisplayHeight <span style="color: #008000;">=</span> <span style="color: #FF0000;">6</span><span style="color: #008000;">;</span>
        <span style="color: #008080; font-style: italic;">// The size of an individual tile in pixels</span>
        <span style="color: #FF0000;">int</span> iTileWidth <span style="color: #008000;">=</span> <span style="color: #FF0000;">48</span><span style="color: #008000;">;</span>
        <span style="color: #FF0000;">int</span> iTileHeight <span style="color: #008000;">=</span> <span style="color: #FF0000;">48</span><span style="color: #008000;">;</span>
        <span style="color: #008080; font-style: italic;">// How rapidly do we want the map to scroll?</span>
        <span style="color: #FF0000;">float</span> fKeyPressCheckDelay <span style="color: #008000;">=</span> 0.25f<span style="color: #008000;">;</span>
        <span style="color: #FF0000;">float</span> fTotalElapsedTime<span style="color: #008000;">=</span><span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
        <span style="color: #008080; font-style: italic;">//this is the object that will draw the sprites</span>
        SpriteBatch spriteBatch<span style="color: #008000;">;</span></pre></div></div>

<p>There is quite a bit going on here, so I&#8217;ll explain step by step:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">        <span style="color: #008080; font-style: italic;">// An array of &quot;Texture2D&quot; objects to hold our Tile Set</span>
        Texture2D<span style="color: #000000;">&#91;</span><span style="color: #000000;">&#93;</span> t2dTiles <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Texture2D<span style="color: #000000;">&#91;</span><span style="color: #FF0000;">4</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span></pre></div></div>

<p>This declares an array of objects of the type &#8220;Texture2D&#8221; named t2dTiles. We are defining 4 files in this engine. This array of objects will hold the bitmap data for the sprites we will use for the Tile Set.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">        <span style="color: #0600FF;">const</span> <span style="color: #FF0000;">int</span> iMapWidth <span style="color: #008000;">=</span> <span style="color: #FF0000;">20</span><span style="color: #008000;">;</span>
        <span style="color: #0600FF;">const</span> <span style="color: #FF0000;">int</span> iMapHeight <span style="color: #008000;">=</span> <span style="color: #FF0000;">20</span><span style="color: #008000;">;</span>
        <span style="color: #008080; font-style: italic;">// Our simple integer-array based map</span>
        <span style="color: #FF0000;">int</span><span style="color: #000000;">&#91;</span>,<span style="color: #000000;">&#93;</span> iMap <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> <span style="color: #FF0000;">int</span><span style="color: #000000;">&#91;</span>iMapHeight,iMapWidth<span style="color: #000000;">&#93;</span> <span style="color: #000000;">&#123;</span>
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">3</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">2</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
                             <span style="color: #000000;">&#123;</span> <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">1</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#125;</span>,
        <span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span></pre></div></div>

<p>This is a <strong>very</strong> simplistic representation of a game map. We have pre-defined the size of the map to 20 by 20 tiles (with the iMapWidth and iMapHeight constants) and then simply declare the array that represents the map in the code here. A more realistic system would read the map from an external file or a built-in resource that was built via a map builder. For our purposes in this tutorial, however, this will suffice. The numbers in the array represent the tile number for each sqare on the map.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">        <span style="color: #008080; font-style: italic;">// Variable we will need for Keyboard Input</span>
        KeyboardState ksKeyboardState<span style="color: #008000;">;</span></pre></div></div>

<p>We will need these later for allowing the player to &#8220;move&#8221; by pressing keys on the keyboard.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">        <span style="color: #008080; font-style: italic;">//Map coordinates for upper left corner</span>
        <span style="color: #FF0000;">int</span> iMapX <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
        <span style="color: #FF0000;">int</span> iMapY <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span>
        <span style="color: #008080; font-style: italic;">// How far from the Upper Left corner of the display do we want our map to start</span>
        <span style="color: #FF0000;">int</span> iMapDisplayOffsetX <span style="color: #008000;">=</span> <span style="color: #FF0000;">30</span><span style="color: #008000;">;</span>
        <span style="color: #FF0000;">int</span> iMapDisplayOffsetY <span style="color: #008000;">=</span> <span style="color: #FF0000;">30</span><span style="color: #008000;">;</span>
        <span style="color: #008080; font-style: italic;">// How many tiles should we display at a time</span>
        <span style="color: #FF0000;">int</span> iMapDisplayWidth <span style="color: #008000;">=</span> <span style="color: #FF0000;">6</span><span style="color: #008000;">;</span>
        <span style="color: #FF0000;">int</span> iMapDisplayHeight <span style="color: #008000;">=</span> <span style="color: #FF0000;">6</span><span style="color: #008000;">;</span>
        <span style="color: #008080; font-style: italic;">// The size of an individual tile in pixels</span>
        <span style="color: #FF0000;">int</span> iTileWidth <span style="color: #008000;">=</span> <span style="color: #FF0000;">48</span><span style="color: #008000;">;</span>
        <span style="color: #FF0000;">int</span> iTileHeight <span style="color: #008000;">=</span> <span style="color: #FF0000;">48</span><span style="color: #008000;">;</span></pre></div></div>

<p>This should all be self explanatory. These variables are used later in the Draw method to determine how to copy the sprites to the display.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">        <span style="color: #008080; font-style: italic;">// How rapidly do we want the map to scroll?</span>
        <span style="color: #FF0000;">float</span> fKeyPressCheckDelay <span style="color: #008000;">=</span> 0.25f<span style="color: #008000;">;</span>
        <span style="color: #FF0000;">float</span> fTotalElapsedTime<span style="color: #008000;">=</span><span style="color: #FF0000;">0</span><span style="color: #008000;">;</span></pre></div></div>

<p>These variables are used to control how fast the map resonds to user input. Without some kind of movement pacing, the player will press a key and the map will shoot off in that direction as fast as the Update routine is called.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">        <span style="color: #008080; font-style: italic;">//this is the object that will draw the sprites</span>
        SpriteBatch spriteBatch<span style="color: #008000;">;</span></pre></div></div>

<p>Finally we need a SpriteBatch object to use in the Draw method. The SpriteBatch is responsible for copying the tiles from our stored sprite variables into the display buffer.</p>
<h2>Loading our Resources</h2>
<p>The default framework for our project creates the &#8220;LoadGraphicsContent&#8221; method for us and calls it automatically when the game starts. To load our content, we will use the following code:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">        <span style="color: #0600FF;">protected</span> <span style="color: #0600FF;">override</span> <span style="color: #0600FF;">void</span> LoadGraphicsContent<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">bool</span> loadAllContent<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>loadAllContent<span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                <span style="color: #008080; font-style: italic;">// TODO: Load any ResourceManagementMode.Automatic content</span>
                t2dTiles<span style="color: #000000;">&#91;</span><span style="color: #FF0000;">0</span><span style="color: #000000;">&#93;</span> <span style="color: #008000;">=</span> content.<span style="color: #0000FF;">Load</span><span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span>Texture2D<span style="color: #008000;">&amp;</span>gt<span style="color: #008000;">;</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">@&quot;content\textures\tilemap_tut_grass&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                t2dTiles<span style="color: #000000;">&#91;</span><span style="color: #FF0000;">1</span><span style="color: #000000;">&#93;</span> <span style="color: #008000;">=</span> content.<span style="color: #0000FF;">Load</span><span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span>Texture2D<span style="color: #008000;">&amp;</span>gt<span style="color: #008000;">;</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">@&quot;content\textures\tilemap_tut_water&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                t2dTiles<span style="color: #000000;">&#91;</span><span style="color: #FF0000;">2</span><span style="color: #000000;">&#93;</span> <span style="color: #008000;">=</span> content.<span style="color: #0000FF;">Load</span><span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span>Texture2D<span style="color: #008000;">&amp;</span>gt<span style="color: #008000;">;</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">@&quot;content\textures\tilemap_tut_road&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                t2dTiles<span style="color: #000000;">&#91;</span><span style="color: #FF0000;">3</span><span style="color: #000000;">&#93;</span> <span style="color: #008000;">=</span> content.<span style="color: #0000FF;">Load</span><span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span>Texture2D<span style="color: #008000;">&amp;</span>gt<span style="color: #008000;">;</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">@&quot;content\textures\tilemap_tut_rock&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                spriteBatch <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> SpriteBatch<span style="color: #000000;">&#40;</span>graphics.<span style="color: #0000FF;">GraphicsDevice</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
            <span style="color: #008080; font-style: italic;">// TODO: Load any ResourceManagementMode.Manual content</span>
        <span style="color: #000000;">&#125;</span></pre></div></div>

<p>If loadAllContent is true, we should load everything (meaning we are calling the routine for the first time while the game is starting). Otherwise we only need to load resources we are managing manually. We are going to let XNA manage these resources, so we only need to load them once.</p>
<p>Note that we don&#8217;t supply a file extension to the textures. This is because the Content Pipeline automatically assignes a name to the resources which is a filename without the extension, and we aren&#8217;t actually working with a file here but rather with it&#8217;s representation in the Content Pipeline.</p>
<h2>Drawing the Map</h2>
<p>If you were to run the project at this point, you would still get just the default blue window because we haven&#8217;t made any changes to the two &#8220;Game Loop&#8221; functions. Modify your Draw method to look like this:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">        <span style="color: #0600FF;">protected</span> <span style="color: #0600FF;">override</span> <span style="color: #0600FF;">void</span> Draw<span style="color: #000000;">&#40;</span>GameTime gameTime<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            graphics.<span style="color: #0000FF;">GraphicsDevice</span>.<span style="color: #0000FF;">Clear</span><span style="color: #000000;">&#40;</span>Color.<span style="color: #0000FF;">CornflowerBlue</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
            spriteBatch.<span style="color: #0000FF;">Begin</span><span style="color: #000000;">&#40;</span>SpriteBlendMode.<span style="color: #0000FF;">AlphaBlend</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #008080; font-style: italic;">// Draw the map</span>
            <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> y <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> y <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> iMapDisplayHeight<span style="color: #008000;">;</span> y<span style="color: #008000;">++</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> x <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> x <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> iMapDisplayWidth<span style="color: #008000;">;</span> x<span style="color: #008000;">++</span><span style="color: #000000;">&#41;</span>
                <span style="color: #000000;">&#123;</span>
                    spriteBatch.<span style="color: #0000FF;">Draw</span><span style="color: #000000;">&#40;</span>t2dTiles<span style="color: #000000;">&#91;</span>iMap<span style="color: #000000;">&#91;</span>y <span style="color: #008000;">+</span> iMapY, x <span style="color: #008000;">+</span> iMapX<span style="color: #000000;">&#93;</span><span style="color: #000000;">&#93;</span>,
                                     <span style="color: #008000;">new</span> Rectangle<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>x <span style="color: #008000;">*</span> iTileWidth<span style="color: #000000;">&#41;</span> <span style="color: #008000;">+</span> iMapDisplayOffsetX,
                                     y <span style="color: #008000;">*</span> iTileHeight <span style="color: #008000;">+</span> iMapDisplayOffsetY, iTileWidth, iTileHeight<span style="color: #000000;">&#41;</span>,
                                     Color.<span style="color: #0000FF;">White</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                <span style="color: #000000;">&#125;</span>
            <span style="color: #000000;">&#125;</span>
            spriteBatch.<span style="color: #0000FF;">End</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF;">base</span>.<span style="color: #0000FF;">Draw</span><span style="color: #000000;">&#40;</span>gameTime<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span></pre></div></div>

<p>This is the heart of our map engine, so we&#8217;ll go through it line by line. All of our drawing will be done between a BeginScene() and EndScene() call.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">            spriteBatch.<span style="color: #0000FF;">Begin</span><span style="color: #000000;">&#40;</span>SpriteBlendMode.<span style="color: #0000FF;">AlphaBlend</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>Tells the spriteBatch object that we are going to start painting sprites. The use of &#8220;SpriteBlendMode.AlphaBlend&#8221; ensures that the spriteBatch will take alpha channels (transparency) into account when painting. We we aren&#8217;t using alpha channels for our initial map display, it will be useful later in overlaying objects (ie, the player) on the map.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">            <span style="color: #008080; font-style: italic;">// Draw the map</span>
            <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> y <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> y <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> iMapDisplayHeight<span style="color: #008000;">;</span> y<span style="color: #008000;">++</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> x <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> x<span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> iMapDisplayWidth<span style="color: #008000;">;</span> x<span style="color: #008000;">++</span><span style="color: #000000;">&#41;</span>
                <span style="color: #000000;">&#123;</span>
                    spriteBatch.<span style="color: #0000FF;">Draw</span><span style="color: #000000;">&#40;</span>t2dTiles<span style="color: #000000;">&#91;</span>iMap<span style="color: #000000;">&#91;</span>y<span style="color: #008000;">+</span>iMapY,x<span style="color: #008000;">+</span>iMapX<span style="color: #000000;">&#93;</span><span style="color: #000000;">&#93;</span>,
                                     <span style="color: #008000;">new</span> Rectangle<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#40;</span>x<span style="color: #008000;">*</span>iTileWidth<span style="color: #000000;">&#41;</span><span style="color: #008000;">+</span>iMapDisplayOffsetX,
                                     y<span style="color: #008000;">*</span>iTileHeight <span style="color: #008000;">+</span> iMapDisplayOffsetY, iTileWidth, iTileHeight<span style="color: #000000;">&#41;</span>,
                                     Color.<span style="color: #0000FF;">White</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                <span style="color: #000000;">&#125;</span>
            <span style="color: #000000;">&#125;</span></pre></div></div>

<p>Here we actually draw the sprites that compose the map. We set up two for loops, one for the Y axis and one for the X axis. the iMapDisplayHeight and iMapDisplayWidth variables determine how many tiles we will draw in each direction.<br />
We call the spriteBatch.Draw method to actually paint a sprite to the display buffer. The first parameter of the spriteBatch.Draw method is the sprite we wish to draw. We find the tile that should be drawn by looking in the iMap array. This will return a number from 0 to 3, corresponding to the tiles in our Tile Set.<br />
The second parameter is a Rectangle object representing where on the display buffer the sprite will be displayed. Using the loop counter values, the width of the tiles, and the DisplayOffset variables we create that rectangle.<br />
Finally, the third parameter represents the tinting that will be used when drawing the sprite. We are drawing the sprite without any tinting, so the Color.White value is used to indicate that.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">            spriteBatch.<span style="color: #0000FF;">End</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>After all of the sprites have been drawn, we wrap up the batch</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">            <span style="color: #0600FF;">base</span>.<span style="color: #0000FF;">Draw</span><span style="color: #000000;">&#40;</span>gameTime<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span></pre></div></div>

<p>The rest of the method is unchanged from the template. It simply calls the underlying class&#8217;s Draw method. Running the project should produce a map that is set 30 pixels from the top and right of the window and 6 tiles high and wide.</p>
<h2>Accepting Player Input</h2>
<p>Now that we can draw the map, we need to be able to let the player press arrow keys and move around. In order to do this, we will need to modify the Update method to check for keyboard input.<br />
Replace your Update method with the following:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">        <span style="color: #0600FF;">protected</span> <span style="color: #0600FF;">override</span> <span style="color: #0600FF;">void</span> Update<span style="color: #000000;">&#40;</span>GameTime gameTime<span style="color: #000000;">&#41;</span>
        <span style="color: #000000;">&#123;</span>
            <span style="color: #008080; font-style: italic;">// Allows the default game to exit on Xbox 360 and Windows</span>
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>GamePad.<span style="color: #0000FF;">GetState</span><span style="color: #000000;">&#40;</span>PlayerIndex.<span style="color: #0000FF;">One</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Buttons</span>.<span style="color: #0000FF;">Back</span> <span style="color: #008000;">==</span> ButtonState.<span style="color: #0000FF;">Pressed</span><span style="color: #000000;">&#41;</span>
                <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">Exit</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #FF0000;">float</span> elapsed <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">float</span><span style="color: #000000;">&#41;</span>gameTime.<span style="color: #0000FF;">ElapsedGameTime</span>.<span style="color: #0000FF;">TotalSeconds</span><span style="color: #008000;">;</span>
            fTotalElapsedTime <span style="color: #008000;">+=</span> elapsed<span style="color: #008000;">;</span>
            ksKeyboardState <span style="color: #008000;">=</span> Keyboard.<span style="color: #0000FF;">GetState</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>ksKeyboardState.<span style="color: #0000FF;">IsKeyDown</span><span style="color: #000000;">&#40;</span>Keys.<span style="color: #0000FF;">Escape</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">Exit</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
            <span style="color: #000000;">&#125;</span>
&nbsp;
            <span style="color: #008080; font-style: italic;">// See if enough time has elapsed since we last moved on the map.</span>
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>fTotalElapsedTime <span style="color: #008000;">&amp;</span>gt<span style="color: #008000;">;=</span> fKeyPressCheckDelay<span style="color: #000000;">&#41;</span>
            <span style="color: #000000;">&#123;</span>
                <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>ksKeyboardState.<span style="color: #0000FF;">IsKeyDown</span><span style="color: #000000;">&#40;</span>Keys.<span style="color: #0000FF;">Up</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
                <span style="color: #000000;">&#123;</span>
                    iMapY<span style="color: #008000;">--;</span>
                    fTotalElapsedTime <span style="color: #008000;">=</span> 0.0f<span style="color: #008000;">;</span>
                <span style="color: #000000;">&#125;</span>
                <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>ksKeyboardState.<span style="color: #0000FF;">IsKeyDown</span><span style="color: #000000;">&#40;</span>Keys.<span style="color: #0000FF;">Down</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
                <span style="color: #000000;">&#123;</span>
                    iMapY<span style="color: #008000;">++;</span>
                    fTotalElapsedTime <span style="color: #008000;">=</span> 0.0f<span style="color: #008000;">;</span>
                <span style="color: #000000;">&#125;</span>
                <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>ksKeyboardState.<span style="color: #0000FF;">IsKeyDown</span><span style="color: #000000;">&#40;</span>Keys.<span style="color: #0000FF;">Left</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
                <span style="color: #000000;">&#123;</span>
                    iMapX<span style="color: #008000;">--;</span>
                    fTotalElapsedTime <span style="color: #008000;">=</span> 0.0f<span style="color: #008000;">;</span>
                <span style="color: #000000;">&#125;</span>
                <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>ksKeyboardState.<span style="color: #0000FF;">IsKeyDown</span><span style="color: #000000;">&#40;</span>Keys.<span style="color: #0000FF;">Right</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
                <span style="color: #000000;">&#123;</span>
                    iMapX<span style="color: #008000;">++;</span>
                    fTotalElapsedTime <span style="color: #008000;">=</span> 0.0f<span style="color: #008000;">;</span>
                <span style="color: #000000;">&#125;</span>
                <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>iMapX <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> <span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> iMapX <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
                <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>iMapX <span style="color: #008000;">&amp;</span>gt<span style="color: #008000;">;</span> iMapWidth <span style="color: #008000;">-</span> iMapDisplayWidth<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> iMapX <span style="color: #008000;">=</span> iMapWidth <span style="color: #008000;">-</span> iMapDisplayWidth<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
                <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>iMapY <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> <span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> iMapY <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
                <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>iMapY <span style="color: #008000;">&amp;</span>gt<span style="color: #008000;">;</span> iMapHeight <span style="color: #008000;">-</span> iMapDisplayHeight<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> iMapY <span style="color: #008000;">=</span> iMapHeight <span style="color: #008000;">-</span> iMapDisplayHeight<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
            <span style="color: #000000;">&#125;</span>
            <span style="color: #0600FF;">base</span>.<span style="color: #0000FF;">Update</span><span style="color: #000000;">&#40;</span>gameTime<span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
        <span style="color: #000000;">&#125;</span></pre></div></div>

<p>Once again, there is alot happening here, so we will go through it step by step:</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">            <span style="color: #008080; font-style: italic;">// Allows the default game to exit on Xbox 360 and Windows</span>
            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>GamePad.<span style="color: #0000FF;">GetState</span><span style="color: #000000;">&#40;</span>PlayerIndex.<span style="color: #0000FF;">One</span><span style="color: #000000;">&#41;</span>.<span style="color: #0000FF;">Buttons</span>.<span style="color: #0000FF;">Back</span> <span style="color: #008000;">==</span> ButtonState.<span style="color: #0000FF;">Pressed</span><span style="color: #000000;">&#41;</span>
                <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">Exit</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>This is part of the default template. If the player presses the &#8220;Back&#8221; button on the XBox 360 controller the game will exit.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">            <span style="color: #FF0000;">float</span> elapsed <span style="color: #008000;">=</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">float</span><span style="color: #000000;">&#41;</span>gameTime.<span style="color: #0000FF;">ElapsedGameTime</span>.<span style="color: #0000FF;">TotalSeconds</span><span style="color: #008000;">;</span>
            fTotalElapsedTime <span style="color: #008000;">+=</span> elapsed<span style="color: #008000;">;</span></pre></div></div>

<p>This allows us to accumulate the elapsed time into a float that we can use later to determine how quickly the map should scroll.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">                ksKeyboardState <span style="color: #008000;">=</span> Keyboard.<span style="color: #0000FF;">GetState</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span></pre></div></div>

<p>Here, we get the current state of the keyboard into a variable we can then use to check for pressed keys.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">                <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>ksKeyboardState.<span style="color: #0000FF;">IsKeyDown</span><span style="color: #000000;">&#40;</span>Keys.<span style="color: #0000FF;">Escape</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span>
                    <span style="color: #0600FF;">this</span>.<span style="color: #0000FF;">Exit</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
                <span style="color: #000000;">&#125;</span></pre></div></div>

<p>For convenience sake, if Escape is pressed, exit the program. Obviously you wouldn&#8217;t want to do this in a real program. Perhaps you would bring up a menu or other such activity.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">                <span style="color: #008080; font-style: italic;">// See if enough time has elapsed since we last moved on the map.</span>
                <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>fTotalElapsedTime <span style="color: #008000;">&amp;</span>gt<span style="color: #008000;">;=</span> fKeyPressCheckDelay<span style="color: #000000;">&#41;</span>
                <span style="color: #000000;">&#123;</span></pre></div></div>

<p>Before we check to see if movement keys are pressed, we want to first check to see if the minimum map scroll time has elapsed (I&#8217;ve defaulted it here to 0.25 seconds). If we dont&#8217; do something along these lines, the map will scroll REALLY fast.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">                   <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>ksKeyboardState.<span style="color: #0000FF;">IsKeyDown</span><span style="color: #000000;">&#40;</span>Keys.<span style="color: #0000FF;">Up</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
                   <span style="color: #000000;">&#123;</span>
                       iMapY<span style="color: #008000;">--;</span>
                       fTotalElapsedTime <span style="color: #008000;">=</span> 0.0f<span style="color: #008000;">;</span>
                   <span style="color: #000000;">&#125;</span>
                   <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>ksKeyboardState.<span style="color: #0000FF;">IsKeyDown</span><span style="color: #000000;">&#40;</span>Keys.<span style="color: #0000FF;">Down</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
                   <span style="color: #000000;">&#123;</span>
                       iMapY<span style="color: #008000;">++;</span>
                       fTotalElapsedTime <span style="color: #008000;">=</span> 0.0f<span style="color: #008000;">;</span>
                   <span style="color: #000000;">&#125;</span>
                   <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>ksKeyboardState.<span style="color: #0000FF;">IsKeyDown</span><span style="color: #000000;">&#40;</span>Keys.<span style="color: #0000FF;">Left</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
                   <span style="color: #000000;">&#123;</span>
                       iMapX<span style="color: #008000;">--;</span>
                       fTotalElapsedTime <span style="color: #008000;">=</span> 0.0f<span style="color: #008000;">;</span>
                   <span style="color: #000000;">&#125;</span>
                   <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>ksKeyboardState.<span style="color: #0000FF;">IsKeyDown</span><span style="color: #000000;">&#40;</span>Keys.<span style="color: #0000FF;">Right</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
                   <span style="color: #000000;">&#123;</span>
                       iMapX<span style="color: #008000;">++;</span>
                       fTotalElapsedTime <span style="color: #008000;">=</span> 0.0f<span style="color: #008000;">;</span>
                   <span style="color: #000000;">&#125;</span></pre></div></div>

<p>If any of the arrow keys are pressed, moved the &#8220;map&#8221; in that direction by updating the X/Y coordinate.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">                   <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>iMapX <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> <span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> iMapX <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
                   <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>iMapX <span style="color: #008000;">&amp;</span>gt<span style="color: #008000;">;</span> iMapWidth<span style="color: #008000;">-</span>iMapDisplayWidth<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> iMapX <span style="color: #008000;">=</span> iMapWidth<span style="color: #008000;">-</span>iMapDisplayWidth<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
                   <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>iMapY <span style="color: #008000;">&amp;</span>lt<span style="color: #008000;">;</span> <span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> iMapY <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span>
                   <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>iMapY <span style="color: #008000;">&amp;</span>gt<span style="color: #008000;">;</span> iMapHeight<span style="color: #008000;">-</span>iMapDisplayHeight<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> iMapY <span style="color: #008000;">=</span> iMapHeight<span style="color: #008000;">-</span>iMapDisplayHeight<span style="color: #008000;">;</span> <span style="color: #000000;">&#125;</span></pre></div></div>

<p>Finally we check to see if the X and Y coordinates have gone off the end of the map. If so, bump the coordinate back to the edge.</p>
<h2>Wrapping it Up</h2>
<p>At this point, you should have a working tile-based map.</p>
<p align="center"><img src="http://www.xnaresources.com/images/tutorialimages/tile_engine.jpg" border="0" alt="" width="320" height="253" /></p>
<p>There are, however, a number of things that could be done to improve the simple system we have here. I hope to follow this tutorial up with examples of how to implement some of these improvements:</p>
<ul>
<li>Add an &#8220;Avatar&#8221; for the player. This could be an animated sprited that is drawn in the center of the map with Alpha Blending after the map is drawn</li>
<li>Make the map scroll smoothly by keeping track of an offset within the individual tiles. Adjust the drawing position whenever the movement keys are pressed by this fractional tile instead of a full tile. Note that you would want to adjust the fKeyPressCheckDelay to compensate for the fact that you are moving up to 48 times more slowly.</li>
<li>Build an interface around the map we have here, perhaps with character stats, etc</li>
<li>Alternatively, set iMapDisplayOffsetX and iMapDisplayOffsetY to 0 and set iMapDisplayWidth to 14 and iMapDisplayHeight to 10 so that the map fills the 640&#215;480 window</li>
</ul>
<div>Of course, you would also want to actually build a game behind the system as well.</div>
<p align="center"><a href="http://www.xnaresources.com/downloads/tiletutorial1b2.zip"><img src="http://www.xnaresources.com/images/downloadsource.png" border="0" alt="" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://luinlee.com/180/cate1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
