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

<channel>
	<title>Sgt. Conker &#187; UI</title>
	<atom:link href="http://www.sgtconker.com/category/xna/ui/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sgtconker.com</link>
	<description>We are &#34;absolutely fine&#34;</description>
	<lastBuildDate>Thu, 09 Sep 2010 00:28:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>XPF: A Layout Framework for XNA</title>
		<link>http://www.sgtconker.com/2010/08/xpf-a-layout-framework-for-xna/</link>
		<comments>http://www.sgtconker.com/2010/08/xpf-a-layout-framework-for-xna/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 14:29:40 +0000</pubDate>
		<dc:creator>Captain boki</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[XNA 4.0]]></category>
		<category><![CDATA[XPF]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/2010/08/xpf-a-layout-framework-for-xna/</guid>
		<description><![CDATA[Right after Mr. Styrchak shared his work on a Sinner clone now comes the word that the brave people at Red Badger just released a first build of BronzeglowXPF – I even named it XPF at first, too  
]]></description>
			<content:encoded><![CDATA[<p>Right after <a href="http://badcorporatelogo.spaces.live.com/">Mr. Styrchak</a> <a title="An Optimizing MSIL Rewriter (First Working Prototype)" href="http://badcorporatelogo.spaces.live.com/blog/cns!43EB71B104A2D711!505.entry">shared his work</a> on a <a title="Sinner &amp; Inquisitor: The Gathering" href="http://bxnaa.spaces.live.com/blog/cns!85007EAD17D3E592!387.entry">Sinner clone</a> now comes the word that the brave people at <a href="http://red-badger.com/">Red Badger</a> just <a href="http://red-badger.com/Blog/post/Introducing-XPF-e28093-A-Layout-Framework-for-XNA.aspx">released a first build of <strike>Bronzeglow</strike>XPF</a> – I even <a title="Björn&#39;s XNA Adventures: XPF (Working Title)" href="http://bxnaa.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&amp;_c=BlogPart&amp;partqs=cat%3DXPF%2520%2528Working%2520Title%2529">named it XPF at first</a>, too <img src='http://www.sgtconker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2010/08/xpf-a-layout-framework-for-xna/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Phone 7 &#8211; XNA Brightness and Contrast</title>
		<link>http://www.sgtconker.com/2010/06/windows-phone-7-xna-brightness-and-contrast/</link>
		<comments>http://www.sgtconker.com/2010/06/windows-phone-7-xna-brightness-and-contrast/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 23:40:05 +0000</pubDate>
		<dc:creator>CorporalX</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Input]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[WP7]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/?p=1479</guid>
		<description><![CDATA[With the addition of Windows Phone 7 support to XNA comes some limitations. If one wanted to have brightness and contrast controls for their game, previous methods may not be available. Considering features such as programmable shaders or device gamma ramp to achieve such a task will leave you out of luck. However there is [...]]]></description>
			<content:encoded><![CDATA[<p>With the addition of Windows Phone 7 support to XNA comes some limitations. If one wanted to have brightness and contrast controls for their game, previous methods may not be available. Considering features such as programmable shaders or device gamma ramp to achieve such a task will leave you out of luck. However there is a simple (and perhaps old school) way of doing it, and that is blend states.</p>
<p>Click <em>Continue reading</em> to see how!<br />
<span id="more-1479"></span></p>
<p>If you look around for information on how to adjust brightness and contrast with blend states, you might find this:</p>
<p>Draw a full screen quad and use these color blend states:</p>
<p><strong>Brightness: source = <em>ONE</em>, dest = <em>ONE</em><br />
Contrast: source = <em>DESTCOLOR</em>, dest = <em>ZERO</em></strong></p>
<p>While these would work, they might not be as you expect. Drawing with a 24/32bit per texel texture, the first would only allow you to adjust the brightness up from white, and the latter would only let you reduce contrast. That is probably not what people want. I suggest different settings:</p>
<p><strong>Brightness: source = <em>ZERO</em>, dest = <em>SOURCECOLOR</em><br />
Contrast: source = <em>DESTCOLOR</em>, dest = <em>SOURCECOLOR</em></strong></p>
<p>This will allow brightness to be reduced instead of raised, and contrast can be increased as well as reduced.</p>
<p>So how do you actually do this in XNA 4 on Windows Phone 7?</p>
<p>First you will need a 1x1 texel white texture either through the content pipeline, or procedurally. </p>
<p>Add this member to your game class:</p>
<pre class="brush: csharp;">
Texture2D whiteTexture;
</pre>
<p>In the LoadContent override method, add this to create the texture procedurally:</p>
<pre class="brush: csharp;">
whiteTexture = new Texture2D(GraphicsDevice, 1, 1);
whiteTexture.SetData&lt;Color&gt;(new Color[] { Color.White });
</pre>
<p>You will also need a couple of integer members to hold brightness and contrast state:</p>
<pre class="brush: csharp;">
int brightness;
int contrast;
</pre>
<p>Also, two blend states, one for brightness, and one for contrast:</p>
<pre class="brush: csharp;">
BlendState brightnessBlend;
BlendState contrastBlend;
</pre>
<p>In the Initialize override method, we can set these other members (note that alpha blend states must match color blend states on WP7/Reach):</p>
<pre class="brush: csharp;">
brightness = 255;
contrast = 128;

brightnessBlend = new BlendState();
brightnessBlend.ColorSourceBlend = brightnessBlend.AlphaSourceBlend =  Blend.Zero;
brightnessBlend.ColorDestinationBlend = brightnessBlend.AlphaDestinationBlend = Blend.SourceColor;

contrastBlend = new BlendState();
contrastBlend.ColorSourceBlend = contrastBlend.AlphaSourceBlend = Blend.DestinationColor;
contrastBlend.ColorDestinationBlend = contrastBlend.AlphaDestinationBlend = Blend.SourceColor;
</pre>
<p>Finally, in the Draw override method, after you have drawn to the screen, do the following (this assumes spriteBatch is initialized and that the default blend state is wanted next frame):</p>
<pre class="brush: csharp;">
spriteBatch.Begin(SpriteSortMode.Immediate, brightnessBlend);
spriteBatch.Draw(whiteTexture, new Rectangle(0, 0, 480, 800), new Color (brightness, brightness, brightness, 255));
spriteBatch.End();

spriteBatch.Begin(SpriteSortMode.Immediate, contrastBlend);
spriteBatch.Draw(whiteTexture, new Rectangle(0, 0, 480, 800), new Color(contrast, contrast, contrast, 255));
spriteBatch.End();

GraphicsDevice.BlendState = BlendState.Opaque;
</pre>
<p>That's it, but there are a couple more things to mention. First is that the color values (the brightness and contrast integers) should be between 0 and 255, although you could use floats too. To clamp an integer between these values use:</p>
<pre class="brush: csharp;">
value = Math.Max(Math.Min(value, 255), 0);
</pre>
<p>To test runtime adjustment of the brightness and contrast, I used input from the 4 quadrants of the screen. The top half adjusts brightness, the bottom contrast. The left side reduces the value and the right side increases it. To do this, add the following code to the Update override method:</p>
<pre class="brush: csharp;">
foreach (TouchLocation t in TouchPanel.GetState())
{
   if (t.Position.Y &lt;= 400)
      Adjust(t, ref brightness);
   else
      Adjust(t, ref contrast);
}
</pre>
<p>And the Adjust method  (here it adjusts the value by 3 for each touch change at your pleasure, it also includes the clamping mentioned above):</p>
<pre class="brush: csharp;">
private void Adjust(TouchLocation t, ref int adjustee)
{
   if (t.Position.X &lt; 240)
      adjustee -= 3;
   else
      adjustee += 3;

   adjustee = Math.Max(Math.Min(adjustee, 255), 0);
}
</pre>
<p>You could expose this via sliders in an options page. The brightness would be particularly useful as you don't want people exiting the game to adjust screen brightness.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2010/06/windows-phone-7-xna-brightness-and-contrast/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Article : Battlestar Galactica Text Effects in XNA</title>
		<link>http://www.sgtconker.com/2010/04/article-battlestar-galactica-text-effects-in-xna/</link>
		<comments>http://www.sgtconker.com/2010/04/article-battlestar-galactica-text-effects-in-xna/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 19:02:25 +0000</pubDate>
		<dc:creator>Sgt. Conker</dc:creator>
				<category><![CDATA[2D]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[Battlestar Galactica]]></category>
		<category><![CDATA[Text]]></category>
		<category><![CDATA[UberGeekGames]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/?p=1442</guid>
		<description><![CDATA[by UberGeekGames
If you’ve watched the excellent sci-fi series Battlestar Galactica (the 2004+ series, not the original!), you may have noticed that during scene transitions, they use a cool effect that draws text in strips. For example, when the story jumps from a Cylon Baseship back to Galactica, it might cut to an outside view of [...]]]></description>
			<content:encoded><![CDATA[<h4 style="text-align: center;">by <a href="http://www.ubergeekgames.com">UberGeekGames</a></h4>
<p>If you’ve watched the excellent sci-fi series Battlestar Galactica (the 2004+ series, not the original!), you may have noticed that during scene transitions, they use a cool effect that draws text in strips. For example, when the story jumps from a Cylon Baseship back to Galactica, it might cut to an outside view of BSG and have text in the lower left corner of the screen noting the time and place. The text fades in strips, which I thought was a pretty cool effect. I decided to replicate that in XNA.<br />
First, let’s look at the end result:</p>
<p><img class="alignnone" title="Screenshot" src="http://sgtconker.com/wp-content/uploads/2010/04/sshot.png" alt="" width="499" height="374" /></p>
<p><span id="more-1442"></span></p>
<p>You can see how the text is fading in strips. What isn’t really clear from the image is that the lines are moving horizontally, instead of only vertically like a Movie Maker effect. The program uses a multi step process to achieve this:</p>
<ul>
<li>The message is drawn to a rendertarget, and the texture is kept as the Destination texture.</li>
<li>A brush texture is created by drawing a vignette texture to a rendertarget, based on the speed and size variables.</li>
<li>An alpha map rendertarget is iteratively drawn on with the brush texture. Since the brush is made up of a vignette, it softens the fade in effect. A pure white texture would look much harsher.</li>
<li>The destination texture is drawn with a custom shader that takes the alpha map texture as a parameter. The alpha of the destination texture is multiplied by the color value of the alpha map texture, thus fading the text in.</li>
<li>The end result is an effect that looks much cooler than the standard “pop in text” or “fade entire text in”!</li>
</ul>
<p>The example contains two classes in BSGText.cs:</p>
<ul>
<li>BSGText</li>
<li>BSGTextManager</li>
</ul>
<p>The latter is a manager class that makes it easier to use multiple BSGText objects at once, and the former contains the actual nuts and bolts that make the effect work. The Manager is very simple to use and is demonstrated in the example project, and I won’t cover it here as it’s fairly boring. Now, let’s go over the cool parts that make the effect work:</p>
<pre class="brush: csharp;">
//create new rendertargets for the effect
            currentAlpha = new RenderTarget2D(parentManager.graphicsDevice, (int)size.X, (int)size.Y, 0, SurfaceFormat.Color);
            RenderTarget2D destination = new RenderTarget2D(parentManager.graphicsDevice, (int)size.X, (int)size.Y, 0, SurfaceFormat.Color);

//-----------------------------------------------------------------------
//| First, we want to create the destination texture.
//| The destination texture is simply the text drawn to a rendertarget,
//| and is how the text will look once it's fully transitioned in.
//-----------------------------------------------------------------------
//set the rendertarget
parentManager.graphicsDevice.SetRenderTarget(0, destination);

//clear it with a transparent color
parentManager.graphicsDevice.Clear(Color.TransparentBlack);

//begin spritebatch
parentManager.spriteBatch.Begin();

//draw the message
parentManager.spriteBatch.DrawString(parentManager.font, message, Vector2.Zero, Color.White);

//end spritebatch
parentManager.spriteBatch.End();

//set rendertarget back to the backbuffer
parentManager.graphicsDevice.SetRenderTarget(0, null);
//grab the destination texture. We don't need the destination rendertarget anymore now.
destinationTex = destination.GetTexture();

//---------------------------------------------------------------------------------
//| Now, we need to setup a blank alpha map. The alpha map is used to iteratively
//| add alpha to the destination image, thus fading it in in strips.
//---------------------------------------------------------------------------------

parentManager.graphicsDevice.SetRenderTarget(0, currentAlpha);

//all blank for right now
parentManager.graphicsDevice.Clear(Color.TransparentBlack);

parentManager.graphicsDevice.SetRenderTarget(0, null);

//=======================================================================
//| setup a new &quot;brush&quot; rendertarget.
//| The brush is used to iteritively add alpha to the alpha map, so the
//| text gets drawn in strips.
//=======================================================================

//setup the size based on the percentage variables
RenderTarget2D rt = new RenderTarget2D(parentManager.graphicsDevice,
(int)(destinationTex.Width * xSizePercent),
(int)(destinationTex.Height * ySizePercent),
0, SurfaceFormat.Color);

//draw the vignette texture to the rendertarget. We could use a solid color, but again,
//it wouldn't be as smooth as it is with a soft-edged vignette texture.
parentManager.graphicsDevice.SetRenderTarget(0, rt);
parentManager.graphicsDevice.Clear(Color.TransparentBlack);
parentManager.spriteBatch.Begin(SpriteBlendMode.Additive);
parentManager.spriteBatch.Draw(parentManager.vignetteTex, new Rectangle(0, 0, rt.Width, rt.Height), Color.White);
parentManager.spriteBatch.End();
parentManager.graphicsDevice.SetRenderTarget(0, null);
This is the setup code for the effect. It’s heavily documented so it should be pretty easy to follow – basically, we’re drawing the message to a rendertarget so we have the “destination” texture, creating a brush texture by drawing a vignette texture to another rendertarget, and setting up an alpha map rendertarget that we’ll use to iteritively draw the brush to.
Let’s look at the update code next:
//there are 3 strips
for (int i = 0; i &lt; 3; i++)
{
    //the middle strip goes faster to match the effect.
    int spd = i == 1 ? speed * 2 : speed;

    //draw and move the strip
    for (int x = 0; x &lt; spd; x++)
    {
        currentPos[i].X += brush.Width * .5f;
        UpdateText(currentPos[i]);

        //if we've passed the edge of the texture, loop back and increment the Y axis
        if (currentPos[i].X &gt;= (destinationTex.Width + brush.Width))
        {
            //stop looping if we've reached the end of our assigned secion + plus some buffer
            if (currentPos[i].Y &lt; (brush.Height * 2) + ((i + 1) * (destinationTex.Height / 3)))
            {
                currentPos[i].X = -brush.Width;
                currentPos[i].Y += brush.Height * .5f;
            }
            else
            isDone = true;
        }
    }
}
…
private void UpdateText(Vector2 currentPos)
{
    //grab the last result
    Texture2D prev = currentAlpha.GetTexture();

    parentManager.graphicsDevice.SetRenderTarget(0, currentAlpha);
    //clear the rendertarget
    parentManager.graphicsDevice.Clear(Color.TransparentBlack);
    parentManager.spriteBatch.Begin(SpriteBlendMode.Additive);
    //draw the last result
    parentManager.spriteBatch.Draw(prev, Vector2.Zero, Color.White);
    //and draw the new brush over it
    parentManager.spriteBatch.Draw(brush, currentPos, Color.White);
    //done!
    parentManager.spriteBatch.End();
    parentManager.graphicsDevice.SetRenderTarget(0, null);
}
</pre>
<p>We have three different positions that are kept track of in an array. These are used to draw the brush texture, and have multiple “strips” adding alpha to the alpha map at different positions. This will be clearer when you watch the output of the finished program – it looks like there are three distinct lines that are adding slices of the text in. An important note is that the middle slice is slightly faster than the outer two, hence the line that initializes the spd variable. (note: If you haven’t used or seen conditional operators before that line might look strange – it’s essentially C# shorthand for an if statement. Check out the MSDN page (<a href="http://msdn.microsoft.com/en-us/library/ty67wk28%28v=VS.100%29.aspx">http://msdn.microsoft.com/en-us/library/ty67wk28%28v=VS.100%29.aspx</a>) for a more technical description.)<br />
Next, here’s the draw code. There’s not much to look at – the real magic happens in the shader, which we’ll examine afterwards.</p>
<pre class="brush: csharp;">
//set the shader's alpha texture to our current alpha texture
parentManager.effect.Parameters[&quot;alpha&quot;].SetValue(currentAlpha.GetTexture());

spriteBatch.Begin(SpriteBlendMode.AlphaBlend, SpriteSortMode.Immediate, SaveStateMode.None);

//start the custom BSG text effect shader
parentManager.effect.Begin();
parentManager.effect.CurrentTechnique.Passes[0].Begin();

//draw the destination texture
spriteBatch.Draw(destinationTex, position, Color.White);

parentManager.effect.CurrentTechnique.Passes[0].End();
parentManager.effect.End();
spriteBatch.End();
And finally, here’s the shader that ties everything together:
BSGTextEffect.fx
//the texture that's being drawn with the shader
sampler TextureSampler : register(s0);

//the alpha texture map
texture2D alpha;
sampler2D alphaSampler = sampler_state
{
	Texture		=	&lt;alpha&gt;;
	MinFilter	=	Linear;
	MagFilter	=	Linear;
	MipFilter	=	Linear;
	AddressU	=	WRAP;
	AddressV	=	WRAP;
};

float4 PixelShader(float2 texCoord : TEXCOORD0) : COLOR0
{
    //Look up the original image color.
    float4 c = tex2D(TextureSampler, texCoord);

    //Look up the alpha value at the alpha texture.
    float4 alpha = tex2D(alphaSampler, texCoord);

    //Despite the name we don't actually use alpha <img src='http://www.sgtconker.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
    //(mainly so you can more easily see it for yourself if you enable the debug text)
    //instead we use a grayscale gradient texture, so any color component will work for us.
    c.a *= alpha.r;

    return c;
}

technique BSGText
{
    pass Pass1
    {
        PixelShader = compile ps_2_0 PixelShader();
    }
}
</pre>
<p>Nothing too complicated going on here either!  The shader looks up the color of the pixel in the alpha map at the same position as the current pixel, and multiplies the alpha by it’s color. Note how the alpha map really isn’t an alpha map as we’re using it’s red color channel, but we could easily change it to use alpha if we wanted. But by using grayscale instead, it’s slightly easier to see the output for debugging, and works just the same.<br />
So there were are. A fullly featured Battlestar Galactica text effect, using nothing more than a few rendertargets and a tiny HLSL shader! Commander Adama would be proud.</p>
<p>Download the sample code <a href="http://www.sgtconker.com/Downloads/articles/BSGTextSample.zip">here</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2010/04/article-battlestar-galactica-text-effects-in-xna/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building a 2D RPG</title>
		<link>http://www.sgtconker.com/2010/01/building-a-2d-rpg/</link>
		<comments>http://www.sgtconker.com/2010/01/building-a-2d-rpg/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 08:11:37 +0000</pubDate>
		<dc:creator>Captain ZSquare</dc:creator>
				<category><![CDATA[2D]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[edg3]]></category>
		<category><![CDATA[RPG]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/?p=936</guid>
		<description><![CDATA[edg3 from RealDev started a series about Building a 2D RPG using XNA, and currently has the first two parts on his site.
They both deal with building the basic skeleton of the game, starting with planning and gamestate management and continuing with keyboard and mouse input.
If your interested in other RPG-related tutorials and content for [...]]]></description>
			<content:encoded><![CDATA[<p>edg3 from <a href="http://realdev.co.za/blog/">RealDev</a> started a series about Building a 2D RPG using XNA, and currently has the first two parts on his site.</p>
<p>They both deal with building the basic skeleton of the game, starting with <a href="http://realdev.co.za/blog/?p=136">planning and gamestate management</a> and continuing with <a href="http://realdev.co.za/blog/?p=142">keyboard and mouse input</a>.</p>
<p>If your interested in other RPG-related tutorials and content for XNA, here's some:</p>
<ul>
<li>Nick "Not an MVP Anymore" Gravelyn's<a href="http://nickgravelyn.com/archive/#tileengine"> Tile Engine Series</a></li>
<li>Jamie McMahon series of <a href="http://xna.jtmbooks.com/rpgtutorials.html">44 RPG Tutorials</a></li>
<li>The <a href="http://creators.xna.com/en-US/starterkit/roleplayinggame">Role Playing Game Starter Kit</a> on XNA Creator's Club</li>
<li>Jim "Evil MVP" Perry's book <a href="http://www.amazon.com/RPG-Programming-XNA-Game-Studio/dp/1598220659/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1235005867&amp;sr=8-1">RPG Programming with XNA Game Studio 3.0</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2010/01/building-a-2d-rpg/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>100% Test Coverage</title>
		<link>http://www.sgtconker.com/2009/12/100-test-coverage/</link>
		<comments>http://www.sgtconker.com/2009/12/100-test-coverage/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 10:44:46 +0000</pubDate>
		<dc:creator>Captain ZSquare</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[Nuclex]]></category>
		<category><![CDATA[Tests]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/?p=662</guid>
		<description><![CDATA[After Markus made flashy statements about having "100% Test Coverage" on his new release of Nuclex, he posted an explanation about what that means exactly, which should help us mere mortals understand it better. Read more on his site.
]]></description>
			<content:encoded><![CDATA[<p>After Markus made flashy statements about having "100% Test Coverage" on his <a href="http://www.sgtconker.com/2009/12/nuclex-framework-updated/">new release of Nuclex</a>, he posted <a href="http://www.nuclex.org/blog/gamedev/73-the-meaning-of-100-percent-test-coverage">an explanation</a> about what that means exactly, which should help us mere mortals understand it better. <a href="http://www.nuclex.org/blog/gamedev/73-the-meaning-of-100-percent-test-coverage">Read more on his site</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2009/12/100-test-coverage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nuclex Framework Updated</title>
		<link>http://www.sgtconker.com/2009/12/nuclex-framework-updated/</link>
		<comments>http://www.sgtconker.com/2009/12/nuclex-framework-updated/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 20:05:36 +0000</pubDate>
		<dc:creator>Captain boki</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[Nuclex]]></category>

		<guid isPermaLink="false">http://www.sgtconker.com/2009/12/nuclex-framework-updated/</guid>
		<description><![CDATA[In Nuclex Framework R984 Released! Markus “Cygon” Ewald announces the immediate availability of the latest version of the Nuclex Framework on CodePlex. Highlights include:

100% test coverage of the GUI library (I leave it to the educated reader to determine if that means anything useful)
Control navigation with the game pad and cursor keys
The GUI library contains [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://www.nuclex.org/blog/announcements/71-nuclex-framework-r984-released">Nuclex Framework R984 Released!</a> Markus “Cygon” Ewald announces the immediate availability of the latest version of the <a href="http://nuclexframework.codeplex.com/">Nuclex Framework on CodePlex</a>. Highlights include:</p>
<ul>
<li>100% test coverage of the GUI library (<em>I leave it to the educated reader to determine if that means anything useful</em>)</li>
<li>Control navigation with the game pad and cursor keys</li>
<li>The GUI library contains controls for buttons, check boxes, radio buttons, horizontal and vertical scroll bars, text boxes, lists now</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2009/12/nuclex-framework-updated/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Article : Pie Menu</title>
		<link>http://www.sgtconker.com/2009/10/article-pie-menu/</link>
		<comments>http://www.sgtconker.com/2009/10/article-pie-menu/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 13:33:52 +0000</pubDate>
		<dc:creator>Captain ZSquare</dc:creator>
				<category><![CDATA[2D]]></category>
		<category><![CDATA[Articles]]></category>
		<category><![CDATA[Input]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://sgt.conkerjo.com/?p=147</guid>
		<description><![CDATA[For the people who want some UI stuff in XNA, here’s a small sample that contains a Pie Menu Component, attached to a cursor.]]></description>
			<content:encoded><![CDATA[<h4 style="text-align: center;">by <a href="http://www.catalinzima.com/">Catalin Zima</a></h4>
<p><strong>Pie Menu</strong><br />
<img class="alignright size-thumbnail wp-image-150" title="piemenupic" src="http://www.sgtconker.co.uk/wp-content/uploads/2009/10/piemenupic-150x150.png" alt="piemenupic" width="150" height="150" /><br />
For the people who want some UI stuff in XNA, here’s a small sample that contains a Pie Menu Component, attached to a cursor. If you don’t know what a pie menu is, read about it on <a href="http://en.wikipedia.org/wiki/Pie_menu">wikipedia</a>.<br />
<span id="more-147"></span></p>
<p>Now, about the sample.</p>
<p>My PieMenu supports deep menus. Currently it is just a quick version, made in two days. Because of this, the graphics are not spectacular, and some things may not be extremely flexible right now (the parameters passed to delegates).</p>
<p>But as it is, each menu entry has associated with it an image, a text description, and a delegate, for the action that should be performed. The PieMenu also supports submenus, as seen in this sample.</p>
<p>The cursor can operate in two modes: mouse-friendly and gamepad friendly. In the mouse friendly mode, the menu options are selected with the cursor, while in gamepad friendly mode, they are selected with the left thumbstick.</p>
<p>The current sample contains the following menus:</p>
<ul>
<li>Change Gamerpic: allows navigation through a series of submenus, to select a gamerpic that will be displayed in the window</li>
<li>Change Background Color: randomly chooses a new background color</li>
<li>Toggle Input Mode: toggles between the mouse and gamepad friendly input modes. Default is mouse, so if you don’t have a gamepad, don’t worry.</li>
<li>Exit : exits the sample.</li>
</ul>
<p>This is just as an example. The menu can be easily customized. Also, the Cursor.ShowPieMenu() function has an overload that allows you to specify the menu that will be shown. This allows for different menus, depending on the selected object (this is NOT illustrated in this sample)</p>
<p>Controls:</p>
<ul>
<li>Gamepad A or Mouse Click : open menu, or selected submenu</li>
<li>Gamepad B, or Mouse Click when no submenu selected: return to upper menu / exit menu</li>
</ul>
<p>You can find the sample <a href="http://www.sgtconker.co.uk/Downloads/articles/PieMenu.zip">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sgtconker.com/2009/10/article-pie-menu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
