<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Clemens Schotte's Blog</title><link>http://blogs.msdn.com/b/cschotte/</link><description>Technical Evangelist at Microsoft</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Hosting multiple domains under one Azure Website</title><link>http://blogs.msdn.com/b/cschotte/archive/2013/05/30/hosting-multiple-domains-under-one-azure.aspx</link><pubDate>Thu, 30 May 2013 13:32:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10422356</guid><dc:creator>Clemens Schotte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/cschotte/rsscomments.aspx?WeblogPostID=10422356</wfw:commentRss><comments>http://blogs.msdn.com/b/cschotte/archive/2013/05/30/hosting-multiple-domains-under-one-azure.aspx#comments</comments><description>&lt;p&gt;When you have multiple domain names and have only one &lt;strong&gt;Azure website&lt;/strong&gt;, you can use IIS URL Rewrite to host multiple domains. What do you need? At least one Windows Azure website in &lt;strong&gt;shared mode&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-87/8802.azure.png"&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-87/8802.azure.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Add you domain names to this Windows Azure website. This is not possible when you use the free Windows Azure websites.&lt;/p&gt;
&lt;p&gt;The following folder structure we need, every domain has his own folder:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;root.azurewebsites.net&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;domain1&lt;/li&gt;
&lt;li&gt;domain2&lt;/li&gt;
&lt;li&gt;domain3&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Add to the root folder the file &lt;strong&gt;web.config&lt;/strong&gt; and add the following xml:&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;&amp;lt;?&lt;/span&gt;&lt;span class="html"&gt;xml&lt;/span&gt; &lt;span class="attr"&gt;version&lt;/span&gt;&lt;span class="kwrd"&gt;="1.0"&lt;/span&gt;?&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;

  &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;system.webServer&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;rewrite&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;rules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 
        &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;rule&lt;/span&gt; &lt;span class="attr"&gt;name&lt;/span&gt;&lt;span class="kwrd"&gt;="domain1.com"&lt;/span&gt; &lt;span class="attr"&gt;stopProcessing&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;match&lt;/span&gt; &lt;span class="attr"&gt;url&lt;/span&gt;&lt;span class="kwrd"&gt;=".*"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;conditions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;input&lt;/span&gt;&lt;span class="kwrd"&gt;="{HTTP_HOST}"&lt;/span&gt; &lt;span class="attr"&gt;pattern&lt;/span&gt;&lt;span class="kwrd"&gt;="^(www.)?domain1.(com|nl)"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;add&lt;/span&gt; &lt;span class="attr"&gt;input&lt;/span&gt;&lt;span class="kwrd"&gt;="{PATH_INFO}"&lt;/span&gt; &lt;span class="attr"&gt;pattern&lt;/span&gt;&lt;span class="kwrd"&gt;="^/domain1/"&lt;/span&gt; &lt;span class="attr"&gt;negate&lt;/span&gt;&lt;span class="kwrd"&gt;="true"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
          &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;conditions&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;action&lt;/span&gt; &lt;span class="attr"&gt;type&lt;/span&gt;&lt;span class="kwrd"&gt;="Rewrite"&lt;/span&gt; &lt;span class="attr"&gt;url&lt;/span&gt;&lt;span class="kwrd"&gt;="\domain1\{R:0}"&lt;/span&gt; &lt;span class="kwrd"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;rule&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
 
      &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;rules&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;rewrite&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;system.webServer&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;configuration&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;In this example we use the IIS rewrite rules to manage the requests for www.domain1.com and www.domain1.nl and forward this to the subfolder domain1. Add as many domains and rules you like.&lt;/p&gt;
