﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Andy's Blog</title>
    <description>Adventures in .NET </description>
    <link>http://andybeaulieu.com/Home/tabid/67/BlogId/2/Default.aspx</link>
    <language>en-US</language>
    <managingEditor>andy@andybeaulieu.com</managingEditor>
    <webMaster>andy@beaulieu.com</webMaster>
    <pubDate>Wed, 08 Sep 2010 10:16:25 GMT</pubDate>
    <lastBuildDate>Wed, 08 Sep 2010 10:16:25 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 3.1.20.17153</generator>
    <item>
      <title>DroppyPop for WP7 Update</title>
      <description>&lt;P&gt;Yes it's a little early to be thinking about the Holidays, but with the final release of the &lt;A href="http://www.engadget.com/2010/08/23/windows-phone-7-dev-tools-go-gold-september-16-%20marketplace-taki/"&gt;Windows Phone 7 tools imminent&lt;/A&gt;, we can bet that shiny new WP7 devices will be in many stockings this year. My hobby hours have been consumed with getting a couple of games ready for launch, and I was able to get a loaner LG prototype for a week which provided a great sanity check. I can tell you that the emulator is really a fantastic representation of the final device, the only caveats being performance and feel of the accelerometer input (one thing I caught immediately was that I had reversed one of the Accelerometer Axes in my code!). &lt;/P&gt;
&lt;P&gt;As I &lt;A href="http://andybeaulieu.com/Home/tabid/67/EntryID/199/Default.aspx"&gt;mentioned before&lt;/A&gt;, I am creating both a Web and WP7 version of DroppyPop, which is great because it allows people to test the game and give feedback before the release of WP7. I'd like to thank everyone for all of the feedback so far - I have incorporated many of your ideas and fixes! &lt;/P&gt;
&lt;H1&gt;DroppyPop Update&lt;/H1&gt;
&lt;P&gt;Today I released an &lt;A href="http://www.spritehand.com/silverlight/3.0/droppypop/droppypop.htm"&gt;update to DroppyPop&lt;/A&gt;, which for a limited time unlocks all rag dolls and power-ups! (The final release will have a Trial version which will only unlock one rag doll and disable all power-ups). There is also new game play and new power-ups to look out for in this version.&lt;/P&gt;
&lt;P&gt;If you have a few moments of casual gaming time, then please &lt;A href="http://www.spritehand.com/silverlight/3.0/droppypop/droppypop.htm"&gt;give this new version a try &lt;/A&gt;- I look forward to your feedback.&lt;/P&gt;
&lt;P&gt;If you find a bug or have an idea, please let me know by either:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Adding a comment to this blog post 
&lt;LI&gt;Using the "Feedback/Bugs" link inside the Game, under Options.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;
&lt;TABLE cellPadding=10&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;
&lt;OBJECT width=425 height=344&gt;&lt;PARAM NAME="movie" VALUE="http://www.youtube.com/v/eeoNhOaqEUw&amp;hl=en&amp;fs=1"&gt;&lt;PARAM NAME="allowFullScreen" VALUE="true"&gt;&lt;PARAM NAME="allowscriptaccess" VALUE="always"&gt;
&lt;embed src="http://www.youtube.com/v/eeoNhOaqEUw&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/OBJECT&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;IMG style="FLOAT: right" src="http://andybeaulieu.com/silverlight/winphone/santapresent.png"&gt;&lt;BR&gt;&lt;I&gt;Mrs. Claus, one of the new rag dolls in DroppyPop&lt;/I&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.spritehand.com/silverlight/3.0/droppypop/droppypop.htm"&gt;&lt;IMG border=0 src="http://andybeaulieu.com/Portals/1/DroppyPopClaus.png"&gt;&lt;/A&gt; &lt;A href="http://www.spritehand.com/silverlight/3.0/droppypop/droppypop.htm"&gt;&lt;IMG border=0 src="http://andybeaulieu.com/Portals/1/DroppyPopClausStars.png"&gt;&lt;/A&gt; &lt;A href="http://www.spritehand.com/silverlight/3.0/droppypop/droppypop.htm"&gt;&lt;IMG border=0 src="http://andybeaulieu.com/Portals/1/DroppyPopGameOver.png"&gt;&lt;/A&gt;&lt;/P&gt;</description>
      <link>http://andybeaulieu.com/Home/tabid/67/EntryID/204/Default.aspx</link>
      <author>andy@andybeaulieu.com</author>
      <comments>http://andybeaulieu.com/Home/tabid/67/EntryID/204/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://andybeaulieu.com/Default.aspx?tabid=67&amp;EntryID=204</guid>
      <pubDate>Fri, 27 Aug 2010 03:15:00 GMT</pubDate>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://andybeaulieu.com/DesktopModules/Blog/Trackback.aspx?id=204</trackback:ping>
    </item>
    <item>
      <title>Boss Launch 2: Zombie Attack for WP7</title>
      <description>&lt;P&gt;&lt;BR&gt;Here is a sneak peak of another little project I'm working on for Windows Phone 7, in addition to &lt;A HREF="http://andybeaulieu.comhttp://andybeaulieu.com/Home/tabid/67/EntryID/199/Default.aspx"&gt;DroppyPop&lt;/A&gt;:&lt;/P&gt;
&lt;P&gt;
&lt;OBJECT width=640 height=385&gt;&lt;PARAM NAME="movie" VALUE="http://www.youtube.com/v/Cy7n7pYaoqw&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;PARAM NAME="allowFullScreen" VALUE="true"&gt;&lt;PARAM NAME="allowscriptaccess" VALUE="always"&gt;
&lt;embed src="http://www.youtube.com/v/Cy7n7pYaoqw&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/OBJECT&gt;&lt;/P&gt;
&lt;P&gt;This is the much-awaited sequel to &lt;A href="http://www.spritehand.com/silverlight/2.0/BossLaunch/BossLaunch.htm"&gt;Boss Launch&lt;/A&gt;, titled "&lt;STRONG&gt;Boss Launch 2: Zombie Attack&lt;/STRONG&gt;" - in which you use your (normally useless) boss to take out a Zombie horde as you progress through many challenging levels. Things get interesting when you interact with vehicles (such as jumping into the back of a truck).&lt;/P&gt;
&lt;P&gt;Unfortunately, I have no idea how this game performs on an actual device, so I may have to trim back some of the effects and number of objects in the end.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Yes, like &lt;/STRONG&gt;&lt;A href="http://www.manyniches.com/windows-phone/windows-phone-7-device-requests/"&gt;&lt;STRONG&gt;so many other developers&lt;/STRONG&gt;&lt;/A&gt;&lt;STRONG&gt;, I could really use a Windows Phone 7 device to test performance on!&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Interested in game development for Windows Phone 7 using Silverlight? Check out these other posts:&lt;/P&gt;
&lt;P&gt;&lt;A HREF="http://andybeaulieu.com/Home/tabid/67/EntryID/202/Default.aspx"&gt;Coding4Fun: Shuffleboard Game for WP7&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A HREF="http://andybeaulieu.comhttp://andybeaulieu.com/Home/tabid/67/EntryID/199/Default.aspx"&gt;Droppy Pop: A Windows Phone 7 Game&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A HREF="http://andybeaulieu.com/Home/tabid/67/EntryID/201/Default.aspx"&gt;WP7 Back Button in Games&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A HREF="http://andybeaulieu.com/Home/tabid/67/EntryID/196/Default.aspx"&gt;WP7 + Silverlight Performance&lt;/A&gt;&lt;/P&gt;</description>
      <link>http://andybeaulieu.com/Home/tabid/67/EntryID/203/Default.aspx</link>
      <author>andy@andybeaulieu.com</author>
      <comments>http://andybeaulieu.com/Home/tabid/67/EntryID/203/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://andybeaulieu.com/Default.aspx?tabid=67&amp;EntryID=203</guid>
      <pubDate>Fri, 18 Jun 2010 18:40:00 GMT</pubDate>
      <slash:comments>3</slash:comments>
      <trackback:ping>http://andybeaulieu.com/DesktopModules/Blog/Trackback.aspx?id=203</trackback:ping>
    </item>
    <item>
      <title>Coding4Fun: Shuffleboard Game for WP7</title>
      <description>&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;&lt;/FONT&gt;&lt;/STRONG&gt; &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT color=#ff0000&gt;UPDATE 7/14/2010: The source code has been updated for Windows Phone 7 Beta Tools (July 2010)&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;DIV style="FLOAT: right"&gt;&lt;A href="http://andybeaulieu.comhttp://andybeaulieu.com/silverlight/winphone/shuffleboard/shuffleboardtestpage.html"&gt;&lt;IMG border=0 src="http://andybeaulieu.com/silverlight/winphone/shuffleboard/shuffleboard.png"&gt;&lt;/A&gt; &lt;/DIV&gt;
