  <?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>Athanazio &#187; xna</title>
	<atom:link href="http://www.athanazio.com/tag/xna/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.athanazio.com</link>
	<description>Nada é Simples, Mas Tudo é Possível</description>
	<lastBuildDate>Thu, 01 Dec 2011 03:47:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>3o xna challenge &#8211; finalistas etapa 1</title>
		<link>http://www.athanazio.com/2009/03/09/3o-xna-challenge-finalistas-etapa-1/</link>
		<comments>http://www.athanazio.com/2009/03/09/3o-xna-challenge-finalistas-etapa-1/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 19:57:40 +0000</pubDate>
		<dc:creator>athanazio</dc:creator>
				<category><![CDATA[trecos]]></category>
		<category><![CDATA[etapa 1]]></category>
		<category><![CDATA[finalista]]></category>
		<category><![CDATA[xna]]></category>
		<category><![CDATA[xna challenge]]></category>

		<guid isPermaLink="false">http://www.vacavitoria.com/?p=58</guid>
		<description><![CDATA[Ueba ! a equipe do VVG (vaca vitoria games) esta na segunda fase do Xna Challenge, vamos caminhando !!]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>Ueba ! a equipe do VVG (vaca vitoria games) esta na segunda fase do Xna Challenge, vamos caminhando !!<br />
<a href="http://www.athanazio.com/wp-content/uploads/2009/03/xna-challenge.png"><img src="http://www.vacavitoria.com/wp-content/uploads/2009/03/xna-challenge-300x236.png" alt="xna-challenge" title="xna-challenge" width="300" height="236" class="alignnone size-medium wp-image-59" /></a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.athanazio.com/2009/03/09/3o-xna-challenge-finalistas-etapa-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>c# xna lendo mapas</title>
		<link>http://www.athanazio.com/2009/01/15/c-xna-lendo-mapas/</link>
		<comments>http://www.athanazio.com/2009/01/15/c-xna-lendo-mapas/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 02:55:48 +0000</pubDate>
		<dc:creator>athanazio</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[contentmanager]]></category>
		<category><![CDATA[contentpipeline]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[xna]]></category>

		<guid isPermaLink="false">http://www.athanazio.com/?p=1576</guid>
		<description><![CDATA[Pelo que estou estudando, entendi que ateh consigo ler arquivos externos ao programa usando a classe StreamReader, mas quando o build do projeto for feito vai ter dependência que o arquivo exista fora do executável e não tenho a menor idéia de como referenciar o sistema de arquivo do Xbox por exemplo. Assim sendo tem [...]]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>Pelo que estou estudando, entendi que ateh consigo ler arquivos externos ao programa usando a classe StreamReader, mas quando o build do projeto for feito vai ter dependência que o arquivo exista fora do executável e não tenho a menor idéia de como referenciar o sistema de arquivo do Xbox por exemplo.</p>
<p>Assim sendo tem a tal da pasta content no projeto do jogo, dando add em itens nesta pasta, eles podem ser carregados pelo ContentManager !! mor legal.</p>
<p>No meu caso preciso carregar arquivos de mapa que gerei que contém um monte de zeros e uns, algo do tipo :</p>
<p><code>111111111111111111111111111111<br />
100000000001100000000000000001<br />
101111111111101111111111111101<br />
101111111111101111111111111101<br />
100000000001100001100001100001<br />
101111111101111101101101101111<br />
101111111101111101101101101111<br />
100000001101100001101101100001<br />
</code></p>
<p>entaum seguindo alguns tutoriais, entendi que precisava escrever um contentimporter, para que o xna soubesse como transformar meu belo arquivo em objetos usaveis.</p>
<p>segui o tutorial e criei um Content PipeLine Extension Library dentro da mesma solution do jogo<br />
<img src="http://www.athanazio.com/wp-content/uploads/2009/01/content-pipeline.jpg" alt="" title="content-pipeline" width="272" height="247" class="alignnone size-full wp-image-1577" /></p>
<p>e criei a classe MapFilesImporter</p>
<p>using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using Microsoft.Xna.Framework;<br />
using Microsoft.Xna.Framework.Graphics;<br />
using Microsoft.Xna.Framework.Content.Pipeline;<br />
using Microsoft.Xna.Framework.Content.Pipeline.Graphics;<br />
using Microsoft.Xna.Framework.Content.Pipeline.Processors;</p>
<p>using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler;<br />
using Microsoft.Xna.Framework.Content;</p>
<p>using System.IO;</p>
<p>namespace MapFilesContentPipeLine<br />
{<br />
    [ContentImporter(".maze", DisplayName = "Map Files - ChikenMaze")]<br />
    public class MapFilesImporter : ContentImporter<Boolean[,]><br />
    {</p>
<p>        public override Boolean[,] Import(string filename,<br />
                                             ContentImporterContext context)<br />
        {<br />
            FileStream stream = File.OpenRead(filename);<br />
            StreamReader reader = new StreamReader(stream);<br />
            List<List<Boolean>> buffer = new List<List<bool>>();</p>
<p>            string line = reader.ReadLine();<br />
            while (line != null)<br />
            {</p>
<p>                List<Boolean> bufferLine = new List<bool>();<br />
                foreach (char one in line)<br />
                {<br />
                    bufferLine.Add(one == &#8217;1&#8242; ? true : false);<br />
                }<br />
                buffer.Add(bufferLine);<br />
                line = reader.ReadLine();<br />
            }</p>
<p>            Boolean[,] result = new Boolean[buffer.Count, buffer[0].Count];<br />
            int row = 0;<br />
            int col = 0;</p>
<p>            // copy data to the matrix<br />
            foreach (List<bool> onelist in buffer)<br />
            {<br />
                foreach (Boolean spot in onelist)<br />
                {<br />
                    result[row, col] = spot;<br />
                    col++;<br />
                }<br />
                row++;<br />
                col = 0;<br />
            }</p>
<p>            return result;<br />
        }</p>
<p>    }<br />
}</p>
<p>Lembrando é claro de fazer referência ao projeto to content pipeline tanto no projeto do jogo, quanto nas referências da pasta content, isto me rendeu um tempão para perceber &#8230; hehehehe</p>
<p><img src="http://www.athanazio.com/wp-content/uploads/2009/01/references-to-the-content-pipe-line.jpg" alt="" title="references-to-the-content-pipe-line" width="500" height="530" class="alignnone size-full wp-image-1578" /></p>
<p>dai tive a surpresa legal &#8230;<br />
<strong>Error	1	Building content threw RankException: Cannot serialize multidimensional arrays.<br />
</strong>po custava saber serializar arrays multidimensionais ?? =)</p>
<p>bem vou ter que mudar um pouco a estratégia de carregar os mapas, jah vi que vou precisar de um tipo de dados mais simplim que um array multidimensional de booleanos, pow mais simples que isso !! hehehehe, vou criar algo do tipo MapDefinition com as strings das linhas e um método para transformar na famigerada matriz de booleanos.</p>
<p>então refiz a classe de importar o formato de arquivo que tenho, novinha em folha !<br />
comparando com a anterior, nesta mudei o display name para poder verificar se estava usando a nova implementação (danado desconfiado huahuahuuah) e passei a retornar List<string> para os intimos conhecida como lista de tamanho variável de string.</p>
<p>using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using Microsoft.Xna.Framework;<br />
using Microsoft.Xna.Framework.Graphics;<br />
using Microsoft.Xna.Framework.Content.Pipeline;<br />
using Microsoft.Xna.Framework.Content.Pipeline.Graphics;<br />
using Microsoft.Xna.Framework.Content.Pipeline.Processors;</p>
<p>using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler;<br />
using Microsoft.Xna.Framework.Content;</p>
<p>using System.IO;</p>
<p>namespace MapFilesContentPipeLine<br />
{<br />
    [ContentImporter(".maze", DisplayName = "Map Files - ChikenMaze (List<string>)")]<br />
    public class MapFilesImporter : ContentImporter<List<string>><br />
    {</p>
<p>        public override List<string> Import(string filename,<br />
                                             ContentImporterContext context)<br />
        {<br />
            FileStream stream = File.OpenRead(filename);<br />
            StreamReader reader = new StreamReader(stream);<br />
            List<string> buffer = new List<string>();</p>
<p>            string line = reader.ReadLine();<br />
            while (line != null)<br />
            {<br />
                buffer.Add(line);<br />
                line = reader.ReadLine();<br />
            }</p>
<p>            return buffer;<br />
        }</p>
<p>    }<br />
}</p>
<p>com esta novidade precisei alterar um pouco a classe que gerencia os mapas para poder converter de List<string> para Boolean[,] olha como ficou o trecho que carrega o mapa e o conversor de um tipo para o outro.</p>
<p>        public Map getMap(int level)<br />
        {<br />
            // ok ok in one line would be cooler =)<br />
            // Boolean[,] map = ListString2MatrixBoolean(scene.game.Content.Load<List<string>>(getMapName(level)));<br />
            //<br />
            // but this way we can read easily at 4:30AM<br />
            //<br />
            string filename = getMapName(level);<br />
            List<string> buffer = scene.game.Content.Load<List<string>>(filename);<br />
            Boolean[,] map = ListString2MatrixBoolean(buffer);<br />
            return new Map(this.scene, map);<br />
        }</p>
<p>        public Boolean[,] ListString2MatrixBoolean(List<string> list)<br />
        {<br />
            Boolean[,] result = new Boolean[list.Count, list[0].Length];<br />
            int row = 0;<br />
            int col = 0;</p>
<p>            foreach (string line in list) {<br />
                foreach (char one in line)<br />
                {<br />
                    result[row, col] = (one == &#8217;1&#8242; ? true : false);<br />
                    col++;<br />
                }<br />
                row++;<br />
                col = 0;<br />
            }</p>
<p>            return result;<br />
        }</p>
<p>ultimo comentario para os desesperados que leram até o final, uma pena que minha mãe não programa em c# !! ela estaria lendo tudinho !! huahuahuhua</p>
<p>quando fizer referência ao arquivo a ser carregado nao inclua a extensão, eu estava buscando por maze_10_10.maze e recebendo o erro de &#8220;file not found&#8221;, resolvi fazer do mesmo jeito que estava fazendo com os arquivos de imagens e todos ficaram felizes, basta uasr o nome sem extensão.</p>
<p>olha que bela imagem da galinha andando num mapa carregado do arquivo !!<br />
<a href="http://www.athanazio.com/wp-content/uploads/2009/01/galinha-no-mapa-carregado-do-arquivo.jpg"><img src="http://www.athanazio.com/wp-content/uploads/2009/01/galinha-no-mapa-carregado-do-arquivo-386x300.jpg" alt="" title="galinha-no-mapa-carregado-do-arquivo" width="386" height="300" class="alignnone size-medium wp-image-1581" /></a></p>
<p>link para os tutoriais</p>
<p>Custom Content Importer with XNA 2.0<br />
<a href="http://www.ziggyware.com/readarticle.php?article_id=166">http://www.ziggyware.com/readarticle.php?article_id=166</a></p>
<p>Using a Custom Importer or Content Processor<br />
<a href="http://msdn.microsoft.com/en-us/library/bb447743(XNAGameStudio.20).aspx">http://msdn.microsoft.com/en-us/library/bb447743(XNAGameStudio.20).aspx</a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.athanazio.com/2009/01/15/c-xna-lendo-mapas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>c# xna criação de cenas e scroll de mapa</title>
		<link>http://www.athanazio.com/2009/01/11/c-xna-criacao-de-cenas-e-scroll-de-mapa/</link>
		<comments>http://www.athanazio.com/2009/01/11/c-xna-criacao-de-cenas-e-scroll-de-mapa/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 20:00:51 +0000</pubDate>
		<dc:creator>athanazio</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[call you dont call me]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[event handler]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[handler]]></category>
		<category><![CDATA[Scene]]></category>
		<category><![CDATA[xna]]></category>

		<guid isPermaLink="false">http://www.athanazio.com/?p=1560</guid>
		<description><![CDATA[Uai ! em ateh map scroll hehehe, bem parte das minhas reflexões sobre a forma de implementar o jogo estão se materalizando, criei o conceito de cena, contendo o gerenciador de eventos e deslocamento da tela para permitir o scroll da tela de fundo. o primeiro detalhe eh a classe Scene em si que em [...]]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>Uai ! em ateh map scroll hehehe, bem parte das minhas reflexões <a href="http://www.athanazio.com/2009/01/07/ideias-em-game-coding-design/">sobre a forma de implementar o jogo</a> estão se materalizando, criei o conceito de cena, contendo o gerenciador de eventos e deslocamento da tela para permitir o scroll da tela de fundo.</p>
<p>o primeiro detalhe eh a classe Scene em si</p>
<p>using System;<br />
using System.Collections.Generic;<br />
using System.Text;</p>
<p>using Microsoft.Xna.Framework;<br />
using Microsoft.Xna.Framework.Content;<br />
using Microsoft.Xna.Framework.Graphics;</p>
<p>namespace ChickenMaze<br />
{<br />
    public abstract class Scene<br />
    {<br />
        public Game game;<br />
        public EventManager eventManager;<br />
        public int X;<br />
        public int Y;</p>
<p>        public Scene(Game game, EventManager eventManager)<br />
        {<br />
            this.game= game;<br />
            this.eventManager= eventManager;<br />
            this.X = 0;<br />
            this.Y = 0;<br />
        }</p>
<p>        public abstract void Initialize();<br />
        public abstract void LoadContent();<br />
        public abstract void Draw(GameTime gameTime, SpriteBatch spriteBatch);</p>
<p>    }<br />
}</p>
<p>que em alguns aspectos tentei manter o design semelhante a classe Game, com excessão do método Draw que adicionei o objeto spriteBatch sendo passado como parâmetro para evitar esta complexidade na cena atual, assim na classe Game principal do jogo um objeto scene é criado, e ao executar initialize, loadcontent e draw os respectivos metodos da Scene corrente serão chamados.</p>
<p>Esta abaixo eh a SceneMainMaze que determina os detalhes especificos do jogo, como sprite que vai ser usado como personagem, mapa e tratadores de eventos, note que a implementação dos eventos fica separada deste código.</p>
<p>using System;<br />
using System.Collections.Generic;<br />
using System.Text;</p>
<p>using Microsoft.Xna.Framework;<br />
using Microsoft.Xna.Framework.Content;<br />
using Microsoft.Xna.Framework.Graphics;</p>
<p>namespace ChickenMaze<br />
{<br />
    class SceneMainMaze : Scene<br />
    {<br />
        Sprite chicken;<br />
        Map map;</p>
<p>        public SceneMainMaze(Game game, EventManager eventManager)<br />
            : base(game, eventManager)<br />
        {</p>
<p>        }</p>
<p>        public override void Initialize(){</p>
<p>            map = new Map(this);<br />
            chicken = new Sprite(&#8220;chicken&#8221;, this);<br />
            chicken.Position = map.GetFirstFreeSpot();<br />
            chicken.SetMap(map);</p>
<p>            eventManager.addHandler(new EventCantMoveHere(this));<br />
            eventManager.addHandler(new EventKeyboardLeft(this, chicken, map));<br />
            eventManager.addHandler(new EventKeyboardRight(this, chicken, map));<br />
            eventManager.addHandler(new EventKeyboardUp(this, chicken, map));<br />
            eventManager.addHandler(new EventKeyboardDown(this, chicken, map));<br />
            eventManager.addHandler(new EventNeedScrollMap(this, chicken, map ));<br />
        }</p>
<p>        public override void LoadContent()<br />
        {<br />
            chicken.LoadContent(game.Content);<br />
            map.LoadContent(game.Content);<br />
        }</p>
<p>        public override void Draw(GameTime gameTime, SpriteBatch spriteBatch)<br />
        {<br />
            Color color = new Color(0, 136, 0);<br />
            game.GraphicsDevice.Clear(color);</p>
<p>            map.Draw(spriteBatch);<br />
            chicken.Draw(spriteBatch);<br />
        }<br />
    }<br />
}</p>
<p>Então o trecho abaixo mostra como os eventos são registrados para que ao serem disparados, o tipo de evento é testado e em seguida o métido run() dos eventos é executado</p>
<p>            eventManager.addHandler(new EventKeyboardDown(this, chicken, map));<br />
            eventManager.addHandler(new EventNeedScrollMap(this, chicken, map ));</p>
<p>O código abaixo é o tratador de eventos para quando o scroll de mapa eh necessário</p>
<p>using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Text;<br />
using Microsoft.Xna.Framework.Graphics;<br />
using Microsoft.Xna.Framework;<br />
using Microsoft.Xna.Framework.Audio;<br />
using Microsoft.Xna.Framework.Content;<br />
using Microsoft.Xna.Framework.GamerServices;<br />
using Microsoft.Xna.Framework.Input;<br />
using Microsoft.Xna.Framework.Media;<br />
using Microsoft.Xna.Framework.Net;<br />
using Microsoft.Xna.Framework.Storage;</p>
<p>namespace ChickenMaze<br />
{<br />
    class EventNeedScrollMap: EventHandler<br />
    {<br />
        protected Sprite sprite;<br />
        protected Map map;</p>
<p>        protected int HorizontalBorderLimit;<br />
        protected int VerticalBorderLimit; </p>
<p>        const byte BORDER_DIVISION_INDEX = 4;</p>
<p>        public EventNeedScrollMap(Scene scene, Sprite sprite, Map map)<br />
            : base(EventHandler.EventType.SPRITE_MOVED, scene)<br />
        {<br />
            this.sprite = sprite;<br />
            this.map = map;</p>
<p>            HorizontalBorderLimit = scene.game.GraphicsDevice.Viewport.Width / BORDER_DIVISION_INDEX;<br />
            VerticalBorderLimit = scene.game.GraphicsDevice.Viewport.Height / BORDER_DIVISION_INDEX;<br />
        }</p>
<p>        ///<br />
<summary>
        /// if the sprite is close to the border of the viewport,<br />
        /// for each direction of the movement change the viewport<br />
        /// of the GraphicsDevice<br />
        /// </summary>
<p>        ///
<param name="source"></param>
        public override void run(Object source) {</p>
<p>            int SceneShift = sprite.speed;<br />
            int x = (int)sprite.Position.X &#8211; scene.X;<br />
            int y = (int)sprite.Position.Y &#8211; scene.Y;</p>
<p>            // into left limit<br />
            if (x < scene.game.GraphicsDevice.Viewport.X + HorizontalBorderLimit)<br />
            {<br />
                if (scene.X - SceneShift > 0)<br />
                {<br />
                    scene.X -= SceneShift;<br />
                }<br />
            }</p>
<p>            // into right limit<br />
            if (x > scene.game.GraphicsDevice.Viewport.X<br />
                    + scene.game.GraphicsDevice.Viewport.Width &#8211; HorizontalBorderLimit)<br />
            {<br />
                scene.X += SceneShift;<br />
            }</p>
<p>            // into top limit<br />
            if (y < scene.game.GraphicsDevice.Viewport.Y + VerticalBorderLimit)<br />
            {<br />
                if (scene.Y - SceneShift > 0)<br />
                {<br />
                    scene.Y -= SceneShift;<br />
                }<br />
            }</p>
<p>            // into bottom limit<br />
            if (y > scene.game.GraphicsDevice.Viewport.Y<br />
                    + scene.game.GraphicsDevice.Viewport.Height &#8211; VerticalBorderLimit)<br />
            {<br />
                scene.Y += SceneShift;<br />
            }</p>
<p>        }</p>
<p>    }<br />
}</p>
<p>Desta maneira tratadores de evento podem ser facilmente reaproveitados entre jogos, e inclusive escrever código para realizar testes destes tratadores.</p>
<p>os próximos passos são :</p>
<ul>
<li>carregar o mapa de uma arquivo</li>
<li>determinar que a galinha chegou no fim do mapa e criar evento para isto</li>
<li>adicionar sons
</li>
<li>adicionar timer na tela
</li>
<li>adicionar os marcadores de labirinto com ovos (1 ovo a cada 10 segundos com duração de 60 segundos cada)
</li>
<li>adciionar cena de tela inicial
</li>
<li>adicionar cena de pontuação
</li>
<ul>
</ul>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.athanazio.com/2009/01/11/c-xna-criacao-de-cenas-e-scroll-de-mapa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>xna uma lista de tutoriais</title>
		<link>http://www.athanazio.com/2009/01/11/xna-uma-lista-de-tutoriais/</link>
		<comments>http://www.athanazio.com/2009/01/11/xna-uma-lista-de-tutoriais/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 17:11:20 +0000</pubDate>
		<dc:creator>athanazio</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[agressors]]></category>
		<category><![CDATA[alien]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[xna]]></category>

		<guid isPermaLink="false">http://www.athanazio.com/?p=1556</guid>
		<description><![CDATA[http://www.nickontech.com/archive/#alienaggressors e tem um pdf em especial que eh um passo a passo de um jogo completo em xna http://www.nickontech.com/archive/AlienAggressors/AlienAggressors.pdf]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p><a href="http://www.nickontech.com/archive/#alienaggressors">http://www.nickontech.com/archive/#alienaggressors</a></p>
<p>e tem um pdf em especial que eh um passo a passo de um jogo completo em xna<br />
<a href="http://www.nickontech.com/archive/AlienAggressors/AlienAggressors.pdf">http://www.nickontech.com/archive/AlienAggressors/AlienAggressors.pdf</a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.athanazio.com/2009/01/11/xna-uma-lista-de-tutoriais/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>c# xna mudando a fonte e o tamanho</title>
		<link>http://www.athanazio.com/2009/01/11/c-xna-mudando-a-fonte-e-o-tamanho/</link>
		<comments>http://www.athanazio.com/2009/01/11/c-xna-mudando-a-fonte-e-o-tamanho/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 03:10:03 +0000</pubDate>
		<dc:creator>athanazio</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[drawstring]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[Spritefont]]></category>
		<category><![CDATA[xna]]></category>

		<guid isPermaLink="false">http://www.athanazio.com/?p=1548</guid>
		<description><![CDATA[usando o tal do Spritefont descobri que o tamanho da fonte fica definido neste xml que tem o mapeamento da fonte para o aplicativo, provavelmente porque rola algo de gerar as imagens da fonte para a exibição, dai fica definido o tamanho, e no mesmo xml é possivel trocar o nome da fonte também. segundo [...]]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>usando o tal do Spritefont descobri que o tamanho da fonte fica definido neste xml que tem o mapeamento da fonte para o aplicativo, provavelmente porque rola algo de gerar as imagens da fonte para a exibição, dai fica definido o tamanho, e no mesmo xml é possivel trocar o nome da fonte também.</p>
<pre class="brush: xml; title: ; notranslate">
    &lt;FontName&gt;Kootenay&lt;/FontName&gt;

    &lt;Size&gt;12&lt;/Size&gt;
</pre>
<p>segundo a microsoft, <a href="http://msdn.microsoft.com/en-us/library/bb447673.aspx ">http://msdn.microsoft.com/en-us/library/bb447673.aspx<br />
</a>, as fontes que podem ser distribuídas de grátis com os jogos são:</p>
<ul>
<li>Kooten.ttf</li>
<li>Linds.ttf</li>
<li>Miramo.ttf</li>
<li>Bold Miramob.ttf</li>
<li>Peric.ttf</li>
<li>Pericl.ttf</li>
<li>Pesca.ttf</li>
<li>Pescab.ttf</li>
</ul>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.athanazio.com/2009/01/11/c-xna-mudando-a-fonte-e-o-tamanho/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>c# xna fontes e movimento</title>
		<link>http://www.athanazio.com/2009/01/11/c-xna-fontes-e-movimento/</link>
		<comments>http://www.athanazio.com/2009/01/11/c-xna-fontes-e-movimento/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 03:03:29 +0000</pubDate>
		<dc:creator>athanazio</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[trecos]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[drawstring]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[movimento]]></category>
		<category><![CDATA[Spritefont]]></category>
		<category><![CDATA[xna]]></category>

		<guid isPermaLink="false">http://www.athanazio.com/?p=1544</guid>
		<description><![CDATA[Em minha exploração atual enfrentei algumas duvidas que foram interessantes: ao movimentar o personagem pela tela os movimentos para baixo e para a a direita nao permitiam que o personagem ficasse colado no obstáculo, mantendo sempre uma certa distância, e o segundo que ocorreu logo apos quando tentei exibir no personagem a posicao na tela, [...]]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>Em minha exploração atual enfrentei algumas duvidas que foram interessantes: ao movimentar o personagem pela tela os movimentos para baixo e para a a direita nao permitiam que o personagem ficasse colado no obstáculo, mantendo sempre uma certa distância, e o segundo que ocorreu logo apos quando tentei exibir no personagem a posicao na tela, que foi como carregar e exibir texto.</p>
<p>vamos por partes, esta tela abaixo mostra o resultado do esforço de debugar o movimento do personagem na tela, exibindo a posição atual na janela<br />
<a href="http://www.athanazio.com/wp-content/uploads/2009/01/fontes-e-movimento.jpg"><img src="http://www.athanazio.com/wp-content/uploads/2009/01/fontes-e-movimento-384x300.jpg" alt="" title="fontes-e-movimento" width="384" height="300" class="alignnone size-medium wp-image-1543" /></a></p>
<p>e depois na interface escolha Spritefont<br />
<a href="http://www.athanazio.com/wp-content/uploads/2009/01/spritefont.jpg"><img src="http://www.athanazio.com/wp-content/uploads/2009/01/spritefont-443x300.jpg" alt="" title="spritefont" width="443" height="300" class="alignnone size-medium wp-image-1546" /></a></p>
<p>primeiro quanto a discussão do movimento para baixo e para a direita, o trecho de código abaixo mostra como fiz a implementação dos tratadores de eventos isolada da implementação do Sprite e do bloco principal</p>
<p>using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using System.Text;<br />
using Microsoft.Xna.Framework;</p>
<p>namespace ChickenMaze<br />
{<br />
    class EventKeyboardDown: EventHandler<br />
    {<br />
        protected Sprite sprite;<br />
        protected Map map;</p>
<p>        public EventKeyboardDown(EventManager manager, Sprite sprite, Map map)<br />
            : base(EventHandler.EventType.KEYBOARD_DOWN, manager)<br />
        {<br />
            this.sprite = sprite;<br />
            this.map = map;<br />
        }</p>
<p>        public override void run(Object source) {</p>
<p>            int x = (int)sprite.Position.X;<br />
            int y = (int)sprite.Position.Y + sprite.speed;</p>
<p>            if (map.IsAvailable(x + sprite.GetWidth()-1, y + sprite.GetHeight()-1)<br />
                &#038;&#038; map.IsAvailable(x, y + sprite.GetHeight()-1))<br />
            {<br />
                sprite.Position.Y = y;<br />
            }<br />
            else<br />
            {<br />
                manager.trigger(this, EventHandler.EventType.CANT_MOVE_THERE);<br />
            }</p>
<p>        }</p>
<p>    }<br />
}</p>
<p>A chave da solução do problema esta no fato de comparar os pontos -1 hehehe bobagem pura da minha parte, porque se estou por exemplo no ponto 60 e somo 60 com certeza nao vou poder colocar este ponto numa posicao 120 porque 60+60 = 120 e estando 120 ocupado a resposta vai ser sempre, ok, ali nao pode, mas se faço a comparação com -1 ai sim vou testar o ultimo pixel do bloco que estou movimentando.</p>
<p>Outra questão é desenhar o texto, que não teve mistério, o mistério foi descobrir como carregar a fonte <img src='http://www.athanazio.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  o trecho abaixo exibe o texto </p>
<p>        public static void DrawText(string text, Vector2 position)<br />
        {<br />
            spriteBatch.DrawString(spriteFont, text, position, Color.White);<br />
        }</p>
<p>e para carregar uma fonte basta criar uma nova sprite font que eh uma referencia dentro do projeto para uma fonte que vai ser carregada na hora de gerar o projeto para deploy, clique com o botão direito em content conforme a figura abaixo</p>
<p><a href="http://www.athanazio.com/wp-content/uploads/2009/01/content-add-new-item.jpg"><img src="http://www.athanazio.com/wp-content/uploads/2009/01/content-add-new-item.jpg" alt="" title="content-add-new-item" width="386" height="166" class="alignnone size-full wp-image-1545" /></a></p>
<p>e no codigo fonte faça referência ao Spritefont criado</p>
<p>            spriteFont = Content.Load<SpriteFont>(&#8220;SpriteFont1&#8243;);</p>
<p>agora vou empacotar o pxóximo post trocando a caixinha amarela pela galinha e preparar as explicações de como foi organizado o código <img src='http://www.athanazio.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.athanazio.com/2009/01/11/c-xna-fontes-e-movimento/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>c# xna varios docs sobre graficos 2D</title>
		<link>http://www.athanazio.com/2009/01/10/c-xna-varios-docs-sobre-graficos-2d/</link>
		<comments>http://www.athanazio.com/2009/01/10/c-xna-varios-docs-sobre-graficos-2d/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 20:21:59 +0000</pubDate>
		<dc:creator>athanazio</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[2d]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[draw]]></category>
		<category><![CDATA[line]]></category>
		<category><![CDATA[xna]]></category>

		<guid isPermaLink="false">http://www.athanazio.com/?p=1537</guid>
		<description><![CDATA[http://msdn.microsoft.com/en-us/library/bb194906.aspx]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p><a href="http://msdn.microsoft.com/en-us/library/bb194906.aspx">http://msdn.microsoft.com/en-us/library/bb194906.aspx</a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.athanazio.com/2009/01/10/c-xna-varios-docs-sobre-graficos-2d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>c# xna movendo o sprite na tela</title>
		<link>http://www.athanazio.com/2009/01/10/c-xna-movendo-o-sprite-na-tela/</link>
		<comments>http://www.athanazio.com/2009/01/10/c-xna-movendo-o-sprite-na-tela/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 19:45:56 +0000</pubDate>
		<dc:creator>athanazio</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[move]]></category>
		<category><![CDATA[sprite]]></category>
		<category><![CDATA[xna]]></category>

		<guid isPermaLink="false">http://www.athanazio.com/?p=1538</guid>
		<description><![CDATA[bem ainda não é quase nada, mas pelo menos os sprite esta se movendo na tela =) Tem a classe Sprite que eh uma variação da classe usada em http://www.xnadevelopment.com/tutorials/thewizard/theWizard.shtml e a classe principal do jogo em si Game1. o que acontece eh que no método update() da classe do jogo verifico o estado do [...]]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>bem ainda não é quase nada, mas pelo menos os sprite esta se movendo na tela =)<br />
<a href="http://www.athanazio.com/wp-content/uploads/2009/01/movendo-o-sprite.jpg"><img src="http://www.athanazio.com/wp-content/uploads/2009/01/movendo-o-sprite-384x300.jpg" alt="" title="movendo-o-sprite" width="384" height="300" class="alignnone size-medium wp-image-1539" /></a></p>
<p>Tem a classe Sprite que eh uma variação da classe usada em <a href="http://www.xnadevelopment.com/tutorials/thewizard/theWizard.shtml">http://www.xnadevelopment.com/tutorials/thewizard/theWizard.shtml</a> e a classe principal do jogo em si Game1.</p>
<p>o que acontece eh que no método update() da classe do jogo verifico o estado do teclado e de acordo com este estado chamo métodos do objeto chicken para mover pela tela.</p>
<p>using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using Microsoft.Xna.Framework;<br />
using Microsoft.Xna.Framework.Audio;<br />
using Microsoft.Xna.Framework.Content;<br />
using Microsoft.Xna.Framework.GamerServices;<br />
using Microsoft.Xna.Framework.Graphics;<br />
using Microsoft.Xna.Framework.Input;<br />
using Microsoft.Xna.Framework.Media;<br />
using Microsoft.Xna.Framework.Net;<br />
using Microsoft.Xna.Framework.Storage;</p>
<p>namespace ChickenMaze<br />
{<br />
    public class Game1 : Microsoft.Xna.Framework.Game<br />
    {<br />
        GraphicsDeviceManager graphics;<br />
        SpriteBatch spriteBatch;<br />
        Sprite chicken;</p>
<p>        public Game1()<br />
        {<br />
            graphics = new GraphicsDeviceManager(this);<br />
            Content.RootDirectory = &#8220;Content&#8221;;<br />
        }</p>
<p>        protected override void Initialize()<br />
        {<br />
            chicken = new Sprite(&#8220;chicken&#8221;);<br />
            base.Initialize();<br />
        }</p>
<p>        protected override void LoadContent()<br />
        {<br />
            spriteBatch = new SpriteBatch(GraphicsDevice);<br />
            chicken.LoadContent(this.Content);<br />
        }</p>
<p>        protected override void UnloadContent()<br />
        {<br />
        }</p>
<p>        protected override void Update(GameTime gameTime)<br />
        {<br />
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)<br />
                this.Exit();</p>
<p>            UpdateKeyboard(Keyboard.GetState());<br />
            base.Update(gameTime);<br />
        }</p>
<p>        public void UpdateKeyboard(KeyboardState keyboardState)<br />
        { </p>
<p>            if( keyboardState.IsKeyDown(Keys.Left)){<br />
                chicken.Left();<br />
            }</p>
<p>            if (keyboardState.IsKeyDown(Keys.Right))<br />
            {<br />
                chicken.Right();<br />
            }</p>
<p>            if (keyboardState.IsKeyDown(Keys.Down))<br />
            {<br />
                chicken.Down();<br />
            }</p>
<p>            if (keyboardState.IsKeyDown(Keys.Up))<br />
            {<br />
                chicken.Up();<br />
            }</p>
<p>        }</p>
<p>        protected override void Draw(GameTime gameTime)<br />
        {<br />
            GraphicsDevice.Clear(Color.CornflowerBlue);<br />
            spriteBatch.Begin();<br />
            chicken.Draw(spriteBatch);<br />
            spriteBatch.End();<br />
            base.Draw(gameTime);<br />
        }<br />
    }<br />
}</p>
<p>e na classe Sprite esta a carga da imagem e posicionamento da imagem na hora do desenho.</p>
<p>using System;<br />
using System.Collections.Generic;<br />
using System.Text;</p>
<p>using Microsoft.Xna.Framework;<br />
using Microsoft.Xna.Framework.Content;<br />
using Microsoft.Xna.Framework.Graphics;</p>
<p>namespace ChickenMaze<br />
{<br />
    class Sprite<br />
    {<br />
        private int speed = 5;<br />
        private string assetName;</p>
<p>        public Sprite(string assetName)<br />
        {<br />
            this.assetName = assetName;<br />
        }</p>
<p>        //The current position of the Sprite<br />
        public Vector2 Position = new Vector2(0,0);</p>
<p>        //The texture object used when drawing the sprite<br />
        private Texture2D mSpriteTexture;</p>
<p>        //Load the texture for the sprite using the Content Pipeline<br />
        public void LoadContent(ContentManager theContentManager)<br />
        {<br />
            mSpriteTexture = theContentManager.Load<Texture2D>(this.assetName);<br />
        }</p>
<p>        //Draw the sprite to the screen<br />
        public void Draw(SpriteBatch theSpriteBatch)<br />
        {<br />
            theSpriteBatch.Draw(mSpriteTexture, Position, Color.White);<br />
        }</p>
<p>        public void Left()<br />
        {<br />
            Position.X -= speed;<br />
        }</p>
<p>        public void Right()<br />
        {<br />
            Position.X += speed;<br />
        }</p>
<p>        public void Down()<br />
        {<br />
            Position.Y += speed;<br />
        }</p>
<p>        public void Up()<br />
        {<br />
            Position.Y -= speed;<br />
        }</p>
<p>    }<br />
}</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.athanazio.com/2009/01/10/c-xna-movendo-o-sprite-na-tela/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xna scene graph tutorial</title>
		<link>http://www.athanazio.com/2009/01/07/xna-scene-graph-tutorial/</link>
		<comments>http://www.athanazio.com/2009/01/07/xna-scene-graph-tutorial/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 11:39:29 +0000</pubDate>
		<dc:creator>athanazio</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[xna]]></category>

		<guid isPermaLink="false">http://www.athanazio.com/?p=1521</guid>
		<description><![CDATA[bem interessante o tutorial &#8230; http://www.ziggyware.com/readarticle.php?article_id=130]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>bem interessante o tutorial &#8230;</p>
<p><a href="http://www.ziggyware.com/readarticle.php?article_id=130">http://www.ziggyware.com/readarticle.php?article_id=130</a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.athanazio.com/2009/01/07/xna-scene-graph-tutorial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>idéias em game coding design</title>
		<link>http://www.athanazio.com/2009/01/07/ideias-em-game-coding-design/</link>
		<comments>http://www.athanazio.com/2009/01/07/ideias-em-game-coding-design/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 04:57:32 +0000</pubDate>
		<dc:creator>athanazio</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[event handler]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[handle]]></category>
		<category><![CDATA[handler]]></category>
		<category><![CDATA[ideias]]></category>
		<category><![CDATA[projeto]]></category>
		<category><![CDATA[rascinhos]]></category>
		<category><![CDATA[xna]]></category>

		<guid isPermaLink="false">http://www.athanazio.com/?p=1513</guid>
		<description><![CDATA[ontem pela manhã apertado no ônibus, parece que tenho um imã para gente que ocupa espaço !! fui pensando em algumas idéias sobre a implementação de um jogo, e apartir de alguns rascunhos veja que idéias interessante usar o conceito de cena, não sei ainda se o XNA oferece isto &#8230; e inicialmente possuir as [...]]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>ontem pela manhã apertado no ônibus, parece que tenho um imã para gente que ocupa espaço !! fui pensando em algumas idéias sobre a implementação de um jogo, e apartir de alguns rascunhos veja que idéias interessante</p>
<p><img class="alignnone size-full wp-image-1514" title="game_deisgn_draft_01" src="http://www.athanazio.com/wp-content/uploads/2009/01/game_deisgn_draft_01.jpg" alt="" width="246" height="271" /></p>
<p>usar o conceito de cena, não sei ainda se o XNA oferece isto &#8230; e inicialmente possuir as seguintes cenas :</p>
<ul>
<li>abertura</li>
<li>início de fase</li>
<li>jogo</li>
<li>fim de fase</li>
<li>fim de jogo</li>
</ul>
<p>com estas cenas um jogo básico jah pode ser feito com um mínimo de interação, alem disto para cada cena é necessário definir um viewport do que esta sendo exibido facilitando assim scrolling de tela e coisas assim, de novo preciso investigar no XNA se tem isto <img src='http://www.athanazio.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>lembro que preciso também de alguma forma registrar os eventos que cada cena podem ter&#8230; isto vai ajudar &#8230;</p>
<p>e a vigam continua e o cara do meu lado com os braços cruzados, e continuo a rabiscar idéias</p>
<p><img class="alignnone size-full wp-image-1515" title="game_deisgn_draft_02" src="http://www.athanazio.com/wp-content/uploads/2009/01/game_deisgn_draft_02.jpg" alt="" width="450" height="329" /></p>
<p>opa mais coisas para a cena, agora as definições de audio :</p>
<ul>
<li>som de abertura</li>
<li>loop</li>
<li>sons para eventos</li>
<li>término</li>
</ul>
<p>Me parece que os tais dos eventos podem ser definidos para cada cena, e possuem um nome, som atribuido, se dispara outro evento e coisa e tal, precisa de um método para testar se o evento foi disparado, e outro para executar alguma coisa &#8230; ehehhe virou uma interface para ser implementada e registrada em cada cena, ou registrada em um gerente de eventos.</p>
<p>Outra necessidade e a lista de elementos que estão contidos na cena, e onde estão posicionados</p>
<p>além do gerente de eventos, vejo como necessário um gerente de posicionamento de elementos na cena, ou seja antes de mover qualquer coisa solicitar o movimento a este gerente para cuidar de colisão e somente permitir movimentos para locais na tela onde é permitido.</p>
<p>exemplos conceituais de event handler</p>
<ul>
<li>verificar se personagem chegou perto da borda e rolar a tela</li>
<li>verificar se houve colisao de um projetil com um NPC</li>
</ul>
<p><img class="alignnone size-full wp-image-1516" title="game_deisgn_draft_03" src="http://www.athanazio.com/wp-content/uploads/2009/01/game_deisgn_draft_03.jpg" alt="" width="450" height="173" /></p>
<p>tenho de pensar em uma maneira de tornar este registro de eventos simples o suficiente para nao ficar burocratico, contudo usar eles isolados com um Gerente de eventos me dah ideias bem legais de permitir testes automatizados dos codigos dos eventos.</p>
<p>bem são só rascunhos, e nas minhas investigações do XNA vou vendo o que tem e o que não tem &#8230;</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.athanazio.com/2009/01/07/ideias-em-game-coding-design/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>c# xna, desenhando o sprite na tela</title>
		<link>http://www.athanazio.com/2009/01/06/c-xna-desenhando-o-sprite-na-tela/</link>
		<comments>http://www.athanazio.com/2009/01/06/c-xna-desenhando-o-sprite-na-tela/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 02:23:39 +0000</pubDate>
		<dc:creator>athanazio</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[C Sharp]]></category>
		<category><![CDATA[draw]]></category>
		<category><![CDATA[hello world]]></category>
		<category><![CDATA[sprite]]></category>
		<category><![CDATA[xna]]></category>

		<guid isPermaLink="false">http://www.athanazio.com/?p=1510</guid>
		<description><![CDATA[arre o primeiro sprite na tela a gente nunca esquece !! olha que belo o codigo !!]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>arre o primeiro sprite na tela a gente nunca esquece !!<br />
<a href="http://www.athanazio.com/wp-content/uploads/2009/01/windows_game1.jpg"><img src="http://www.athanazio.com/wp-content/uploads/2009/01/windows_game1-150x150.jpg" alt="" title="windows_game1" width="150" height="150" class="alignnone size-thumbnail wp-image-1511" /></a></p>
<p>olha que belo o codigo !!</p>
<p>using System;<br />
using System.Collections.Generic;<br />
using System.Linq;<br />
using Microsoft.Xna.Framework;<br />
using Microsoft.Xna.Framework.Audio;<br />
using Microsoft.Xna.Framework.Content;<br />
using Microsoft.Xna.Framework.GamerServices;<br />
using Microsoft.Xna.Framework.Graphics;<br />
using Microsoft.Xna.Framework.Input;<br />
using Microsoft.Xna.Framework.Media;<br />
using Microsoft.Xna.Framework.Net;<br />
using Microsoft.Xna.Framework.Storage;</p>
<p>namespace WindowsGame1<br />
{</p>
<p>    public class Game1 : Microsoft.Xna.Framework.Game<br />
    {<br />
        GraphicsDeviceManager graphics;<br />
        SpriteBatch spriteBatch;</p>
<p>        Vector2 mPosition = new Vector2(0, 0);</p>
<p>        Texture2D mSpriteTexture;</p>
<p>        public Game1()<br />
        {<br />
            graphics = new GraphicsDeviceManager(this);<br />
            Content.RootDirectory = &#8220;Content&#8221;;<br />
        }</p>
<p>        protected override void Initialize()<br />
        {<br />
            base.Initialize();<br />
        }</p>
<p>        protected override void LoadContent()<br />
        {<br />
            spriteBatch = new SpriteBatch(GraphicsDevice);<br />
            mSpriteTexture = this.Content.Load<Texture2D>(&#8220;alien&#8221;);<br />
        }</p>
<p>        protected override void UnloadContent()<br />
        {<br />
        }</p>
<p>        protected override void Update(GameTime gameTime)<br />
        {<br />
            // Allows the game to exit<br />
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)<br />
                this.Exit();</p>
<p>            base.Update(gameTime);<br />
        }</p>
<p>        protected override void Draw(GameTime gameTime)<br />
        {<br />
            GraphicsDevice.Clear(Color.CornflowerBlue);</p>
<p>            spriteBatch.Begin();<br />
            spriteBatch.Draw(mSpriteTexture, mPosition, Color.White);<br />
            spriteBatch.End();</p>
<p>            base.Draw(gameTime);<br />
        }<br />
    }<br />
}</p>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.athanazio.com/2009/01/06/c-xna-desenhando-o-sprite-na-tela/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>xna game studio reference</title>
		<link>http://www.athanazio.com/2009/01/06/xna-game-studio-reference/</link>
		<comments>http://www.athanazio.com/2009/01/06/xna-game-studio-reference/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 11:51:39 +0000</pubDate>
		<dc:creator>athanazio</dc:creator>
				<category><![CDATA[games]]></category>
		<category><![CDATA[programacao]]></category>
		<category><![CDATA[game studio]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[xna]]></category>

		<guid isPermaLink="false">http://www.athanazio.com/?p=1506</guid>
		<description><![CDATA[arrá ! aqui esta a famigerada referência : http://msdn.microsoft.com/en-us/library/bb203940.aspx]]></description>
			<content:encoded><![CDATA[<div id="HOTWordsTxt" name="HOTWordsTxt"><p>arrá !</p>
<p>aqui esta a famigerada referência : <a href="http://msdn.microsoft.com/en-us/library/bb203940.aspx">http://msdn.microsoft.com/en-us/library/bb203940.aspx</a></p>
</div>]]></content:encoded>
			<wfw:commentRss>http://www.athanazio.com/2009/01/06/xna-game-studio-reference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