&lt;p&gt;Need more information about IIS Rewite, please go to &lt;a href="http://weblogs.asp.net/owscott/archive/2010/01/26/iis-url-rewrite-hosting-multiple-domains-under-one-site.aspx"&gt;Scott Forsyth's Blog&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10422356" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/Azure/">Azure</category></item><item><title>Your own Windows 8 BookApp</title><link>http://blogs.msdn.com/b/cschotte/archive/2013/05/09/your-own-windows-8-bookapp.aspx</link><pubDate>Thu, 09 May 2013 11:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10417296</guid><dc:creator>Clemens Schotte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/cschotte/rsscomments.aspx?WeblogPostID=10417296</wfw:commentRss><comments>http://blogs.msdn.com/b/cschotte/archive/2013/05/09/your-own-windows-8-bookapp.aspx#comments</comments><description>&lt;h1&gt;Creating your first BookApp tutorial&lt;/h1&gt;
&lt;p&gt;Welcome to the MyBookApp template tutorial! Create simple and fast your own BookApp for Windows 8. &lt;a href="http://mybookapp.azurewebsites.net/" target="_blank"&gt;Download&lt;/a&gt; now for free the MyBookApp template and start publishing your own books in the Windows Store!&lt;/p&gt;
&lt;h1&gt;Step 1 &amp;ndash; Software Requirements&lt;/h1&gt;
&lt;p&gt;Before we can start using the MyBookApp template we need the following software, download and install:&lt;/p&gt;
&lt;p&gt;&amp;ndash; &lt;a href="http://microsoft.com/windows" target="_blank"&gt;Microsoft Windows 8&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;ndash; &lt;a href="http://www.microsoft.com/visualstudio/eng/downloads#d-2012-express" target="_blank"&gt;Visual Studio Express 2012 for Windows 8&lt;/a&gt; (free download)&lt;/p&gt;
&lt;p&gt;&amp;ndash; &lt;a href="http://mybookapp.azurewebsites.net/" target="_blank"&gt;MyBookApp template&lt;/a&gt; (free download)&lt;/p&gt;
&lt;p&gt;Optional you can download and install &lt;a href="http://code.google.com/p/sigil/" target="_blank"&gt;Sigil&lt;/a&gt; (free download) a multi-platform EPUB ebook editor. The MyBookApp template uses the EPUB file format to display your book in the BookApp. So make your book ready for the EPUB file format.&lt;/p&gt;
&lt;h1&gt;Step 2 &amp;ndash; Windows Store Registration&lt;/h1&gt;
&lt;p&gt;To successfully complete this tutorial, you will need an &lt;a href="http://account.live.com/" target="_blank"&gt;Microsoft account&lt;/a&gt;, previously called Windows Live ID, which you need to register your Windows Developer Account.&lt;/p&gt;
&lt;p&gt;Log in with your Microsoft account on the Windows Dev Center and open a Windows Store developer account: &lt;a href="https://appdev.microsoft.com/StorePortals/en-us/Account/Signup/Start/" target="_blank"&gt;http://dev.windows.com/&lt;/a&gt; (Pick whether you want to create an &lt;a href="http://go.microsoft.com/fwlink/p/?linkid=268282&amp;amp;clcid=0x0409" target="_blank"&gt;individual or a company account&lt;/a&gt;)&lt;/p&gt;
&lt;p&gt;Note: If you link to your Microsoft Developer Services account, your Windows Store developer account will be the same type.&lt;/p&gt;
&lt;h1&gt;Step 3 &amp;ndash; Run and customize your BookApp&lt;/h1&gt;
&lt;p&gt;Start Visual Studio Express 2012 for Windows 8 and open de MyBookApp template (extract first the MyBookAppTemplate_v1.0.zip file to a safe place to edit before opening it in Visual Studio)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Run your app:&lt;/strong&gt; First, take a look at the app in a clean state. After you&amp;rsquo;ve opened up the solution, press the (&lt;img src="http://mybookapp.azurewebsites.net/images/Start.png" alt="Debug" /&gt;) button on the toolbar in Visual Studio or press F5 on your keyboard to launch the app. Familiarize yourself with the app&amp;rsquo;s core functionalities:&lt;/p&gt;
&lt;p&gt;Main Page:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://mybookapp.azurewebsites.net/images/screen1.jpg" alt="BookApp Screen 1" /&gt;&lt;/p&gt;
&lt;p&gt;Book Page:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img src="http://mybookapp.azurewebsites.net/images/screen2.jpg" alt="BookApp Screen 2" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Add your book to the app:&lt;/strong&gt; You need your book in the EPUB file format and a cover image (at least 310 x 470 pixels) in JPEG file format. Add your book.epub and cover.jpeg files to the solution, add it to the folder:&lt;br /&gt;&lt;strong&gt;MyBookApp -&amp;gt; Assets -&amp;gt; Book&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Your find in the same folder the example book 'The Beautiful and Damned', remove this book and his cover from the solution.&lt;/p&gt;
&lt;p&gt;Change in Visual Studio the &lt;strong&gt;Build Action&lt;/strong&gt; properties of your added book.epub file from None to &lt;strong&gt;Content&lt;/strong&gt;. (right click on the file book.epub and click Properties in the menu)&lt;/p&gt;
&lt;p&gt;Change the settings in the app for your book. Open the file &lt;strong&gt;MyBookApp -&amp;gt; App.xaml&lt;/strong&gt; and change the following content: &lt;strong&gt;AppName&lt;/strong&gt;, &lt;strong&gt;EPubBook&lt;/strong&gt; and &lt;strong&gt;CoverImage&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;x:String&lt;/span&gt; &lt;span class="attr"&gt;x:Key&lt;/span&gt;&lt;span class="kwrd"&gt;="AppName"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;strong&gt;Your Book Title&lt;/strong&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;x:String&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;x:String&lt;/span&gt; &lt;span class="attr"&gt;x:Key&lt;/span&gt;&lt;span class="kwrd"&gt;="EPubBook"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;ms-appx:///Assets/Book/&lt;strong&gt;book.epub&lt;/strong&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;x:String&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;x:String&lt;/span&gt; &lt;span class="attr"&gt;x:Key&lt;/span&gt;&lt;span class="kwrd"&gt;="CoverImage"&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;ms-appx:///Assets/Book/&lt;strong&gt;cover.jpg&lt;/strong&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;x:String&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Run your BookApp and test if your book is working/showing and the cover image is visible on the first page.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Last step&lt;/strong&gt; is to change the content for the MainPage. Open the file &lt;strong&gt;MyBookApp -&amp;gt; ViewModels -&amp;gt; MainViewModel.cs&lt;/strong&gt; and change the following content: Change/Add/Remove as many &lt;strong&gt;Tiles&lt;/strong&gt; and &lt;strong&gt;Groups&lt;/strong&gt; you like, add images (310 x 150 pixels) to the folder &lt;strong&gt;MyBookApp -&amp;gt; Assets -&amp;gt; Books&lt;/strong&gt;. Every Tile has the following properties: &lt;strong&gt;Name&lt;/strong&gt;, &lt;strong&gt;LinkUrl&lt;/strong&gt; (if empty your book is shown), &lt;strong&gt;ImageUrl&lt;/strong&gt; and optional &lt;strong&gt;RowSpan&lt;/strong&gt; if you want bigger tiles.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;pre&gt;&lt;span class="kwrd"&gt;new&lt;/span&gt; Tile
{
    Name = &lt;span class="str"&gt;"&lt;strong&gt;Book 3&lt;/strong&gt;"&lt;/span&gt;,
    LinkUrl = &lt;span class="str"&gt;"&lt;strong&gt;http://microsoft.com/&lt;/strong&gt;"&lt;/span&gt;,
    ImageUrl = &lt;span class="str"&gt;"ms-appx:///Assets/Books/&lt;strong&gt;BookCover.png&lt;/strong&gt;"&lt;/span&gt;
},&lt;/pre&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h1&gt;Step 4 &amp;ndash; Customize your BookApp metadata&lt;/h1&gt;
&lt;p&gt;The final step before you can publish your new BookApp is to change the metadata, like the display name, the logo and the splash screen images. Open the file &lt;strong&gt;MyBookApp -&amp;gt; Package.appxmanifest&lt;/strong&gt; and change the &lt;strong&gt;Display Name&lt;/strong&gt;, &lt;strong&gt;Default language&lt;/strong&gt; (change this to the language of your book) and the images for the &lt;strong&gt;Logos&lt;/strong&gt; and &lt;strong&gt;splash screen&lt;/strong&gt;. Check if your BookApp don&amp;rsquo;t show any gray placeholder images any ware.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; creating and editing of images can be best don by an artist, or if you like by yourself. You can use the tool &lt;a href="http://www.getpaint.net/" target="_blank"&gt;Paint.net&lt;/a&gt; (free download) for image manipulation.&lt;/p&gt;
&lt;h1&gt;Step 5 &amp;ndash; Test your BookApp&lt;/h1&gt;
&lt;p&gt;Now that the customization is done, you&amp;rsquo;re ready to test the app in the simulator. It&amp;rsquo;s also the best moment to &lt;strong&gt;capture a screenshot&lt;/strong&gt;, which is required for the app submission.&lt;/p&gt;
&lt;p&gt;First rebuild your BookApp in &lt;strong&gt;Release&lt;/strong&gt; mode and start your book app in the simulator.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mybookapp.azurewebsites.net/images/Releasemode.png" alt="Release mode" /&gt;&lt;/p&gt;
&lt;p&gt;In the simulator test all the functionalities of your BookApp. Take one or more relevant screenshots using the &lt;strong&gt;camera button&lt;/strong&gt; on the simulator. These screenshots are stored in your Local User folder &lt;strong&gt;My Pictures -&amp;gt; Windows Simulator&lt;/strong&gt;.&lt;/p&gt;
&lt;h1&gt;Step 6 &amp;ndash; Submit your BookApp&lt;/h1&gt;
&lt;p&gt;&lt;strong&gt;Creating your BookApp Store Package:&lt;/strong&gt; Select from the Visual Studio menu &lt;strong&gt;Project -&amp;gt; Store -&amp;gt; Create App Packages...&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://mybookapp.azurewebsites.net/images/AppPackages.png" alt="AppPackages" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Make sure you are building your package in &lt;strong&gt;Release&lt;/strong&gt; mode, which is selectable on the toolbar in Visual Studio&lt;/p&gt;
&lt;p&gt;Upload your BookApp Store Package to the Windows Store, open and login at &lt;a href="http://dev.windows.com/" target="_blank"&gt;http://dev.windows.com/&lt;/a&gt; and click on &lt;strong&gt;Submit an app&lt;/strong&gt; and follow all the steps to submit your app.&lt;/p&gt;
&lt;h1&gt;Congratulations, you have just submitted your first application to the store.&lt;/h1&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Now, you have to wait up to 5 business days to receive feedback from the Windows Store team.&lt;/p&gt;
&lt;p&gt;Promotion is the key to success. You probably want to spread this news to rest of the world, you can create promotional videos, websites, Facebook tabs and banners.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10417296" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/Visual+Studio/">Visual Studio</category><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/epub/">epub</category><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/Windows+8/">Windows 8</category></item><item><title>Hoe voor Windows Phone te ontwikkelen voor niet-ontwikkelaars</title><link>http://blogs.msdn.com/b/cschotte/archive/2012/02/29/hoe-voor-windows-phone-te-ontwikkelen-voor-niet-ontwikkelaars.aspx</link><pubDate>Wed, 29 Feb 2012 09:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10274258</guid><dc:creator>Clemens Schotte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/cschotte/rsscomments.aspx?WeblogPostID=10274258</wfw:commentRss><comments>http://blogs.msdn.com/b/cschotte/archive/2012/02/29/hoe-voor-windows-phone-te-ontwikkelen-voor-niet-ontwikkelaars.aspx#comments</comments><description>&lt;p&gt;Binnen 4 weken 20.000 runs op je App? Leer hoe je als IT-Pro je eigen Windows Phone App kan bouwen, zonder developer ervaring in Visual Studio of dotNet! Het enige wat je nodig hebt is een Windows Phone device, TouchDevelop, en een Windows Live ID. Creativiteit is je enige limitatie om je eigen scripts te schrijven/runnen/delen/bespreken/reviewen met jouw users. Volledige toegang tot de Windows Phone sensors, media, web, cloud, storage, graphics en sociale netwerken&lt;/p&gt;
&lt;p&gt;&lt;iframe style="height: 242px; width: 478px;" src="http://channel9.msdn.com/Events/TechDays/Techdays-2012-the-Netherlands/9005/player?w=478&amp;amp;h=242" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10274258" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/Phone+7/">Phone 7</category><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/Touchdevelop/">Touchdevelop</category></item><item><title>GeekNight 2011 - How to develop a game for Phone 7, Xbox 360 and PC</title><link>http://blogs.msdn.com/b/cschotte/archive/2011/05/01/geeknight-2011-how-to-develop-a-game-for-phone-7-xbox-360-and-pc.aspx</link><pubDate>Sun, 01 May 2011 16:11:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10159831</guid><dc:creator>Clemens Schotte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/cschotte/rsscomments.aspx?WeblogPostID=10159831</wfw:commentRss><comments>http://blogs.msdn.com/b/cschotte/archive/2011/05/01/geeknight-2011-how-to-develop-a-game-for-phone-7-xbox-360-and-pc.aspx#comments</comments><description>&lt;div&gt;
&lt;p&gt;The slides and example source code of the session &amp;ldquo;How to develop a game for Phone 7, Xbox 360 and PC&amp;rdquo; at the GeekNight 2011 can be found at the end of this blog post. Unfortunately no video was recorded of my session. &lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Hoe ontwikkel je een game voor de Windows Phone 7 gebruikmakend van het XNA framework en hoe zorg je dat dat de marketing van je net ontwikkelde game bijdraagt aan het verwachte succes er van. In dit artikel gaan we verder in hoe je van een spelidee een succes kan maken met Windows Phone 7.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Om voor Windows Phone 7 software te ontwikkelen heb je de gratis tools nodig van Microsoft. Hierin vindt je onder andere Visual Studio 2010 Express (IDE), XNA Game Studio 4.0 en een Phone 7 Emulator. Wil je daarnaast ook je net ontwikkelde spel in de marktplaats van Windows Phone 7 zetten dan dien je hiervoor een abonnement te hebben bij App Hub van Microsoft. Ben je een DreamSpark student dan is dit abonnement zelfs gratis.&lt;/p&gt;
&lt;p&gt;Gameontwikkeling kent verschillende fases die doorlopen worden die anders zijn dan in de traditionele softwareontwikkeling. Het is te vergelijken met het maken van een bioscoopfilm die interactief is. Het begint allemaal met het verhaal, dat wil zeggen wat wil jij dat de speler ervaart. Dan moet je gaan bedenken hoe je dit kunt gaan realiseren en eventueel met wie. Denk hierbij of je de volgende punten zelf kunt uitvoeren of dat je iemand hiervoor nodig hebt; De grafische weergaven, game logica ontwikkeling, muziek, geluidseffecten en leveldesign.&lt;/p&gt;
&lt;p&gt;Welke technologie ga je gebruiken voor je spel, Silverlight of XNA? Windows Phone 7 kan namelijk beiden aan. Dit is sterk afhankelijk wat voor een spel je hebt bedacht. Er van uitgaande dat een spel grafisch veel eisend is de keuze voor XNA al snel gemaakt. Het scherm van een Windows Phone 7 toestel is 800 bij 480 punten (liggend), dat is best veel voor zo&amp;rsquo;n klein oppervlak. Tijdens het cre&amp;euml;ren van je grafische elementen op de computer merk je dat dit op een echt toestel een stuk kleiner uitvalt. Bekijk regelmatig hoe afbeeldingen op een Phone 7 toestel overkomen.&lt;/p&gt;
&lt;p&gt;Standaard zal een XNA game niet volledig scherm vullend zijn, er blijft een kleine rand over voor de statusbar van je Phone 7. Wil je gebruikmaken van het volledige scherm vergeet dan niet dit aan te zetten doormiddel van de volgende code: graphics.IsFullScreen = true;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Laten we voor dit artikel een spelconcept bedenken: &lt;i&gt;Een mijnwerker werkt in een mijn om kostbare edelstenen te delven. Hij gebruikt explosies om zich een weg door de mijn te banen, niet al het gesteente kan worden opgeblazen doordat dit te sterk is. De mijnwerker heeft echter een probleem, er zijn monsters in de mijn die zijn werk in de weg zitten.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-87/0451.1.png"&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-87/0451.1.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Figuur 1 - Een XNA Game op de Windows Phone 7 Emulator&lt;/p&gt;
&lt;p&gt;Dit betekend dat we een mijn (ondergrond), monsters, edelstenen, explosies en een mijnwerker nodig hebben in beeld en geluid. Daarnaast moeten we dit in code combineren tot een speelbaar spel. Laten we beginnen met de grafische afbeeldingen. Om het niet meteen te ingewikkeld te maken zal het spel 2D zijn. We gebruiken verschillende grafische lagen over elkaar heen voor de verschillende elementen; Laag 0 ondergrond (de mijn), laag 1 de stenen, laag 2 de monsters, etc. De grafische elementen gaan we met behulp van tegels op het scherm tekenen. Dit is te vergelijken met een moza&amp;iuml;ek, maar dan 6 lagen over elkaar heen. Als elke tegel 32 bij 32 pixels is kunnen we 25 bij 15 tegels tekenen op elk scherm (800/32 en 480/32). Om er voor te zorgen dat als die verschillende lagen over elkaar heen liggen we de onderste laag nog kunnen zien maken we gebruik van een Alpha kanaal dat per pixel de doorzichtigheid kan aangeven. Hierdoor ontstaand de mogelijkheid om te spelen met deze effecten, zoals het toevoegen van een schaduw bij een monter of een steen op de ondergrond. Zorg er voor dat je de afbeeldingen opslaat in het formaat PNG, aangezien hierbij het Alpha kanaal bewaard blijft. Per onderdeel maken we maar 1 afbeelding (texture) waarop de verschillende tegels geplaatsen, dus alle monsters staan op 1 texture die we opslaan als monderts.png en alle stenen op een andere texture die we opslaat als stones.png. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-87/4810.Desert.png"&gt;&lt;img height="320" width="290" src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-87/4810.Desert.png" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Figuur 2 &amp;ndash; Tegel set van de ondergrond (Desert map)&lt;/p&gt;
&lt;p&gt;Nu dat we de meeste grafische elementen hebben kunnen we ons gaan consenteren op de gamelogica. Hiervoor maken we gebruik van de XNA Game Studio. Jij bent verantwoordelijk voor alles wat je ziet en hoort in je game. Je tekent elk scherm 30 keer per seconde opnieuw, dit gebeurt in de wel bekende renderloop. Binnen de renderloop moet je weten in welke fase je game zich bevind, zodat je bij behoorde schermen kan tonen, zoals bevind de speler zich in het hoofdmenu of is hij de game aan het spelen.&lt;/p&gt;
&lt;div&gt;
&lt;div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; border: windowtext 1pt solid;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; color: blue; font-size: 9.5pt;"&gt;protected&lt;/span&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;override&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Draw(&lt;span style="color: #2b91af;"&gt;GameTime&lt;/span&gt; gameTime)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;switch&lt;/span&gt; (gameStatus)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;case&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;GameStatus&lt;/span&gt;.Menu:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;DrawMenu();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;case&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;GameStatus&lt;/span&gt;.Start:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;player = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Player&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;GameStart(player.levelId);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;case&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;GameStatus&lt;/span&gt;.Resume:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;GameResume();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;case&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;GameStatus&lt;/span&gt;.Playing:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;DrawPlaying();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;base&lt;/span&gt;.Draw(gameTime);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;p&gt;Er van uitgaande dat de game status in de speelstand staat tekenen we de 6 verschillende lagen over elkaar heen zodat het speelveld zichtbaar wordt. We kunnen niet onbeperkt doorgaan met lagen over elkaar heen te tekenen, je moet rekeninghouden dat dit alles binnen de tijd van 1 scherm (1s / 30frames = 0,033s) moet plaatsvinden. Om elke tegel uit de texture op de juiste positie te krijgen gebruiken we de volgende methode &lt;b&gt;BlitSprite()&lt;/b&gt;. &lt;/p&gt;
&lt;div&gt;
&lt;div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; border: windowtext 1pt solid;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; color: blue; font-size: 9.5pt;"&gt;void&lt;/span&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt; BlitSprite(&lt;span style="color: blue;"&gt;int&lt;/span&gt; x, &lt;span style="color: blue;"&gt;int&lt;/span&gt; y, &lt;span style="color: #2b91af;"&gt;Texture2D&lt;/span&gt; texture, &lt;span style="color: blue;"&gt;int&lt;/span&gt; index, &lt;span style="color: blue;"&gt;int&lt;/span&gt; pixels)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;int&lt;/span&gt; width = texture.Width / pixels;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;int&lt;/span&gt; xpos = (index % width) * pixels;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;int&lt;/span&gt; ypos = index &amp;gt; 0 ? (index / width) * pixels : 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;spriteBatch.Draw(texture, &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Vector2&lt;/span&gt;(x, y),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Rectangle&lt;/span&gt;(xpos, ypos, pixels, pixels), &lt;span style="color: #2b91af;"&gt;Color&lt;/span&gt;.White);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;p&gt;Als we &lt;b&gt;BlitSprite()&lt;/b&gt; combineren met &lt;b&gt;DrawMap()&lt;/b&gt; hebben we het complete speelveld.&lt;/p&gt;
&lt;div&gt;
&lt;div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; border: windowtext 1pt solid;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; color: blue; font-size: 9.5pt;"&gt;void&lt;/span&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt; DrawMap(&lt;span style="color: #2b91af;"&gt;Texture2D&lt;/span&gt; texture, &lt;span style="color: blue;"&gt;byte&lt;/span&gt;[,] items, &lt;span style="color: blue;"&gt;bool&lt;/span&gt; first)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;for&lt;/span&gt; (&lt;span style="color: blue;"&gt;int&lt;/span&gt; y = 0; y &amp;lt; map.height; y++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;for&lt;/span&gt; (&lt;span style="color: blue;"&gt;int&lt;/span&gt; x = 0; x &amp;lt; map.width; x++)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (items[x, y] != 0 || first)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;BlitSprite(x * pixels, y * pixels, texture, items[x, y], pixels);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;p&gt;Aangezien we voor de Windows Phone 7 ontwikkelen dienen we rekening te houden met verschillende events die kunnen optreden, zoals iemand die gebeld wordt tijdens het spelen van een spel. Je wilt dat je spel daarna weer netjes verder gaat. Hetzelfde geld als iemand op de Home knop drukt. We dienen dus alle parameters die nodig zijn om het spel verder te kunnen spelen snel te bewaren.&lt;/p&gt;
&lt;div&gt;
&lt;div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; border: windowtext 1pt solid;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; color: blue; font-size: 9.5pt;"&gt;private&lt;/span&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; InitializePhoneServices()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;PhoneApplicationService&lt;/span&gt;.Current.Activated += Current_Activated;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;PhoneApplicationService&lt;/span&gt;.Current.Deactivated += Current_Deactivated;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;PhoneApplicationService&lt;/span&gt;.Current.Closing += Current_Closing;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;PhoneApplicationService&lt;/span&gt;.Current.Launching += Current_Launching;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;p&gt;We hebben geen rechtstreekse toegang tot het bestandsysteem van Windows Phone 7 en moeten hiervoor gebruikmaken van IsolatedStorage. Dit heeft als voordeel dat er geen resten achterblijven als je spel wordt verwijderd, want het bijbehorende IsolatedStorage wordt dan ook verwijderd. Zodra we toegang hebben tot IsolatedStorage kunnen we gewoon schrijven en lezen van bestanden. Let op dat als je een verbeterde versie van je spel uitbrengt het bijbehorende IsolatedStorage bewaard blijft en dus ook moet werken met je nieuwe versie van je spel. Stel je gamestate.v1 moet uitgebreid worden voor versie 2 van je spel dan dien je de oude gamestate om te zetten naar gamestate.v2 zonder dat de speler daar iets van merkt. Het komt namelijk regelmatig voor dat ontwikkelaars dit vergeten, waardoor hun spel update niet door de certificering tests van Microsoft komt.&lt;/p&gt;
&lt;div&gt;
&lt;div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; border: windowtext 1pt solid;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; color: blue; font-size: 9.5pt;"&gt;using&lt;/span&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt; (&lt;span style="color: #2b91af;"&gt;IsolatedStorageFile&lt;/span&gt; isolatedStorageFile =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #2b91af;"&gt;IsolatedStorageFile&lt;/span&gt;.GetUserStoreForApplication())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// If user choose to save, create a new file&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;using&lt;/span&gt; (&lt;span style="color: #2b91af;"&gt;IsolatedStorageFileStream&lt;/span&gt; fileStream =&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;isolatedStorageFile.CreateFile(&lt;span style="color: #a31515;"&gt;&amp;quot;gamestate.v1&amp;quot;&lt;/span&gt;))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;using&lt;/span&gt; (&lt;span style="color: #2b91af;"&gt;StreamWriter&lt;/span&gt; streamWriter = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;StreamWriter&lt;/span&gt;(fileStream))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: green;"&gt;// Write date to the file&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;streamWriter.WriteLine(player.levelId);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;streamWriter.WriteLine(player.lives);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;streamWriter.Close();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;p&gt;Nu wordt het tijd dat wat we tekenen op het scherm ook laten bewegen. Je hebt op de Windows Phone 7 verschillende manieren om aan gebruikersinvoer te komen voor je spel. Simpel het scherm aanraken met 1 vinger (muis), meerdere vingers beweging (gesture) of de giroscoop sensor (Sensors). De enige gamepad functie die we kunnen gebruiken in de terug knop, dit is verder niet erg nuttig voor het spelen van het spel.&lt;/p&gt;
&lt;p&gt;Het uitlezen van gebruikersinvoer en het bijwerken van alle spel elementen (zoals de posities van de speler en de monsters) gebeurd in een aparte updateloop die &amp;lsquo;los&amp;rsquo; staat van de renderloop. Net zoals in de renderloop moeten we weten in welke game fase we ons bevinden. In onderstaande code is te zien hoe we een punt op het scherm dat binnen een driehoek wordt aangeraak omzetten naar een bepaalde beweging (moveAction) voor de mijnwerker op het scherm. &lt;/p&gt;
&lt;div&gt;
&lt;div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; border: windowtext 1pt solid;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; color: #2b91af; font-size: 9.5pt;"&gt;MouseState&lt;/span&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt; ms = &lt;span style="color: #2b91af;"&gt;Mouse&lt;/span&gt;.GetState();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; color: blue; font-size: 9.5pt;"&gt;if&lt;/span&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt; (ms.LeftButton == &lt;span style="color: #2b91af;"&gt;ButtonState&lt;/span&gt;.Pressed)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (isPointInsideTriangle(&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Vector2&lt;/span&gt;(640, 320),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Vector2&lt;/span&gt;(720, 400),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Vector2&lt;/span&gt;(640, 480),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Vector2&lt;/span&gt;(ms.X, ms.Y))) moveAction = &lt;span style="color: #2b91af;"&gt;Keys&lt;/span&gt;.Left;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;p&gt;Nu we weten welke kant de mijnwerken op moet, moeten we gaan controleren of dat wel kan; loopt de mijnwerker niet van het speelveld af? Loopt de mijnwerker niet op water (tegels onder 25 zijn grond, daarboven water)? Liggen er geen stenen of een bom in de weg? Dan pas kan de mijnwerker echt gaan bewegen. We geven de mijnwerker een snelheid van 2 pixels per frame, dat komt er op neer dat het iets meer dan 1 seconde nodig hebben om de mijnwerker op het volgende tegeltje te krijgen, hierna kan de mijnwerker pas weer een andere kant op.&lt;/p&gt;
&lt;div&gt;
&lt;div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; border: windowtext 1pt solid;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; color: blue; font-size: 9.5pt;"&gt;switch&lt;/span&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt; (moveAction)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;case&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;Keys&lt;/span&gt;.Down:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; ((player.y / pixels &amp;lt; map.height -1) &amp;amp;&amp;amp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;(map.background[(player.x / pixels), (player.y / pixels) + 1] &amp;lt; 25) &amp;amp;&amp;amp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;(map.stone[(player.x / pixels), (player.y / pixels) + 1] &amp;lt; 5) &amp;amp;&amp;amp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;(map.bomb[(player.x / pixels), (player.y / pixels) + 1] == 0))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;player.id = 1;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;player.ymov = 2;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;break&lt;/span&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;p&gt;Dit zelfde mechanisme kunnen we ook gebruiken voor elk monster. Echter daar bepaald de computer welke kant de monsters op moeten gaan. Je kunt hiervoor een heel ingewikkeld en slim algoritme verzinnen of de monsters gewoon een willekeurige kant opsturen. Ons &amp;lsquo;slimme&amp;rsquo; Artificial intelligence (AI) algoritme ziet er als volgt uit: &lt;span lang="NL" style="line-height: 115%; font-family: Consolas; color: blue; font-size: 9.5pt; mso-ansi-language: NL; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"&gt;int&lt;/span&gt;&lt;span lang="NL" style="line-height: 115%; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: NL; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-fareast-language: EN-US; mso-bidi-language: AR-SA;"&gt; direction = random.Next() % 4;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Nu bewegen de monsters en de mijnwerker over het veld, maar kunnen ze elkaar nog niet vernietigen. We moeten dus gaan controleren of ze elkaar aanraken.&lt;/p&gt;
&lt;div&gt;
&lt;div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; border: windowtext 1pt solid;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; color: blue; font-size: 9.5pt;"&gt;void&lt;/span&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt; CheckEnemyHit()&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;foreach&lt;/span&gt; (&lt;span style="color: #2b91af;"&gt;Enemy&lt;/span&gt; enemy &lt;span style="color: blue;"&gt;in&lt;/span&gt; enemys)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (enemy.x == player.x &amp;amp;&amp;amp; enemy.y == player.y)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;player.energy -= 2;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (player.energy &amp;lt; 0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;player.energy = 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;p&gt;Het oppakken van items door de mijnwerker, om bijvoorbeeld extra energie te krijgen, is door te bepalen of de positie van de mijnwerker op dezelfde tegel valt als waar de power-up staat. &lt;/p&gt;
&lt;div&gt;
&lt;div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; border: windowtext 1pt solid;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; color: green; font-size: 9.5pt;"&gt;// power&lt;/span&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; color: blue; font-size: 9.5pt;"&gt;if&lt;/span&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt; (map.stone[player.x / pixels, player.y / pixels] == 1)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;itemSound.Play();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;map.stone[player.x / pixels, player.y / pixels] = 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: blue;"&gt;if&lt;/span&gt; (++player.power &amp;gt; 4) player.power = 4;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;player.points += 50;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;p&gt;Uiteindelijk is je spel klaar, wat nu? Binnen Windows Phone 7 is de enige manier om software te installeren via de Phone 7 marktplaats. Heb je al bedacht wat je spel mag kosten of wordt het gratis? Wat doen andere spelen in jouw categorie? Maak je spel niet te duur, maar ook zeker niet te goedkoop. Als het te goedkoop is zullen mensen denken dat het niet veel voorstelt. Gratis games doen het altijd goed, dus een betaalde game dient (om succes vol te worden) een probeermode te hebben, bijvoorbeeld je kunt alleen de eerste 5 niveaus gratis spelen. &lt;b&gt;Tip 1&lt;/b&gt;: bouw een probeermode in je spel.&lt;/p&gt;
&lt;div&gt;
&lt;div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; border: windowtext 1pt solid;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; color: #2b91af; font-size: 9.5pt;"&gt;LicenseInformation&lt;/span&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt; license = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;LicenseInformation&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;isTrial = license.IsTrial();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&amp;nbsp;&lt;/div&gt;
&lt;p&gt;Leuk zo&amp;rsquo;n probeermode, maar hoe gaan spelers dan mijn spel kopen? Hiervoor dienen drie zaken in de juiste belans te zijn; 1. Het spel is niet te duur, zeg 99 cent. Dat is goedkoper dan een bakje koffie en geeft je langer plezier. 2. De speler kan makkelijk van de probeermode naar de volledige versie van je spel gaan. 3. In je probeermode heb je de speler genoeg weten te boeien om te gaan kopen en niet te veel weg hebt gegeven dat hij het niet meer hoeft te kopen. Het mooie van Windows Phone 7 is dat je maar 1 spel hoeft te bouwen, dus geen aparte probeer versie.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Tip 2&lt;/b&gt;: Zorg dat een speler makkelijk vanuit je probeermode de volledige versie kan kopen.&lt;/p&gt;
&lt;div&gt;
&lt;div style="padding-bottom: 1pt; padding-left: 4pt; padding-right: 4pt; padding-top: 1pt; mso-element: para-border-div; mso-border-alt: solid windowtext .5pt; border: windowtext 1pt solid;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; color: #2b91af; font-size: 9.5pt;"&gt;MarketplaceDetailTask&lt;/span&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt; marketplace = &lt;span style="color: blue;"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;MarketplaceDetailTask&lt;/span&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span lang="NL" style="font-family: Consolas; font-size: 9.5pt;"&gt;marketplace.Show();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Op je spel op de marktplaats verder onder de aandacht te brengen, dien je het spel van een pakkende maar bondige intro tekst te voorzien. Mensen lezen niet graag. Een opvallend icoon en schermafdrukken vanuit verschillende tijdstippen in je game moeten genoeg interesse wekken om in ieder geval de probeermode van je spel te downloaden. &lt;b&gt;Tip 3&lt;/b&gt;: Zorg er voor dat spelers vanuit je spel direct jouw spel kunnen beoordelen in de marktplaats. Hoe meer positieve reacties, uitgedrukt in sterretjes op de marktplaats, zullen andere spelers sneller doen overhalen. &lt;/p&gt;
&lt;p&gt;Nu staat je spel in de Windows Phone 7 marktplaats. Je hebt een probeer versie, is niet te duur en je hebt pakkende afbeeldingen en teksten. Hoe weet je dan dat het goed gaat met de verkoop of juist slecht? Moet toch een andere prijs voeren, etc. Gelukkig kun je op de App Hub de voortgang van je spel volgen.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Tip 4&lt;/b&gt;: Maak naast reclame in de Phone 7 marktplaats ook reclame voor je spel op andere media, zoals facebook en twitter. &lt;/p&gt;
&lt;p&gt;Of je nu een zelfstandig ontwikkelaar bent of een gamestudio, iedereen kan met het juiste idee een succesvol spel ontwikkelen voor Windows Phone 7. Je hebt je alleen de juiste ingredi&amp;euml;nten nodig en de passie om het tot een succes te maken. Laat je niet belemmeren door je eigen fantasie. Veel plezier in het bedenken en ontwikkelen van je nieuwe spel.&lt;/p&gt;
&lt;p&gt;Wil je het spel CaveRace, wat we in dit artikel hebben gebruikt als voorbeeld, spelen? Probeer CaveRace voor Windows Phone 7 gratis uit op de volgende link: &lt;a href="http://bit.ly/bWPRvS"&gt;http://bit.ly/bWPRvS&lt;/a&gt;&lt;/p&gt;
&lt;div class="mcePaste" id="_mcePaste" style="position: absolute; width: 1px; height: 1px; overflow: hidden; top: 0px; left: -10000px;"&gt;﻿&lt;/div&gt;
&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-87/6521.geeknight.jpg"&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-84-87/6521.geeknight.jpg" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;GeekNight 2011 PowerPoint &lt;a href="http://docs.com/BT8Q"&gt;http://docs.com/BT8Q&lt;/a&gt; &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10159831" width="1" height="1"&gt;</description><enclosure url="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-15-98-31/MyGameDemo.zip" length="220287" type="application/x-zip-compressed" /><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/Phone+7/">Phone 7</category><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/XNA/">XNA</category></item><item><title>CaveRace for Windows Phone 7</title><link>http://blogs.msdn.com/b/cschotte/archive/2010/11/09/caverace-for-windows-phone-7.aspx</link><pubDate>Tue, 09 Nov 2010 10:27:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10088085</guid><dc:creator>Clemens Schotte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/cschotte/rsscomments.aspx?WeblogPostID=10088085</wfw:commentRss><comments>http://blogs.msdn.com/b/cschotte/archive/2010/11/09/caverace-for-windows-phone-7.aspx#comments</comments><description>&lt;table border="0"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/173x173/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-87/6557.CaveRace-Logo.jpg" border="0" style="float: left;" /&gt;&lt;/td&gt;
&lt;td align="left" valign="top"&gt;
&lt;p&gt;&lt;strong&gt;Boooooom!&lt;/strong&gt; It&amp;rsquo;s the sound of a big explosion. Now that&amp;rsquo;s how you kill a monster! While collecting precious stones, you need to defeat the monsters in the Forest, Desert, Winter and Lava levels. Clear a path by blowing the lighter colored stones. Darker stones are too dense to blow up. Be careful not to blow-up your treasure or power-up&amp;rsquo;s. More than 25 beautiful levels specially designed for the Windows Phone 7. Drag your finger up, down, left or right to move. Double tap to drop a bomb. Have fun playing CaveRace.&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://bit.ly/bWPRvS" title="Free trial Download"&gt;&lt;strong&gt;Free trial Download&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/400x240/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-87/0726.CaveRace-Desert.jpg" border="0" /&gt; &lt;/p&gt;
&lt;p&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/400x240/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-87/0741.CaveRace-Forest.jpg" border="0" /&gt; &lt;/p&gt;
&lt;p&gt;&lt;img src="http://blogs.msdn.com/resized-image.ashx/__size/400x240/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-87/6567.CaveRace-Winter.jpg" border="0" /&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10088085" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/Phone+7/">Phone 7</category></item><item><title>Receive Windows Web Server and SQL Server Web Edition at no cost to host new websites</title><link>http://blogs.msdn.com/b/cschotte/archive/2009/09/26/receive-windows-web-server-and-sql-server-web-edition-at-no-cost-to-host-new-websites.aspx</link><pubDate>Sat, 26 Sep 2009 14:47:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9899845</guid><dc:creator>Clemens Schotte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/cschotte/rsscomments.aspx?WeblogPostID=9899845</wfw:commentRss><comments>http://blogs.msdn.com/b/cschotte/archive/2009/09/26/receive-windows-web-server-and-sql-server-web-edition-at-no-cost-to-host-new-websites.aspx#comments</comments><description>&lt;P&gt;&lt;A href="http://www.microsoft.com/web/websitespark/" target=_blank mce_href="http://www.microsoft.com/web/websitespark/"&gt;WebsiteSpark&lt;/A&gt; is a new global program, designed by Microsoft to help small professional Web development and design service companies succeed, by providing new business opportunities through connections with global partners and customers, support and training, and software tools – at no upfront cost. WebsiteSpark provides professional Web development and design companies with an innovative vehicle to get access to:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Business Opportunities: Opportunities to expand their customer base and drive new business, by showcasing their capabilities and connecting with partners via the WebsiteSpark Marketplace and other Microsoft marketing and business networking vehicles.&lt;/LI&gt;
&lt;LI&gt;Support and training: Professional support from Microsoft and connections with WebsiteSpark Network Partners, Hosting Partners, and other Web developers and designers with complementary technologies or business models—an entire ecosystem that can provide a wide range of technical and business resources for every Web professional need.&lt;/LI&gt;
&lt;LI&gt;Software and solutions: Fast, easy, and immediate access to current full-featured Microsoft development tools and Web server production licenses at no upfront cost, to build, design and bring to market differentiated, innovative, and rich Internet sites.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Read more about &lt;A href="http://www.microsoft.com/web/websitespark/" target=_blank mce_href="http://www.microsoft.com/web/websitespark/"&gt;WebsiteSpark&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9899845" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/Web/">Web</category></item><item><title>Native VHD boot</title><link>http://blogs.msdn.com/b/cschotte/archive/2009/09/11/native-vhd-boot.aspx</link><pubDate>Fri, 11 Sep 2009 15:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9894155</guid><dc:creator>Clemens Schotte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/cschotte/rsscomments.aspx?WeblogPostID=9894155</wfw:commentRss><comments>http://blogs.msdn.com/b/cschotte/archive/2009/09/11/native-vhd-boot.aspx#comments</comments><description>&lt;P&gt;Native VHD boot enables a physical machine to be booted directly from a virtual hard disk (VHD) with no requirement for virtualization software (such as Microsoft Virtual PC or Hyper-V). Native VHD boot is made possible with the addition of a new mini-port driver within the Windows 7 operating system which is responsible for all IO operations to and from the disk. Earlier versions of the Windows operating system such as Windows Vista, Windows XP and Windows 2000 do not support Native VHD boot and therefore cannot be used to provide the capabilities described within this document.&lt;/P&gt;
&lt;P&gt;With the introduction of native VHD boot, it is now possible to achieve a single image deployment strategy for physical and virtual machines alike. As long as the operating system that resides on the VHD is generalized and hosts either Windows 7 Enterprise, Windows 7 Ultimate or Windows Server 2008 R2 (all versions), it can be used in both environments.&lt;/P&gt;
&lt;P&gt;See the blog post from my colleague, &lt;A href="http://blogs.technet.com/michw/default.aspx" target=_blank mce_href="http://blogs.technet.com/michw/default.aspx"&gt;Michael Waterman&lt;/A&gt; for the complete &lt;A href="http://blogs.technet.com/michw/archive/2009/08/01/windows-native-vhd-boot-deployment-scenarios.aspx" target=_blank mce_href="http://blogs.technet.com/michw/archive/2009/08/01/windows-native-vhd-boot-deployment-scenarios.aspx"&gt;Windows Native VHD Boot Deployment Scenarios&lt;/A&gt; Guide.&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9894155" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/VHD/">VHD</category><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/Windows+7/">Windows 7</category></item><item><title>VHD mounting under Windows 7</title><link>http://blogs.msdn.com/b/cschotte/archive/2009/03/09/vhd-mounting-under-windows-7.aspx</link><pubDate>Mon, 09 Mar 2009 17:21:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9467793</guid><dc:creator>Clemens Schotte</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/cschotte/rsscomments.aspx?WeblogPostID=9467793</wfw:commentRss><comments>http://blogs.msdn.com/b/cschotte/archive/2009/03/09/vhd-mounting-under-windows-7.aspx#comments</comments><description>&lt;P&gt;Windows 7 has native support for VHD mounting (and booting). In my &lt;A title="VHD Mounting" href="http://blogs.msdn.com/cschotte/archive/2008/03/26/how-to-mount-a-vhd-quickly-under-vista-using-your-mouse.aspx" mce_href="http://blogs.msdn.com/cschotte/archive/2008/03/26/how-to-mount-a-vhd-quickly-under-vista-using-your-mouse.aspx"&gt;earlier blog&lt;/A&gt; post about VHD mounting under Vista you needed &lt;STRONG&gt;vhdmout.exe&lt;/STRONG&gt; from Virtual Server. In Windows 7 you can use &lt;STRONG&gt;Disk Management&lt;/STRONG&gt; and/or &lt;STRONG&gt;diskpart &lt;/STRONG&gt;to mount VHD’s native!&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 538px; HEIGHT: 296px" title="Disk Management" alt="Disk Management" src="http://blogs.msdn.com/photos/cschotte/images/9467803/original.aspx" width=538 height=296 mce_src="http://blogs.msdn.com/photos/cschotte/images/9467803/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;You can also mount a VHD file in scripts using &lt;STRONG&gt;diskpart&lt;/STRONG&gt;. Create a text file with this content:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;SELECT VDISK FILE=”some&amp;nbsp; vhd file”&lt;BR&gt;ATTACH VDISK&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;To attach the VHD image in a script, you have to use “diskpart -s &lt;STRONG&gt;textfile&lt;/STRONG&gt;”&lt;BR&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9467793" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/VHD/">VHD</category><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/Windows+7/">Windows 7</category></item><item><title>Shake that window in Windows 7</title><link>http://blogs.msdn.com/b/cschotte/archive/2009/01/08/shake-that-window-in-windows-7.aspx</link><pubDate>Thu, 08 Jan 2009 17:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9297853</guid><dc:creator>Clemens Schotte</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/cschotte/rsscomments.aspx?WeblogPostID=9297853</wfw:commentRss><comments>http://blogs.msdn.com/b/cschotte/archive/2009/01/08/shake-that-window-in-windows-7.aspx#comments</comments><description>&lt;P&gt;Windows 7 is smart about windows. Dragging a window to the top of the computer screen maximizes it automatically. Dragging a window to the left or right side of the screen resizes it for side-by-side comparisons to other windows. And moving the mouse to the lower-right corner of the screen makes all&amp;nbsp;open windows transparent. If you shake a window all other windows will minimize, shake the window again and all minimized windows will be visible again.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 395px; HEIGHT: 605px" title="Windows in Windows 7" alt="Windows in Windows 7" src="http://blogs.msdn.com/photos/cschotte/images/9297879/original.aspx" width=395 height=605 mce_src="http://blogs.msdn.com/photos/cschotte/images/9297879/original.aspx"&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9297853" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/Windows+7/">Windows 7</category></item><item><title>How to mount a VHD under Vista by double clicking</title><link>http://blogs.msdn.com/b/cschotte/archive/2008/03/26/how-to-mount-a-vhd-quickly-under-vista-using-your-mouse.aspx</link><pubDate>Wed, 26 Mar 2008 17:51:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8337865</guid><dc:creator>Clemens Schotte</dc:creator><slash:comments>22</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/cschotte/rsscomments.aspx?WeblogPostID=8337865</wfw:commentRss><comments>http://blogs.msdn.com/b/cschotte/archive/2008/03/26/how-to-mount-a-vhd-quickly-under-vista-using-your-mouse.aspx#comments</comments><description>&lt;P&gt;[&lt;A title="VHD mounting in Windows 7" href="http://blogs.msdn.com/cschotte/archive/2009/03/09/vhd-mounting-under-windows-7.aspx" mce_href="http://blogs.msdn.com/cschotte/archive/2009/03/09/vhd-mounting-under-windows-7.aspx"&gt;for Windows 7 read this post&lt;/A&gt;]&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In my daily work I use a lot of Virtual PC images (VHD) so my host Vista system will stay clean of beta and test software. To get to the files I stored inside a Virtual PC images I normally start the Virtual PC and drag and drop them to my host system. This can be more efficient using the command line tool VHDMount. You mount the VHD and can read and write the files like a normal hard disk in your host system. By importing a small registry file you don’t need the command line anymore and can mount and unmount (dismount) the VHD.&lt;/P&gt;
&lt;P&gt;&lt;IMG style="WIDTH: 322px; HEIGHT: 130px" title="VHD Mount" alt="VHD Mount" src="http://blogs.msdn.com/photos/cschotte/images/8337850/original.aspx" width=322 height=130 mce_src="http://blogs.msdn.com/photos/cschotte/images/8337850/original.aspx"&gt;&lt;/P&gt;
&lt;P&gt;This is what you need to do to mount a VHD inside Vista by double clicking.&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft Virtual PC&lt;/STRONG&gt;&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;Download "Microsoft Virtual PC 2007" from the following link:&lt;BR&gt;&lt;A href="http://www.microsoft.com/windows/downloads/virtualpc/default.mspx" mce_href="http://www.microsoft.com/windows/downloads/virtualpc/default.mspx"&gt;http://www.microsoft.com/windows/downloads/virtualpc/default.mspx&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Install "Microsoft Virtual PC 2007" normally by double clicking.&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Microsoft VHD Mount&lt;/STRONG&gt;&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;VHD Mount is part of "Microsoft Virtual Server 2005 R2 SP1".&lt;/LI&gt;
&lt;LI&gt;Download "Microsoft Virtual Server 2005 R2 SP1 - Enterprise Edition" from the following link:&lt;BR&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=bc49c7c8-4840-4e67-8dc4-1e6e218acce4&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?familyid=bc49c7c8-4840-4e67-8dc4-1e6e218acce4&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=bc49c7c8-4840-4e67-8dc4-1e6e218acce4&amp;amp;displaylang=en&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Install (using the custom setup option) only the VHD Mount tool.&lt;/LI&gt;&lt;/OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Double clicking VHD integration in Vista&lt;/STRONG&gt;&lt;/LI&gt;
&lt;OL&gt;
&lt;LI&gt;Create a text file and rename it to &lt;EM&gt;vhdmount.reg&lt;/EM&gt;.&lt;/LI&gt;
&lt;LI&gt;Edit the &lt;EM&gt;vhdmount.reg&lt;/EM&gt; file and add the following lines:&lt;BR&gt;&lt;BR&gt;&lt;CODE&gt;Windows Registry Editor Version 5.00&lt;BR&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD]&lt;BR&gt;&lt;BR&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell]&lt;BR&gt;@="Mount"&lt;BR&gt;&lt;BR&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Dismount]&lt;BR&gt;&lt;BR&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Dismount\command]&lt;BR&gt;@="\"C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\" /u /c&amp;nbsp;\"%1\""&lt;BR&gt;&lt;BR&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Mount]&lt;BR&gt;&lt;BR&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Virtual.Machine.HD\shell\Mount\command]&lt;BR&gt;@="\"C:\\Program Files\\Microsoft Virtual Server\\Vhdmount\\vhdmount.exe\" /p \"%1\""&lt;BR&gt;&lt;BR&gt;[HKEY_CLASSES_ROOT\.vhd]&lt;BR&gt;@="Virtual.Machine.HD"&lt;BR&gt;&lt;/CODE&gt;&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;Run the &lt;EM&gt;vhdmount.reg&lt;/EM&gt; file.&lt;/LI&gt;&lt;/OL&gt;&lt;/OL&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8337865" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/Vista/">Vista</category><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/Virtual+PC/">Virtual PC</category><category domain="http://blogs.msdn.com/b/cschotte/archive/tags/VHD/">VHD</category></item></channel></rss>