&lt;P&gt;My Coding4Fun article "&lt;A href="http://blogs.msdn.com/b/coding4fun/archive/2010/06/15/10025512.aspx"&gt;Creating a Shuffleboard Game in Silverlight for Windows Phone&lt;/A&gt;" has been posted! &lt;/P&gt;
&lt;P&gt;[&lt;A href="http://blogs.msdn.com/b/coding4fun/archive/2010/06/15/10025512.aspx"&gt;VIEW TUTORIAL&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;[&lt;A href="http://andybeaulieu.comhttp://andybeaulieu.com/silverlight/winphone/shuffleboard/shuffleboardtestpage.html"&gt;TRY THE GAME&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;[&lt;A href="http://shuffleboard.codeplex.com/releases"&gt;DOWNLOAD SOURCE&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;This tutorial includes a video walkthrough showing step-by-step creation using Visual Studio 2010 and Expression Blend 4. You'll learn about Physics Behaviors, Perspective Transforms, Gestures, and Multitargeting among other things.&lt;/P&gt;
&lt;P&gt;Below are links to the videos for a quick reference:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://ecn.channel9.msdn.com/o9/ch9/8/9/1/6/5/5/ShuffleboardPart1_2MB_ch9.wmv"&gt;Part 1&lt;/A&gt;: Getting Started&lt;/P&gt;
&lt;P&gt;&lt;A href="http://ecn.channel9.msdn.com/o9/ch9/9/9/1/6/5/5/ShuffleboardPart2_2MB_ch9.wmv"&gt;Part 2&lt;/A&gt;: Designing the Table&lt;/P&gt;
&lt;P&gt;&lt;A href="http://ecn.channel9.msdn.com/o9/ch9/1/0/2/6/5/5/ShuffleboardPart3_2MB_ch9.wmv"&gt;Part 3&lt;/A&gt;: Player Turns and Table Rotation&lt;/P&gt;
&lt;P&gt;&lt;A href="http://ecn.channel9.msdn.com/o9/ch9/5/0/2/6/5/5/ShuffleboardPart4_2MB_ch9.wmv"&gt;Part 4&lt;/A&gt;: The Game Loop + Targeting Windows Phone 7&lt;/P&gt;
&lt;P&gt;&lt;A href="http://ecn.channel9.msdn.com/o9/ch9/9/0/2/6/5/5/ShuffleboardPart5_2MB_ch9.wmv"&gt;Part 5&lt;/A&gt;: Sound Support&lt;/P&gt;
&lt;P&gt;&lt;A href="http://ecn.channel9.msdn.com/o9/ch9/5/1/2/6/5/5/ShuffleboardPart6_2MB_ch9.wmv"&gt;Part 6&lt;/A&gt;: Performance&lt;/P&gt;</description>
      <link>http://andybeaulieu.com/Home/tabid/67/EntryID/202/Default.aspx</link>
      <author>andy@andybeaulieu.com</author>
      <comments>http://andybeaulieu.com/Home/tabid/67/EntryID/202/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://andybeaulieu.com/Default.aspx?tabid=67&amp;EntryID=202</guid>
      <pubDate>Tue, 15 Jun 2010 23:15:00 GMT</pubDate>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://andybeaulieu.com/DesktopModules/Blog/Trackback.aspx?id=202</trackback:ping>
    </item>
    <item>
      <title>WP7 Back Button in Games</title>
      <description>&lt;P&gt;In order to publish a Windows Phone 7 application on the Marketplace, your app must pass a list of certification requirements. One of the items in the &lt;A href="http://go.microsoft.com/?linkid=9730558"&gt;Windows Phone 7 Certification Requirements&lt;/A&gt; caught my eye:&lt;/P&gt;&lt;B&gt;&lt;FONT size=2&gt;
&lt;P&gt;&lt;EM&gt;&lt;FONT size=3&gt;5.2.4 Use of Back Button in Games&lt;/FONT&gt; &lt;/EM&gt;&lt;/P&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;FONT size=2 face=Arial,Arial&gt;&lt;FONT size=2 face=Arial,Arial&gt;
&lt;P&gt;&lt;EM&gt;a. Pressing the Back button from the first screen of a game must exit the application. &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;b. During gameplay, pressing the Back button in games must present an in-game menu. This menu must offer the option to resume the game. Pressing the Back button while this menu is up must exit the game. Microsoft recommends that you save the user game state or warn them of possible progress loss before exiting the game). &lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;c. Outside gameplay (for example, when the user is viewing the options or help menu), pressing the Back button must return to the previous menu or page. &lt;/EM&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;In order to conform to this requirement in a Silverlight game, we can override the OnBackKeyPress event of a PhoneApplicationPage, and if the game is playing we can present the user with a "pause menu" allowing them to resume or exit the game. Here is an example of an OnBackKeyPress override that I'm using to show an in-game menu.&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9.5pt"&gt;protected&lt;/SPAN&gt;&lt;SPAN 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; OnBackKeyPress(System.ComponentModel.&lt;SPAN style="COLOR: #2b91af"&gt;CancelEventArgs&lt;/SPAN&gt; e)&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN 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 style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN 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 style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9.5pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if&lt;/SPAN&gt; (ucMainGame1.GameState == &lt;SPAN style="COLOR: #2b91af"&gt;ucMainGame&lt;/SPAN&gt;.&lt;SPAN style="COLOR: #2b91af"&gt;GameStates&lt;/SPAN&gt;.Playing)&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9.5pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9.5pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;        &lt;/SPAN&gt;e.Cancel = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9.5pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;        &lt;/SPAN&gt;ucMainGame1.PauseGame();&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9.5pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9.5pt"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;            &lt;/SPAN&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="LINE-HEIGHT: normal; MARGIN: 0in 0in 0pt; mso-layout-grid-align: none" class=MsoNormal&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9.5pt"&gt;}&lt;BR&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;o:p&gt;To stop our app from closing due to the back button key press, we just set e.Cancel to true.&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;o:p&gt;That's all there is to it. If your app has some deeply nested screens, for options and such, you will likely want to navigate to the screens using a NavigateUri property of a Hyperlink control. This way, the back button will take you back to previous pages and fulfill requirement 5.2.4.c.&lt;/o:p&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;o:p&gt;&lt;/o:p&gt; &lt;/P&gt;</description>
      <link>http://andybeaulieu.com/Home/tabid/67/EntryID/201/Default.aspx</link>
      <author>andy@andybeaulieu.com</author>
      <comments>http://andybeaulieu.com/Home/tabid/67/EntryID/201/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://andybeaulieu.com/Default.aspx?tabid=67&amp;EntryID=201</guid>
      <pubDate>Mon, 14 Jun 2010 23:35:00 GMT</pubDate>
      <slash:comments>5</slash:comments>
      <trackback:ping>http://andybeaulieu.com/DesktopModules/Blog/Trackback.aspx?id=201</trackback:ping>
    </item>
    <item>
      <title>Shuffleboard: A Windows Phone 7 Sample Game</title>
      <description>&lt;DIV style="FLOAT: right"&gt;&lt;A HREF="http://andybeaulieu.comhttp://andybeaulieu.com/silverlight/winphone/shuffleboard/shuffleboardtestpage.html"&gt;&lt;IMG border=0 src="http://andybeaulieu.com/silverlight/winphone/shuffleboard/shuffleboard.png"&gt;&lt;/A&gt; &lt;/DIV&gt;
&lt;P&gt;Today I uploaded a Windows Phone 7 sample game to codeplex which demonstrates physics, gestures, perspective transforms, multitargeting, sound and GPU acceleration. &lt;/P&gt;
&lt;P&gt;[&lt;A HREF="http://andybeaulieu.comhttp://andybeaulieu.com/silverlight/winphone/shuffleboard/shuffleboardtestpage.html"&gt;TRY THE GAME&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;[&lt;A href="http://shuffleboard.codeplex.com/releases"&gt;DOWNLOAD SOURCE&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;This Shuffleboard game was created as the basis for a Coding4Fun tutorial, which will be available soon on the &lt;A href="http://blogs.msdn.com/b/coding4fun/"&gt;C4F Website&lt;/A&gt;. I don't want to spoil the fun for the official tutorial release so I won't go into much detail here, but this demo should be helpful for folks wanting to quickly create physics based games for the upcoming Windows Phone 7 devices.&lt;/P&gt;
&lt;P&gt;When the tutorial is released, it will include a video walkthrough showing step-by-step creation using Visual Studio 2010 and Expression Blend 4. Look for updates on the release, but in the meantime here are some more resources for creating physics-based games in Silverlight:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://timheuer.com/blog/archive/2010/04/29/windows-phone-tools-update-april-2010-silverlight-xna.aspx"&gt;Windows Phone 7 Developer Tools Install Info&lt;/A&gt; (Tim Heuer)&lt;/P&gt;
&lt;P&gt;&lt;A HREF="http://andybeaulieu.com/Home/tabid/67/EntryID/194/Default.aspx"&gt;&lt;FONT color=#003366&gt;Physics Games in Silverlight on Windows Phone 7&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A HREF="http://andybeaulieu.com/Home/tabid/67/EntryID/196/Default.aspx"&gt;&lt;FONT color=#003366&gt;Windows Phone 7/Silverlight Performance&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://developer.windowsphone.com/windows-phone-7-series/"&gt;&lt;FONT color=#003366&gt;Windows Phone 7 Developer Portal&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/ff426933(VS.96).aspx"&gt;&lt;FONT color=#003366&gt;How To: Handle Manipulation Events&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://forums.silverlight.net/forums/63.aspx"&gt;&lt;FONT color=#003366&gt;Forums on Silverlight.net&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/threads"&gt;&lt;FONT color=#003366&gt;Forums on WindowsPhone&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;</description>
      <link>http://andybeaulieu.com/Home/tabid/67/EntryID/200/Default.aspx</link>
      <author>andy@andybeaulieu.com</author>
      <comments>http://andybeaulieu.com/Home/tabid/67/EntryID/200/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://andybeaulieu.com/Default.aspx?tabid=67&amp;EntryID=200</guid>
      <pubDate>Thu, 27 May 2010 11:39:00 GMT</pubDate>
      <slash:comments>6</slash:comments>
      <trackback:ping>http://andybeaulieu.com/DesktopModules/Blog/Trackback.aspx?id=200</trackback:ping>
    </item>
    <item>
      <title>Droppy Pop: A Windows Phone 7 Game</title>
      <description>&lt;P&gt;&lt;STRONG&gt;
&lt;TABLE style="WIDTH: 100%" border=0 cellSpacing=1 cellPadding=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;&lt;STRONG&gt;ME:&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt; I've been working on an idea for a &lt;A href="http://developer.windowsphone.com"&gt;Windows Phone 7&lt;/A&gt; game and I'd really like your feedback and ideas.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;STRONG&gt;
&lt;P&gt;
&lt;TABLE style="WIDTH: 100%" border=0 cellSpacing=1 cellPadding=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;&lt;STRONG&gt;YOU:&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;But I &lt;STRONG&gt;don't have&lt;/STRONG&gt; a Windows Phone 7 device yet. I've been looking under bar stools but &lt;A href="http://gizmodo.com/5520438/how-apple-lost-the-next-iphone"&gt;all I find are iPhone's&lt;/A&gt;.&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;
&lt;TABLE style="WIDTH: 100%" border=0 cellSpacing=1 cellPadding=1&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;&lt;STRONG&gt;ME:&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD&gt;How about this? Since the game is written using Silverlight, why don't I just give you a &lt;A href="http://www.spritehand.com/silverlight/3.0/droppypop/droppypop.htm"&gt;link to a Silverlight Web version&lt;/A&gt; of the game, which uses the &lt;STRONG&gt;&lt;EM&gt;same source code&lt;/EM&gt;&lt;/STRONG&gt;, and you can give that a go?&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/STRONG&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.spritehand.com/silverlight/3.0/droppypop/droppypop.htm"&gt;&lt;IMG border=0 src="http://andybeaulieu.com/Portals/1/DroppyPop1.jpg"&gt;&lt;/A&gt; &lt;A href="http://www.spritehand.com/silverlight/3.0/droppypop/droppypop.htm"&gt;&lt;IMG border=0 src="http://andybeaulieu.com/Portals/1/DroppyPop2.jpg"&gt;&lt;/A&gt; &lt;A href="http://www.spritehand.com/silverlight/3.0/droppypop/droppypop.htm"&gt;&lt;IMG border=0 src="http://andybeaulieu.com/Portals/1/DroppyPop3.jpg"&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;In &lt;A href="http://www.spritehand.com/silverlight/3.0/droppypop/droppypop.htm"&gt;DroppyPop&lt;/A&gt;, you control a rag doll which is falling through an endless sky of balloons. Pop as many balloons as you can for points while avoiding the bombs and baddies along the way.&lt;/P&gt;
&lt;P&gt;I've been developing &lt;A href="http://www.spritehand.com/silverlight/3.0/droppypop/droppypop.htm"&gt;DroppyPop&lt;/A&gt; using the methods I described in a &lt;A HREF="http://andybeaulieu.com/Home/tabid/67/EntryID/194/Default.aspx"&gt;previous blog post&lt;/A&gt;, namely using multi-targeting to create both a Silverlight Web version and a Windows Phone 7 version using the same source code. I develop about 90% of the time in the Silverlight Web project, and then use Linked Files from a Windows Phone 7 project to build a version for WP7. This has a couple of major advantages:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;It's faster to compile and run outside of the WP7 emulator&lt;BR&gt;&lt;/LI&gt;
&lt;LI&gt;You end up with both a Windows and Web version&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;This method has been working great for me, and there are only a few instances where I need to use compiler directives to use different logic for the two platforms. This is possible because Microsoft did a fantastic job on the port of Silverlight for the Phone!&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;&lt;STRONG&gt;Your Feedback... Please!&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Let me know what you think of &lt;A href="http://www.spritehand.com/silverlight/3.0/droppypop/droppypop.htm"&gt;DroppyPop&lt;/A&gt;. Does the concept work? Are there any bugs? Would you pay 99 cents for the full version? :)&lt;/P&gt;
&lt;P&gt;You can leave feedback here in the comments, or inside the game under Options/Feedback.&lt;/P&gt;</description>
      <link>http://andybeaulieu.com/Home/tabid/67/EntryID/199/Default.aspx</link>
      <author>andy@andybeaulieu.com</author>
      <comments>http://andybeaulieu.com/Home/tabid/67/EntryID/199/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://andybeaulieu.com/Default.aspx?tabid=67&amp;EntryID=199</guid>
      <pubDate>Tue, 11 May 2010 00:48:00 GMT</pubDate>
      <slash:comments>13</slash:comments>
      <trackback:ping>http://andybeaulieu.com/DesktopModules/Blog/Trackback.aspx?id=199</trackback:ping>
    </item>
    <item>
      <title>Obfuscating Silverlight (for free)</title>
      <description>&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;You might be aware that when you publish a Silverlight XAP on the web, your source code is very vulnerable to prying eyes. A XAP file is in a ZIP compressed format, and the contents are .NET Assemblies and resources which can be disassembled easily using a tool like &lt;A href="http://reflector.red-gate.com/download.aspx?TreatAsUpdate=1"&gt;&lt;FONT face=Calibri&gt;.NET Reflector&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; &lt;/FONT&gt;. Although there is no sure-fire way to stop someone from copying your Silverlight application logic, &lt;/FONT&gt;&lt;A href="http://en.wikipedia.org/wiki/Obfuscator"&gt;&lt;FONT face=Calibri&gt;obfuscation&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; can at least make it a bit more difficult to hack through.&lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 24pt 0in 0pt"&gt;Babel Obfuscator for .NET&lt;/H3&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;There are a few obfuscators out there that support Silverlight, but they can be pricey. However, &lt;/FONT&gt;&lt;A href="http://www.babelfor.net/Default.aspx"&gt;&lt;FONT face=Calibri&gt;Babel Obfuscator&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; started out as a community project and still maintains a freeware edition. Additionally, it appears that the new version of Babel has corrected some issues with obfuscating Silverlight assemblies.&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;Here is how you can use the free edition of Babel Obfuscator to encrypt your Silverlight assemblies: (I should mention, if you do have $149 laying about, I recommend buying the Pro version of Babel which has XAP support)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpFirst&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri&gt;1.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;A href="http://www.babelfor.net/Downloads.aspx"&gt;&lt;FONT face=Calibri&gt;Download the Free edition&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; of Babel Obfuscator.&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri&gt;2.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;A href="http://www.7-zip.org/"&gt;&lt;FONT face=Calibri&gt;Download the Free 7-zip&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; compression utility. We’ll need this to update the obfuscated assemblies in our Silverlight XAP file. If you are happier with a different ZIP utility, go ahead and use it instead.&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 0pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri&gt;3.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Inside your Silverlight solution, right-click the Silverlight project and select Properties. &lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN: 0in 0in 10pt 0.5in; mso-list: l0 level1 lfo1" class=MsoListParagraphCxSpLast&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;&lt;FONT face=Calibri&gt;4.&lt;/FONT&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;FONT face=Calibri&gt;Go to the “Build Events” tab and add the following inside the &lt;/FONT&gt;&lt;FONT face=Calibri&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Post-build event command line:&lt;BR&gt;&lt;BR&gt;&lt;/B&gt;&lt;/FONT&gt;&lt;FONT size=2 face="Courier New"&gt;"C:\Program Files\Babel\babel.exe" $(TargetPath) --noildasm --nomsil --noinvalidopcodes &lt;BR&gt;&lt;BR&gt;"C:\Program Files\7-Zip\7z.exe" a $(TargetDir)$(ProjectName).xap $(TargetDir)BabelOut\$(TargetFileName) -y -tZIP&lt;BR&gt;&lt;/FONT&gt;&lt;FONT face=Calibri&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;This post-build event will run the Babel Obfuscator against your assembly, which places it into a “BabelOut” subdirectory. Then we use 7-zip to bring that updated, obfuscated assembly back into our XAP file.&lt;/FONT&gt;&lt;/P&gt;
&lt;H3 style="MARGIN: 24pt 0in 0pt"&gt;Examining the Obfuscation&lt;/H3&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;We can use a tool like &lt;/FONT&gt;&lt;A href="http://reflector.red-gate.com/download.aspx?TreatAsUpdate=1"&gt;&lt;FONT face=Calibri&gt;.NET Reflector&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri&gt; to see what the obfuscator does for us. Here is some example before-and-after code showing an example of the obfuscation. &lt;/FONT&gt;&lt;/P&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;STRONG&gt;&lt;U&gt;BEFORE OBFUSCATION&lt;/U&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Boolean href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Boolean"&gt;&lt;FONT color=#0000ff size=2&gt;bool&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/IsRagDollPart(String):Boolean"&gt;&lt;FONT color=#0000ff&gt;IsRagDollPart&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=System.String href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.String"&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; part);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/LayoutRoot_KeyDown(Object,System.Windows.Input.KeyEventArgs)"&gt;&lt;FONT color=#0000ff&gt;LayoutRoot_KeyDown&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=System.Object href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Object"&gt;&lt;FONT color=#0000ff size=2&gt;object&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; sender, &lt;/FONT&gt;&lt;A title=System.Windows.Input.KeyEventArgs href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Windows:2.0.5.0:7cec85d7bea7798e/System.Windows.Input.KeyEventArgs"&gt;&lt;FONT color=#0000ff size=2&gt;KeyEventArgs&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; e);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/LayoutRoot_KeyUp(Object,System.Windows.Input.KeyEventArgs)"&gt;&lt;FONT color=#0000ff&gt;LayoutRoot_KeyUp&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=System.Object href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Object"&gt;&lt;FONT color=#0000ff size=2&gt;object&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; sender, &lt;/FONT&gt;&lt;A title=System.Windows.Input.KeyEventArgs href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Windows:2.0.5.0:7cec85d7bea7798e/System.Windows.Input.KeyEventArgs"&gt;&lt;FONT color=#0000ff size=2&gt;KeyEventArgs&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; e);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/MainPage_Loaded(Object,System.Windows.RoutedEventArgs)"&gt;&lt;FONT color=#0000ff&gt;MainPage_Loaded&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=System.Object href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Object"&gt;&lt;FONT color=#0000ff size=2&gt;object&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; sender, &lt;/FONT&gt;&lt;A title=System.Windows.RoutedEventArgs href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Windows:2.0.5.0:7cec85d7bea7798e/System.Windows.RoutedEventArgs"&gt;&lt;FONT color=#0000ff size=2&gt;RoutedEventArgs&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; e);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/newObstacleExplode_Exploded(Jumper.ucObstacle)"&gt;&lt;FONT color=#0000ff&gt;newObstacleExplode_Exploded&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=Jumper.ucObstacle href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucObstacle"&gt;&lt;FONT color=#0000ff size=2&gt;ucObstacle&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; source);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/newObstacleExplode_Exploding(Jumper.ucObstacle)"&gt;&lt;FONT color=#0000ff&gt;newObstacleExplode_Exploding&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=Jumper.ucObstacle href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucObstacle"&gt;&lt;FONT color=#0000ff size=2&gt;ucObstacle&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; source);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/PositionBalloon(Jumper.ucObstacle)"&gt;&lt;FONT color=#0000ff&gt;PositionBalloon&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=Jumper.ucObstacle href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucObstacle"&gt;&lt;FONT color=#0000ff size=2&gt;ucObstacle&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; obstacle);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/PositionEnemy(Jumper.FlyingEnemyBase)"&gt;&lt;FONT color=#0000ff&gt;PositionEnemy&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=Jumper.FlyingEnemyBase href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.FlyingEnemyBase"&gt;&lt;FONT color=#0000ff size=2&gt;FlyingEnemyBase&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; enemy);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/PositionPowerUp(Jumper.PowerupBase)"&gt;&lt;FONT color=#0000ff&gt;PositionPowerUp&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=Jumper.PowerupBase href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.PowerupBase"&gt;&lt;FONT color=#0000ff size=2&gt;PowerupBase&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; powerUp);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;public&lt;/SPAN&gt; &lt;SPAN style="COLOR: #1000a0"&gt;static&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Double href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Double"&gt;&lt;FONT color=#0000ff size=2&gt;double&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/RadiansToDecimalDegrees(Double):Double"&gt;&lt;FONT color=#0000ff&gt;RadiansToDecimalDegrees&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=System.Double href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Double"&gt;&lt;FONT color=#0000ff size=2&gt;double&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; radians);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/ResetLevel()"&gt;&lt;FONT color=#0000ff&gt;ResetLevel&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;();&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/ShieldActive(Boolean)"&gt;&lt;FONT color=#0000ff&gt;ShieldActive&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=System.Boolean href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Boolean"&gt;&lt;FONT color=#0000ff size=2&gt;bool&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; isActive);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/ucExplosion1_Exploded(Jumper.ucExplosion)"&gt;&lt;FONT color=#0000ff&gt;ucExplosion1_Exploded&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=Jumper.ucExplosion href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucExplosion"&gt;&lt;FONT color=#0000ff size=2&gt;ucExplosion&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; source);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/ucMainGame_KeyDown(Object,System.Windows.Input.KeyEventArgs)"&gt;&lt;FONT color=#0000ff&gt;ucMainGame_KeyDown&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=System.Object href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Object"&gt;&lt;FONT color=#0000ff size=2&gt;object&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; sender, &lt;/FONT&gt;&lt;A title=System.Windows.Input.KeyEventArgs href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Windows:2.0.5.0:7cec85d7bea7798e/System.Windows.Input.KeyEventArgs"&gt;&lt;FONT color=#0000ff size=2&gt;KeyEventArgs&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; e);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/ucMainGame_KeyUp(Object,System.Windows.Input.KeyEventArgs)"&gt;&lt;FONT color=#0000ff&gt;ucMainGame_KeyUp&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=System.Object href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Object"&gt;&lt;FONT color=#0000ff size=2&gt;object&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; sender, &lt;/FONT&gt;&lt;A title=System.Windows.Input.KeyEventArgs href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Windows:2.0.5.0:7cec85d7bea7798e/System.Windows.Input.KeyEventArgs"&gt;&lt;FONT color=#0000ff size=2&gt;KeyEventArgs&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; e);&lt;/FONT&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri&gt; &lt;/FONT&gt;&lt;/o:p&gt;&lt;/PRE&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt;&lt;FONT face=Calibri&gt;&lt;STRONG&gt;&lt;U&gt;AFTER OBFUSCATION&lt;/U&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;PRE&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/(Boolean)"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=System.Boolean href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Boolean"&gt;&lt;FONT color=#0000ff size=2&gt;bool&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; );&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Boolean href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Boolean"&gt;&lt;FONT color=#0000ff size=2&gt;bool&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/(String):Boolean"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=System.String href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.String"&gt;&lt;FONT color=#0000ff size=2&gt;string&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; );&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/(Object)"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=System.Object href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Object"&gt;&lt;FONT color=#0000ff size=2&gt;object&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; );&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/()"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;();&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;    private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/(Jumper.PowerupBase)"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=Jumper.PowerupBase href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.PowerupBase"&gt;&lt;FONT color=#0000ff size=2&gt;PowerupBase&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; );&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="COLOR: #1000a0"&gt;    private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/(Boolean)"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=System.Boolean href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Boolean"&gt;&lt;FONT color=#0000ff size=2&gt;bool&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; );&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/(Jumper.ucObstacle)"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=Jumper.ucObstacle href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucObstacle"&gt;&lt;FONT color=#0000ff size=2&gt;ucObstacle&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; );&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/(Jumper.ucExplosion)"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=Jumper.ucExplosion href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucExplosion"&gt;&lt;FONT color=#0000ff size=2&gt;ucExplosion&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; );&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/()"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;();&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/(Jumper.ucObstacle)"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=Jumper.ucObstacle href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucObstacle"&gt;&lt;FONT color=#0000ff size=2&gt;ucObstacle&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; );&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/(Jumper.ucObstacle)"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=Jumper.ucObstacle href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucObstacle"&gt;&lt;FONT color=#0000ff size=2&gt;ucObstacle&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; );&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/(Jumper.PowerupBase)"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=Jumper.PowerupBase href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.PowerupBase"&gt;&lt;FONT color=#0000ff size=2&gt;PowerupBase&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; );&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/(Jumper.FlyingEnemyBase)"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=Jumper.FlyingEnemyBase href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.FlyingEnemyBase"&gt;&lt;FONT color=#0000ff size=2&gt;FlyingEnemyBase&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; );&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/(Object,System.Windows.Input.KeyEventArgs)"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=System.Object href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Object"&gt;&lt;FONT color=#0000ff size=2&gt;object&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; , &lt;/FONT&gt;&lt;A title=System.Windows.Input.KeyEventArgs href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Windows:2.0.5.0:7cec85d7bea7798e/System.Windows.Input.KeyEventArgs"&gt;&lt;FONT color=#0000ff size=2&gt;KeyEventArgs&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; );&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;&lt;SPAN style="mso-spacerun: yes"&gt;    &lt;/SPAN&gt;&lt;SPAN style="COLOR: #1000a0"&gt;private&lt;/SPAN&gt; &lt;/FONT&gt;&lt;A title=System.Void href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Void"&gt;&lt;FONT color=#0000ff size=2&gt;void&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;B&gt;&lt;A href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://Jumper:1.0.0.0/Jumper.ucMainGame/(Object,System.Windows.Input.KeyEventArgs)"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;/B&gt;(&lt;/FONT&gt;&lt;A title=System.Object href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.5.0:7cec85d7bea7798e/System.Object"&gt;&lt;FONT color=#0000ff size=2&gt;object&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; , &lt;/FONT&gt;&lt;A title=System.Windows.Input.KeyEventArgs href="http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://System.Windows:2.0.5.0:7cec85d7bea7798e/System.Windows.Input.KeyEventArgs"&gt;&lt;FONT color=#0000ff size=2&gt;KeyEventArgs&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; );&lt;/FONT&gt;&lt;/PRE&gt;
&lt;P style="MARGIN: 0in 0in 10pt" class=MsoNormal&gt; &lt;/P&gt;</description>
      <link>http://andybeaulieu.com/Home/tabid/67/EntryID/198/Default.aspx</link>
      <author>andy@andybeaulieu.com</author>
      <comments>http://andybeaulieu.com/Home/tabid/67/EntryID/198/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://andybeaulieu.com/Default.aspx?tabid=67&amp;EntryID=198</guid>
      <pubDate>Thu, 15 Apr 2010 22:39:00 GMT</pubDate>
      <slash:comments>5</slash:comments>
      <trackback:ping>http://andybeaulieu.com/DesktopModules/Blog/Trackback.aspx?id=198</trackback:ping>
    </item>
    <item>
      <title>Windows Phone: Silverlight for Casual Games</title>
      <description>&lt;P&gt;Thanks to everyone who attended my session at &lt;A href="http://blogs.msdn.com/cbowen/archive/2010/03/20/new-england-code-camp-13-the-schedule.aspx"&gt;Code Camp 13 in Waltham&lt;/A&gt;, "Windows Phone: Silverlight for Casual Games." It's great to see so many people sharing my excitement for &lt;A href="http://developer.windowsphone.com/windows-phone-7-series/"&gt;Windows Phone 7&lt;/A&gt;! &lt;/P&gt;
&lt;P&gt;In this session, we talked about the new hardware, Silverlight support, the Emulator, GPU Acceleration, monitoring performance, Behaviors, sound support, input, and monetization of your games.&lt;/P&gt;
&lt;P&gt;As promised, here are my slides and demos from the talk.&lt;/P&gt;
&lt;P&gt;[&lt;A href="http://andybeaulieu.com/silverlight/winphone/_CasualGamesInSilverlightOnWindowsPhone.pptx"&gt;DOWNLOAD SLIDES&lt;/A&gt;]   [&lt;A href="http://andybeaulieu.com/silverlight/winphone/AndyBeaulieuDemosForCasualGames_032710.zip"&gt;DOWNLOAD DEMOS&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;And here are some links to get you started with creating fun games with Silverlight for Windows Phone 7:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://adamkinney.wordpress.com/2010/03/19/install-checklist-for-silverlight-4-rc-blend-4-beta-and-windows-phone-developer-tools-from-mix10/"&gt;Install Checklist for Windows Phone Development&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://developer.windowsphone.com/windows-phone-7-series/"&gt;Windows Phone 7 Developer Portal&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;A href="http://andybeaulieu.com/Home/tabid/67/EntryID/194/Default.aspx"&gt;Physics Games in Silverlight on Windows Phone 7&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://andybeaulieu.com/Home/tabid/67/EntryID/196/Default.aspx"&gt;Windows Phone 7/Silverlight Performance&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/ff426933(VS.96).aspx"&gt;How To: Handle Manipulation Events&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://forums.silverlight.net/forums/63.aspx"&gt;Forums on Silverlight.net&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/threads"&gt;Forums on WindowsPhone&lt;/A&gt;&lt;/P&gt;
&lt;P&gt; &lt;/P&gt;</description>
      <link>http://andybeaulieu.com/Home/tabid/67/EntryID/197/Default.aspx</link>
      <author>andy@andybeaulieu.com</author>
      <comments>http://andybeaulieu.com/Home/tabid/67/EntryID/197/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://andybeaulieu.com/Default.aspx?tabid=67&amp;EntryID=197</guid>
      <pubDate>Sun, 28 Mar 2010 22:58:00 GMT</pubDate>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://andybeaulieu.com/DesktopModules/Blog/Trackback.aspx?id=197</trackback:ping>
    </item>
    <item>
      <title>Windows Phone 7 + Silverlight Performance</title>
      <description>&lt;P class=MsoNormal&gt;&lt;BR&gt;If you’re creating a graphics intensive application (such as a game) for Windows Phone 7 (WP7) using Silverlight, you’re going to want to maximize performance for both the emulator and your Silverlight code. Let’s look at some ways to maximize both of these.&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 14pt"&gt;WP7/Silverlight Graphics Performance&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;WP7 devices have a separate GPU which is optimized for handling graphics operations such as displaying, scaling, rotating, and 3D. Silverlight on WP7 has the ability to use that GPU, which can greatly increase graphics performance. It does this by allowing a “snapshot” of a visual, called a Bitmap Cache, to be handed over to the GPU for manipulation.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpFirst&gt;&lt;B&gt;Storyboard Animations are Automatically GPU Accelerated&lt;/B&gt;.&lt;BR&gt;If you create a Storyboard animation on SL for WP7, it will automatically use the GPU when it can for displaying, scaling, rotating, and rectangular Clips.  There is nothing you need to do to enable this, it is automatic. This is kind of a “bonus feature” of Silverlight 3 on the Windows Phone (it is not available in desktop Silverlight 3 or Silverlight 4).&lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpMiddle&gt;&lt;B&gt;Procedural Animations need a CacheMode attribute&lt;/B&gt;.&lt;BR&gt;If you are moving elements via code, such as for a game, they will not be automatically GPU accelerated like a Storyboard. You need to add in a CacheMode attribute like so:&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9.5pt"&gt;&lt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: #a31515; FONT-SIZE: 9.5pt"&gt;Canvas&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 9.5pt"&gt; x&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9.5pt"&gt;:&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 9.5pt"&gt;Name&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9.5pt"&gt;="cnvShip"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 9.5pt"&gt; CacheMode&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 9.5pt"&gt;="BitmapCache"&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: red; FONT-SIZE: 9.5pt"&gt; …&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;But make sure you add this only on elements that &lt;I&gt;do not change visually&lt;/I&gt;. That is, imagine that you’re taking a snapshot of the element that is cached, and handing that over to the GPU. If anything changes inside that element’s visuals, then the cache will be invalidated and you’ll lose the advantages of caching.&lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpMiddle&gt;&lt;B&gt;Perspective 3D Transforms can be GPU Accelerated&lt;/B&gt;.&lt;BR&gt;If you use a PlaneProjection in a Storyboard, it will use the GPU. You can also apply a CacheMode=”BitmapCache” attribute to a 3D Transform and it will use the GPU. This is another “bonus feature” of Silverlight 3 on the Windows Phone (it is not available in desktop Silverlight 3 but is introduced in Silverlight 4).&lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN-BOTTOM: 0pt" class=MsoListParagraphCxSpMiddle&gt;&lt;B&gt;Examine Graphics Metrics&lt;/B&gt;.&lt;BR&gt;We can get some good graphics metrics from Silverlight on WP7 by adding the following code:&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9.5pt"&gt;Application&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9.5pt"&gt;.Current.Host.Settings.EnableFrameRateCounter = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;This will show the following metrics at the top of the device window:&lt;BR&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9.5pt"&gt;&lt;IMG src="http://andybeaulieu.com/silverlight/winphone/gpu/image001.jpg" width=414 height=49&gt;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9.5pt"&gt;A – Render Thread Framerate&lt;BR&gt;B – UI Thread Framerate&lt;BR&gt;C – Amount of Video Memory Used&lt;BR&gt;D – Total # of Textures Used&lt;BR&gt;E – Total # of Intermediate Textures Used&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;Note that Silverlight on WP7 uses two separate threads, a Render thread for visuals, and a UI thread, to handle input and application logic. Seema Ramchandani gave a great talk detailing these counters at &lt;A href="http://live.visitmix.com/MIX10/Sessions/CL60"&gt;http://live.visitmix.com/MIX10/Sessions/CL60&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN-BOTTOM: 0pt" class=MsoListParagraphCxSpMiddle&gt;&lt;B&gt;See what’s Using the GPU.&lt;BR&gt;&lt;/B&gt;For performance, we want as many elements to be rendered by the GPU as possible. We can see what is rendered by the GPU by using the following code:&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9.5pt"&gt;Application&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9.5pt"&gt;.Current.Host.Settings.EnableCacheVisualization = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;When this is set, any elements that are NOT cached will have a colored tint to them. If an element appears its normal color then it IS being cached and handled by the GPU. &lt;BR&gt;&lt;BR&gt;&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV style="LINE-HEIGHT: normal; TEXT-INDENT: -0.25in; MARGIN-BOTTOM: 0pt" class=MsoListParagraphCxSpLast&gt;&lt;B&gt;See What is Being Redrawn&lt;/B&gt;.&lt;BR&gt;For best performance, we want to minimize what is being redrawn on each frame. We can use the following setting in code:&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-FAMILY: Consolas; COLOR: #2b91af; FONT-SIZE: 9.5pt"&gt;Application&lt;/SPAN&gt;&lt;SPAN style="FONT-FAMILY: Consolas; FONT-SIZE: 9.5pt"&gt;.Current.Host.Settings.EnableRedrawRegions = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;&lt;/SPAN&gt;&lt;BR&gt;&lt;BR&gt;… which will show a ghost copy of the visual whenever it is redrawn. If you are seeing  a lot of redraws, and they are large portions of the UI, then maybe you can add some more CacheMode attributes so it is offloaded to the CPU. (Note that when something is handled by the GPU, you will NOT see any redraw regions).&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 14pt"&gt;Emulator Performance&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;U&gt;Ensure the Emulator can use your Host’s GPU.&lt;BR&gt;&lt;/U&gt;&lt;/B&gt;The Emulator can take advantage of the GPU on your computer to render graphics, greatly increasing its performance… but only if it meets a couple of requirements.&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpFirst&gt;1.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/SPAN&gt;Make sure your video card supports at least WDDM 1.1 and DirectX 10. &lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN-LEFT: 1in" class=MsoListParagraphCxSpMiddle&gt;a.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/SPAN&gt;From the Start Menu, select Run and enter &lt;B&gt;dxdiag&lt;/B&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN-LEFT: 1in" class=MsoListParagraphCxSpMiddle&gt;b.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/SPAN&gt;Go to the Display tab and ensure that the DDI Version and Driver Model are 10 or better and 1.1 or better, respectively.&lt;BR&gt;&lt;IMG id="Picture 1" border=0 src="http://andybeaulieu.com/silverlight/winphone/gpu/image002.jpg" width=512 height=372&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in; MARGIN-LEFT: 1in" class=MsoListParagraphCxSpMiddle&gt;c.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/SPAN&gt;To be extra sure the Emulator will like your video card, create an XNA Windows Phone Game. This project template is a bit pickier with GPU support.&lt;/P&gt;
&lt;P style="TEXT-INDENT: -1.5in; MARGIN-LEFT: 1.5in" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;                                                               &lt;/SPAN&gt;i.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/SPAN&gt; Start up Visual Studio and create a new XNA Game Studio 4.0/Windows Phone Game. &lt;BR&gt;&lt;IMG id="Picture 4" border=0 src="http://andybeaulieu.com/silverlight/winphone/gpu/image003.jpg" width=477 height=268&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -1.5in; MARGIN-LEFT: 1.5in" class=MsoListParagraphCxSpMiddle&gt;&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;                                                             &lt;/SPAN&gt;ii.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;      &lt;/SPAN&gt;Run the project. If you get the following error, then the Emulator will not support your GPU. &lt;BR&gt;&lt;BR&gt;&lt;SPAN style="FONT-FAMILY: 'Courier New'"&gt;Deploy failed with the following error: The current display adapter does not meet the emulator requirements to run XNA Framework applications&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="MARGIN-LEFT: 1.5in" class=MsoListParagraphCxSpLast&gt;… However, all is not lost. It could be that you just need to upgrade your video card drivers. Visit the site for your video card manufacturer and see if they have some newer bits (This one actually worked for me &lt;SPAN style="FONT-FAMILY: Wingdings"&gt;J&lt;/SPAN&gt;)&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;U&gt;Enable Virtualization in your BIOS&lt;/U&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;Support for Virtualization at the CPU level is provided on newer processors. This can significantly increase the speed of emulators, allowing them to talk more directly to the CPU, instead of a software layer. Because this is a CPU-level function, you need to go into your computer’s BIOS to enable it (it will normally be OFF by default, so you will need to switch it on).&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpFirst&gt;1.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/SPAN&gt;Reboot your computer and look for the magic BIOS key. It could be Ins, Del, a Function Key, it all depends on the BIOS version.&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpLast&gt;2.&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;       &lt;/SPAN&gt;Once inside the BIOS, look for a category named “Virtualization” or something to that effect. Switch all of those options on.&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;B&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-SIZE: 14pt"&gt;Summary&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;I’m sure there are some things here I missed or just didn’t know about, so please give me your comments. Here are a few links to other resources on the topics above:&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;A href="http://live.visitmix.com/MIX10/Sessions/CL60"&gt;Silverlight Performance on Windows Phone&lt;/A&gt; – Seema Ramchandani&lt;BR&gt;&lt;BR&gt;&lt;A href="http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/thread/2892a6f0-ab26-48d6-b63c-e38f62eda3b3"&gt;WP7 Developer FAQ&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;&lt;A href="http://andybeaulieu.com/Home/tabid/67/EntryID/144/Default.aspx"&gt;Silverlight 3: GPU Acceleration + Bitmap Caching&lt;/A&gt; – My Blog&lt;/P&gt;</description>
      <link>http://andybeaulieu.com/Home/tabid/67/EntryID/196/Default.aspx</link>
      <author>andy@andybeaulieu.com</author>
      <comments>http://andybeaulieu.com/Home/tabid/67/EntryID/196/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://andybeaulieu.com/Default.aspx?tabid=67&amp;EntryID=196</guid>
      <pubDate>Thu, 25 Mar 2010 18:48:00 GMT</pubDate>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://andybeaulieu.com/DesktopModules/Blog/Trackback.aspx?id=196</trackback:ping>
    </item>
    <item>
      <title>Silverlight 4 PathListBox for Motion Path Animation</title>
      <description>&lt;P class=MsoNormal&gt;&lt;FONT size=2 face=Arial&gt;The PathListBox control is a cool new addition to the Blend 4 SDK, and allows the elements inside a ListBox to lay out along any Path control shape. You’ll need to install the Blend 4 SDK to get access to the PathListBox control, but note that this is available outside of Expression Blend 4 (you don’t need to purchase or install Blend 4). &lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT size=2 face=Arial&gt;One of the neat bonus features of the PathListBox is that you can &lt;B&gt;&lt;I&gt;animate&lt;/I&gt;&lt;/B&gt; the Path that it is bound to, and the items will follow the animation! This gives Silverlight functionality similar to the &lt;/FONT&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/system.windows.media.animation.doubleanimationusingpath.aspx"&gt;&lt;FONT size=2 face=Arial&gt;AnimationUsingPath&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2 face=Arial&gt; class that WPF has had since .NET 3.0, and provides basic Motion Path Animation.&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT size=2 face=Arial&gt;Let’s see how we can use PathListBox for some interesting effects.&lt;BR&gt;&lt;BR&gt;[&lt;A href="http://andybeaulieu.com/silverlight/4.0/PathListBox/TestPage.html"&gt;VIEW DEMO&lt;/A&gt;]  *Requires &lt;A href="http://www.silverlight.net/getstarted/silverlight-4/"&gt;Silverlight 4&lt;/A&gt;*&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal&gt;&lt;FONT size=2 face=Arial&gt;[&lt;A href="http://andybeaulieu.com/silverlight/4.0/PathListBox/PathListBox_030410.zip"&gt;DOWNLOAD DEMO&lt;/A&gt;] &lt;/FONT&gt;&lt;FONT size=2 face=Arial&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpFirst&gt;&lt;FONT size=2 face=Arial&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/SPAN&gt;Open Blend 4 and expand the Asset Library. To quickly find the PathListBox control, type PathListBox into the search box.&lt;BR&gt;&lt;IMG id="Picture 1" border=0 src="http://andybeaulieu.com/silverlight/4.0/PathListBox/image001.jpg" width=604 height=401&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=2 face=Arial&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/SPAN&gt;Draw a PathListBox control onto the artboard, and give it a name of “pathListBox1”&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=2 face=Arial&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/SPAN&gt;In order for the PathListBox to determine the shape that its Items should follow, you’ll need to draw out a Path control. Select the Pen tool and draw out a shape.&lt;BR&gt;&lt;IMG id="Picture 4" border=0 src="http://andybeaulieu.com/silverlight/4.0/PathListBox/image002.jpg" width=311 height=493&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=2 face=Arial&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/SPAN&gt;We only want to use the Path for its shape information, so let’s hide its visual representation. Set the Fill and Stroke to “No Brush” (you can quickly do this by select “Reset” from the Advanced Property Options – that little square to the right of the brush selection).&lt;BR&gt;&lt;IMG id="Picture 22" border=0 src="http://andybeaulieu.com/silverlight/4.0/PathListBox/image003.jpg" width=267 height=85&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=2 face=Arial&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/SPAN&gt;Now, select the PathListBox control, and in the Properties Panel, go to the Items Layout category and click the Artboard Element Picker. Then select the Path that you created in the previous step by clicking on it in the Artboard.&lt;BR&gt;&lt;IMG id="Picture 10" border=0 src="http://andybeaulieu.com/silverlight/4.0/PathListBox/image004.jpg" width=267 height=234&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=2 face=Arial&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/SPAN&gt;Select the main UserControl in the Objects and Timeline Panel.&lt;BR&gt;&lt;IMG id="Picture 19" border=0 src="http://andybeaulieu.com/silverlight/4.0/PathListBox/image005.jpg" width=282 height=181&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=2 face=Arial&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/SPAN&gt;Go to the Events Panel in the Properties Panel and double-click the Loaded event.&lt;BR&gt;&lt;IMG id="Picture 16" border=0 src="http://andybeaulieu.com/silverlight/4.0/PathListBox/image006.jpg" width=283 height=334&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/SPAN&gt;Add a little bit of code inside the Loaded event, which fills the PathListBox with an array of characters (note that we can data bind a character array to the Items Source of a control):&lt;BR&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt"&gt;private&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: black; FONT-SIZE: 8pt"&gt; &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt"&gt;void&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: black; FONT-SIZE: 8pt"&gt; UserControl_Loaded(&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt"&gt;object&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: black; FONT-SIZE: 8pt"&gt; sender, &lt;BR&gt;System.Windows.RoutedEventArgs e)&lt;BR&gt;{&lt;BR&gt;        &lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: green; FONT-SIZE: 8pt"&gt;// TODO: Add event handler implementation here.&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: black; FONT-SIZE: 8pt"&gt;&lt;BR&gt;&lt;FONT size=2 face=Arial&gt;    &lt;/FONT&gt;&lt;/SPAN&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: blue; FONT-SIZE: 8pt"&gt;string&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: black; FONT-SIZE: 8pt"&gt; data = &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: maroon; FONT-SIZE: 8pt"&gt;&lt;FONT size=2 face=Arial&gt;@"This is the theme to Gary's Show, the theme to Gary's show. &lt;BR&gt;                                Gary called me up and asked me if I'd write his theme song."&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: black; FONT-SIZE: 8pt"&gt;&lt;FONT size=2 face=Arial&gt;;&lt;BR&gt;    pathListBox1.ItemsSource = data.ToCharArray();&lt;BR&gt;    &lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/SPAN&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: black; FONT-SIZE: 8pt"&gt;Run the project by hitting F5. The characters follow the Path. Weird effect, eh?&lt;BR&gt;&lt;/SPAN&gt;&lt;IMG id="Picture 25" border=0 src="http://andybeaulieu.com/silverlight/4.0/PathListBox/image007.jpg" width=209 height=332&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=2 face=Arial&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/SPAN&gt;Let’s try animating these chars. Add a new Storyboard named sbAnimateChars.&lt;BR&gt;&lt;IMG id="Picture 34" border=0 src="http://andybeaulieu.com/silverlight/4.0/PathListBox/image008.jpg" width=388 height=151&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=2 face=Arial&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/SPAN&gt;Select the Storyboard (by clicking its name just above the Objects and Timeline Panel), and set its RepeatBehavior to “Forever”&lt;BR&gt;&lt;IMG id="Picture 49" border=0 src="http://andybeaulieu.com/silverlight/4.0/PathListBox/image009.jpg" width=268 height=76&gt;&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=2 face=Arial&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/SPAN&gt;Fast-forward the timeline for the storyboard a second or so.&lt;BR&gt;&lt;IMG id="Picture 46" border=0 src="http://andybeaulieu.com/silverlight/4.0/PathListBox/image010.jpg" width=136 height=112&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=2 face=Arial&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/SPAN&gt;From the toolbox, grab the Direct Selection tool and drag around the points within your Path element (Blend records changes in Path points within a Storyboard for you).&lt;BR&gt;&lt;IMG id="Picture 43" border=0 src="http://andybeaulieu.com/silverlight/4.0/PathListBox/image011.jpg" width=146 height=37&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpMiddle&gt;&lt;FONT size=2 face=Arial&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/SPAN&gt;Add another line of code into the MainPage_Loaded event handler, to start the Storyboard up:&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;SPAN style="LINE-HEIGHT: 115%; FONT-FAMILY: Consolas; COLOR: black; FONT-SIZE: 10pt"&gt;&lt;FONT face=Arial&gt;sbAnimateChars.Begin();&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="TEXT-INDENT: -0.25in" class=MsoListParagraphCxSpLast&gt;&lt;FONT size=2 face=Arial&gt;-&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/SPAN&gt;Run the project. You’ll see the characters animated on the Path.&lt;BR&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;</description>
      <link>http://andybeaulieu.com/Home/tabid/67/EntryID/195/Default.aspx</link>
      <author>andy@andybeaulieu.com</author>
      <comments>http://andybeaulieu.com/Home/tabid/67/EntryID/195/Default.aspx#Comments</comments>
      <guid isPermaLink="true">http://andybeaulieu.com/Default.aspx?tabid=67&amp;EntryID=195</guid>
      <pubDate>Fri, 19 Mar 2010 02:03:00 GMT</pubDate>
      <slash:comments>5</slash:comments>
      <trackback:ping>http://andybeaulieu.com/DesktopModules/Blog/Trackback.aspx?id=195</trackback:ping>
    </item>
  </channel>
</rss>