<?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>Tolstenko &#187; Programação de Jogos</title>
	<atom:link href="http://tolstenko.net/category/programacao-de-jogos/feed/" rel="self" type="application/rss+xml" />
	<link>http://tolstenko.net</link>
	<description>Sobre computação e o mundo</description>
	<lastBuildDate>Sat, 15 May 2010 22:04:27 +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>Ogre3D &#8211; Template de projeto</title>
		<link>http://tolstenko.net/2010/02/22/ogre3d-template-de-projeto/</link>
		<comments>http://tolstenko.net/2010/02/22/ogre3d-template-de-projeto/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 22:18:11 +0000</pubDate>
		<dc:creator>Alexandre</dc:creator>
				<category><![CDATA[Ogre3D]]></category>
		<category><![CDATA[2008]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[Max Teslenko]]></category>
		<category><![CDATA[OGRE]]></category>
		<category><![CDATA[OgreTemplate]]></category>
		<category><![CDATA[Template]]></category>
		<category><![CDATA[VisualStudio]]></category>

		<guid isPermaLink="false">http://tolstenko.net/?p=392</guid>
		<description><![CDATA[<a href="http://tolstenko.net/2010/02/22/ogre3d-template-de-projeto/"><img align="left" hspace="5" width="150" src="http://tolstenko.net/wp-content/uploads/2010/02/ogre_17_logo.gif" class="alignleft wp-post-image tfe" alt="" title="ogre_17_logo" /></a><p style="text-align: center;"></p>
<p>Olá a todos! Ontem conheci um blogueiro, Max Teslenko, ele possui em seu blog, muitas dicas semelhantes às que eu gosto de publicar. Uma delas é esta que irei expor aqui.</p>
<p>Para os que usam Ogre3D e acham chato sempre ter que definir os parâmetros de projeto, ou mesmo para aqueles que não sabem [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-full wp-image-394" title="ogre_17_logo" src="http://tolstenko.net/wp-content/uploads/2010/02/ogre_17_logo.gif" alt="" width="283" height="95" /></p>
<p>Olá a todos! Ontem conheci um blogueiro, <a href="http://wincode.org.ua" target="_blank">Max Teslenko</a>, ele possui em seu blog, muitas dicas semelhantes às que eu gosto de publicar. Uma delas é esta que irei expor aqui.</p>
<p>Para os que usam <a href="http://www.ogre3d.org/" target="_blank">Ogre3D </a>e acham chato sempre ter que definir os parâmetros de projeto, ou mesmo para aqueles que não sabem como fazê-lo, aqui vai uma dica bem legal: <a href="http://wincode.org.ua/" target="_blank">Max Tyslenko</a> fez um template bem simples para <a href="http://www.ogre3d.org/" target="_blank">Ogre3D.</a></p>
<p>O arquivo pode ser baixado aqui: <a href="http://www.tolstenko.net/wp-content/uploads/2010/02/OgreTemplate.rar">OgreTemplate.rar</a>.</p>
<p><span id="more-392"></span></p>
<p>Para reduzir o tamanho do arquivo, os arquivos de mídia foram removidos do projeto, para tornar o projeto funcional, faz-se necessário copiar essa pasta do diretorio do Ogre para OgreTemplate/OgreTemplate.</p>
<p>Essa informação deve estar no site oficial, contudo não consegui encontrar versoes funcionais. Por isso estou a escrever esse artigo e divulgar esse arquivo.</p>
<p>Para que esta solução funcione, a variabel de ambiende &#8220;OGRE_HOME&#8221; tem de estar corretamente configurada, caso tenha alguma dúvida sobre este assunto, tente aqui: <a href="http://tinyurl.com/ylxcfzz" target="_blank">http://tinyurl.com/ylxcfzz</a></p>
<p>Vou expilcar o processo utilizado para gerar o template acima:</p>
<p><span onmouseover="_tipon(this)" onmouseout="_tipoff()"> Para começar, crie um novo projeto, clicamos no <strong>Solution Explorer,</strong> botão direito do mouse e escolha <strong>Propriedades:</strong></span></p>
<p><a href="http://tolstenko.net/wp-content/uploads/2010/02/bec503111a4b.png"><img class="aligncenter size-full wp-image-395" title="bec503111a4b" src="http://tolstenko.net/wp-content/uploads/2010/02/bec503111a4b.png" alt="" width="251" height="484" /></a></p>
<p><span onmouseover="_tipon(this)" onmouseout="_tipoff()">Na imagem que aparecer:</span></p>
<p><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><a href="http://tolstenko.net/wp-content/uploads/2010/02/c19a3d57ba71.png"><img class="aligncenter size-full wp-image-397" title="c19a3d57ba71" src="http://tolstenko.net/wp-content/uploads/2010/02/c19a3d57ba71.png" alt="" width="763" height="535" /></a></span></p>
<p>Na aba à esquerda, clique em Linker/Input e coloque campo <span style="text-decoration: underline;"><strong><em>Additional Dependencies</em></strong></span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><strong>OgreMain_d.lib OIS_d.lib</strong></span> assim como o mostrado na figura abaixo.</p>
<p><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><a href="http://tolstenko.net/wp-content/uploads/2010/02/linker_input.jpg"><img class="aligncenter size-full wp-image-400" title="linker_input" src="http://tolstenko.net/wp-content/uploads/2010/02/linker_input.jpg" alt="" width="751" height="513" /></a></span></p>
<p>Na aba à esquerda, clique em Linker, e no campo Additional Library Directories, escreva <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><strong>$(OGRE_HOME)\lib</strong></span> , o mesmo que o que a imagem abaixo mostra.</p>
<p><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><a href="http://tolstenko.net/wp-content/uploads/2010/02/linker_input.jpg"></a><a href="http://tolstenko.net/wp-content/uploads/2010/02/linker.jpg"><img class="aligncenter size-full wp-image-399" title="linker" src="http://tolstenko.net/wp-content/uploads/2010/02/linker.jpg" alt="" width="750" height="517" /></a></span></p>
<p>Na aba à esquerda, clique em C/C++ e no campo Additional Include Directories, digite <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><strong>“$(OGRE_HOME)\include”;..\include;”$(OGRE_HOME)\samples\include”</strong></span> , o mesmo conteudo mostrado na imagem abaixo:</p>
<p><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><a href="http://tolstenko.net/wp-content/uploads/2010/02/linker.jpg"></a><a href="http://tolstenko.net/wp-content/uploads/2010/02/additional-directories.jpg"><img class="aligncenter size-full wp-image-398" title="additional directories" src="http://tolstenko.net/wp-content/uploads/2010/02/additional-directories.jpg" alt="" width="791" height="515" /></a></span><br />
O código de exemplo que posso dar é o abaixo, pode colocá-lo como o main.cpp do seu projeto.</p>
<pre class="brush: cpp;">#include &quot;ExampleApplication.h&quot;

// Declare a subclass of the ExampleFrameListener class
class MyListener : public ExampleFrameListener
{
public:
    MyListener(RenderWindow* win, Camera* cam) : ExampleFrameListener(win, cam)
    {
    }

    bool frameStarted(const FrameEvent&amp;amp; evt)
    {
        return ExampleFrameListener::frameStarted(evt);
    }

    bool frameEnded(const FrameEvent&amp;amp; evt)
    {
        return ExampleFrameListener::frameEnded(evt);
    }
};

// Declare a subclass of the ExampleApplication class
class SampleApp : public ExampleApplication
{
public:
   SampleApp()
   {
   }

protected:
   // Define what is in the scene
   void createScene(void)
   {
       // put your scene creation in here
   }

   // Create new frame listener
   void createFrameListener(void)
   {
       mFrameListener = new MyListener(mWindow, mCamera);
       mRoot-&amp;gt;addFrameListener(mFrameListener);
   }
};

#ifdef __cplusplus
extern &quot;C&quot; {
#endif

#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
#define WIN32_LEAN_AND_MEAN
#include &quot;windows.h&quot;
INT WINAPI WinMain(HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT)
#else
int main(int argc, char **argv)
#endif
{
    // Instantiate our subclass
    SampleApp myApp;

    try {
        // ExampleApplication provides a go method, which starts the rendering.
        myApp.go();
    }
    catch (Ogre::Exception&amp;amp; e) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
        MessageBoxA(NULL, e.getFullDescription().c_str(), &quot;An exception has occured!&quot;, MB_OK | MB_ICONERROR | MB_TASKMODAL);
#else
        std::cerr &amp;lt;&amp;lt; &quot;Exception:\n&quot;;
        std::cerr &amp;lt;&amp;lt; e.getFullDescription().c_str() &amp;lt;&amp;lt; &quot;\n&quot;;
#endif
        return 1;
    }

return 0;
}

#ifdef __cplusplus
}
#endif
</pre>
<p>O último passo é copiar as bibliotecas necessárias e os arquivos de mídia na pasta do projeto. No nosso caso, tudo isso deve ser copiado para uma subpasta do projeto com o mesmo nome.</p>
<p><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><a href="http://tolstenko.net/wp-content/uploads/2010/02/27203025e198.png"><img class="aligncenter size-full wp-image-401" title="27203025e198" src="http://tolstenko.net/wp-content/uploads/2010/02/27203025e198.png" alt="" width="580" height="434" /></a></span></p>
<p>Qualquér dúvida, basta perguntar aqui, que terei prazer em responder.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 51px; width: 1px; height: 1px;"><span onmouseover="_tipon(this)" onmouseout="_tipoff()">Para reduzir o tamanho do arquivo, pastas de mídia são removidos do projeto.</span> <span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left;">Чтобы сделать проект работоспособным, нужно скопировать эту папку из кореневого каталога Ogre в папку проекта Ogre Template/Ogre Template.</span> Para tornar o projeto viável, precisa copiar essa pasta a partir do catálogo Koreneva Ogre na pasta do projeto Ogre Template / Ogre Template.</span><span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left;">Знаю, что эту информацию можно достать на официальном сайте, но я перерыл пару версий, пока нашёл работоспособную для 2008 версии студии (express).</span> Eu sei que esta informação pode entrar no site oficial, mas eu vasculhou um casal de versões, até 2008 para encontrar uma versão funcional do estúdio (expresso).</span><br />
<span onmouseover="_tipon(this)" onmouseout="_tipoff()"><span class="google-src-text" style="direction: ltr; text-align: left;">Для начала, создаем новый проект, в <strong>Solution Explorer</strong> кликаем правой кнопкой и выбираем пункт <strong>Properties</strong> :</span> Para começar, crie um novo projeto, clicamos no <strong>Solution Explorer,</strong> botão direito do mouse e escolha <strong>Propriedades:</strong></span></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://tolstenko.net/2010/02/22/ogre3d-template-de-projeto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Carregamento de mapas em games: Quadtree e Octatree (Octree)</title>
		<link>http://tolstenko.net/2009/11/21/carregamento-de-mapas-em-games-quadtree-e-octatree/</link>
		<comments>http://tolstenko.net/2009/11/21/carregamento-de-mapas-em-games-quadtree-e-octatree/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 00:57:13 +0000</pubDate>
		<dc:creator>Alexandre</dc:creator>
				<category><![CDATA[F 313]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[XNA]]></category>
		<category><![CDATA[applet]]></category>
		<category><![CDATA[árvore]]></category>
		<category><![CDATA[bsp]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[carregamento]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[estrutura de dados]]></category>
		<category><![CDATA[fenando lucchesi]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[game programming]]></category>
		<category><![CDATA[ian liu]]></category>
		<category><![CDATA[mapas]]></category>
		<category><![CDATA[octatree]]></category>
		<category><![CDATA[octree]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[pygame]]></category>
		<category><![CDATA[quadtree]]></category>
		<category><![CDATA[tree]]></category>

		<guid isPermaLink="false">http://tolstenko.net/?p=362</guid>
		<description><![CDATA[<a href="http://tolstenko.net/2009/11/21/carregamento-de-mapas-em-games-quadtree-e-octatree/"><img align="left" hspace="5" width="150" height="150" src="http://tolstenko.net/wp-content/uploads/2009/11/380px-Quad_tree_bitmap.svg_-150x150.png" class="alignleft wp-post-image tfe" alt="380px-Quad_tree_bitmap.svg" title="380px-Quad_tree_bitmap.svg" /></a><p>Existe um grande problema na área de games que é o carregamento de mapas. Uma das soluções mais utilizadas  é utilizar estruturas quadtrees para games 2D e octatrees para games 3D.</p>
<p>Quadtree é um tipo de estrutura na qual tem-se um nó raiz(quadrado maior) que se abre em 4 filhos, aonde cada filho será responsável por [...]]]></description>
			<content:encoded><![CDATA[<p>Existe um grande problema na área de games que é o carregamento de mapas. Uma das soluções mais utilizadas  é utilizar estruturas quadtrees para games 2D e octatrees para games 3D.</p>
<p>Quadtree é um tipo de estrutura na qual tem-se um nó raiz(quadrado maior) que se abre em 4 filhos, aonde cada filho será responsável por um quadrante do quadrado repesentado pelo nó pai.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-365" title="380px-Quad_tree_bitmap.svg" src="http://tolstenko.net/wp-content/uploads/2009/11/380px-Quad_tree_bitmap.svg_.png" alt="380px-Quad_tree_bitmap.svg" width="380" height="156" /></p>
<p>De maneira análoga, o octatree é uma estrutura na qual se tem um nó raiz(cubo maior) que se abre em 8 filhos, aonde cada filho será responsável por um octante do cubo representado pelo nó pai.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-366" title="400px-Octree2" src="http://tolstenko.net/wp-content/uploads/2009/11/400px-Octree2.png" alt="400px-Octree2" width="400" height="230" /></p>
<p>Agora vamos aos exemplos práticos:</p>
<p><span id="more-362"></span></p>
<p>Para exemplificar o Quadtree, encontrei neste <a href="http://www.cs.utah.edu/~croberts/courses/cs7962/project/index.html">site</a> um applet exemplificando o quadtree, o mesmo segue logo abaixo. Para adicionar pontos na estrutura, clique no quadrado, para visualizar a estrutura da árvore clique em show tree.</p>
<p><APPLET archive="/wp-content/uploads/2009/11/QTApplet.jar" code="QTApplet" width=700 height=600><br />
Your browser does not support Java, so nothing is displayed.<br />
</APPLET></p>
<p>Para exemplificar uma octree, não encontrei nenhum applet, mas encontrei uma outra estrutura de dados para mapas 3D: <a href="http://en.wikipedia.org/wiki/Binary_space_partitioning" target="_blank">BSP</a>. Para usar o exemplo abaixo, basta utilizar o primeiro quadrado. Dentro dele, para desenhar uma parede no mapa, clique e arraste com o botão direito. Para mover a camera clique com o botão esquerdo no ponto vermelho e arraste. Os demais campos são representações do mapa.</p>
<p><applet archive="/wp-content/uploads/2009/11/BSPTreeDemo.jar" code="BSPTreeDemo.class" width="424" height="576"><br />
Your browser does not support Java, so nothing is displayed.<br />
</APPLET></p>
<p>Nesta sexta-feira(20/11/2009) tentamos implementar árvores quadtree.</p>
<ul>
<li>Eu fiz um exemplo em C# e com XNA:
<ul>
<li><a href="/wp-content/uploads/2009/11/XnaQuadtreeSource.rar" target="_blank">Codigo-Fonte</a> (necessita do <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=53867a2a-e249-4560-8011-98eb3e799ef2" target="_blank">XNA framework 3.1</a> e <a href="http://www.microsoft.com/express/vcsharp/" target="_blank">Visual Studio C# 2008</a>)</li>
<li><a href="/wp-content/uploads/2009/11/XnaQuadtreeBin.rar" target="_blank">Executavel </a>(necessita do <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=53867a2a-e249-4560-8011-98eb3e799ef2" target="_blank">XNA 3.1 Redistributable</a> e <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6" target="_blank">.NET 3.5</a>)</li>
</ul>
</li>
<li>Ian Liu juntamente com o Fenando Lucchesi implementaram em Python com Pygame
<ul>
<li><a href="/wp-content/uploads/2009/11/PythonQuadtreesSrc.zip" target="_blank">Código-Fonte</a> (necessita do<a href="http://www.python.org/download/" target="_blank"> Pyhon</a> e do <a href="http://www.pygame.org/download.shtml" target="_blank">Pygame</a>)</li>
</ul>
</li>
</ul>
<p>Espero que tenham gostado, qualquer dúvida, entre em contato.</p>
]]></content:encoded>
			<wfw:commentRss>http://tolstenko.net/2009/11/21/carregamento-de-mapas-em-games-quadtree-e-octatree/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenCL</title>
		<link>http://tolstenko.net/2009/11/14/opencl/</link>
		<comments>http://tolstenko.net/2009/11/14/opencl/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 17:56:14 +0000</pubDate>
		<dc:creator>Alexandre</dc:creator>
				<category><![CDATA[Novidades]]></category>
		<category><![CDATA[Programação de Jogos]]></category>
		<category><![CDATA[ctm]]></category>
		<category><![CDATA[cuda]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[GPGPU]]></category>
		<category><![CDATA[nexus]]></category>
		<category><![CDATA[opencl]]></category>
		<category><![CDATA[stream]]></category>
		<category><![CDATA[stream sdk]]></category>

		<guid isPermaLink="false">http://tolstenko.net/?p=355</guid>
		<description><![CDATA[<a href="http://tolstenko.net/2009/11/14/opencl/"><img align="left" hspace="5" width="150" height="150" src="http://tolstenko.net/wp-content/uploads/2009/11/OpenCL_Nvidia_driver-150x150.jpg" class="alignleft wp-post-image tfe" alt="OpenCL_Nvidia_driver" title="OpenCL_Nvidia_driver" /></a><p>Como alguns sabem, OpenCL é um padrão de programação de GPU computing (GPGPU) desenvolvido inicialmente pela apple e agora é open source.</p>
<p>A ATI tinha seu projeto chamado Close to Metal (CTM) para programar os shaders de suas placas, mas que não caiu no agrado dos programadores por ser um tanto mais complexo que o seu [...]]]></description>
			<content:encoded><![CDATA[<p>Como alguns sabem, <a href="http://en.wikipedia.org/wiki/OpenCL" target="_blank">OpenCL</a> é um padrão de programação de GPU computing (<a href="http://gpgpu.org/" target="_blank">GPGPU</a>) desenvolvido inicialmente pela apple e agora é open source.</p>
<p>A ATI tinha seu projeto chamado Close to Metal (<a href="http://en.wikipedia.org/wiki/Close_to_Metal">CTM</a>) para programar os shaders de suas placas, mas que não caiu no agrado dos programadores por ser um tanto mais complexo que o seu concorrente <a href="http://www.nvidia.com.br/object/cuda_what_is_br.html">CUDA</a> da Nvidia.</p>
<p>O problema principal era que as maiores fabricantes de placas gráficas estavam produzindo linguagens diferentes para o mesmo propósito.<br />
Acredito eu que a ATI deu o braço a torcer e adotou o <a href="http://en.wikipedia.org/wiki/OpenCL" target="_blank">OpenCL</a> como seu padrão para esse tipo de programação de alto desempenho e com isso deu deu um grande passo para a unificação do <a href="http://en.wikipedia.org/wiki/OpenCL" target="_blank">OpenCL</a> uma vez que agora a Nvidia também está usando <a href="http://en.wikipedia.org/wiki/OpenCL" target="_blank">OpenCL</a> junto com o <a href="http://www.nvidia.com.br/object/cuda_what_is_br.html">CUDA</a>.</p>
<p>Esses dias, acabei descobrindo que o novo driver beta da Nvidia consegue rodar coisas programadas com <a href="http://en.wikipedia.org/wiki/OpenCL" target="_blank">OpenCL</a> , contudo a Nvidia ainda não lançou nenhuma IDE, ou SDK para <a href="http://en.wikipedia.org/wiki/OpenCL" target="_blank">OpenCL</a>, eles possuem uma idéia promissora com o <a href="http://developer.nvidia.com/object/nexus.html">Nexus</a>, que vale a pena conferir, mas ainda não possuem algo palpável ainda com <a href="http://en.wikipedia.org/wiki/OpenCL" target="_blank">OpenCL</a>.</p>
<p><span id="more-355"></span></p>
<p>A ATI desenvolveu um SDK que compila em <a href="http://en.wikipedia.org/wiki/OpenCL" target="_blank">OpenCL</a>, o <a href="http://developer.amd.com/GPU/ATISTREAMSDKBETAPROGRAM/Pages/default.aspx" target="_blank">Stream SDK</a> e exitem alguns usuários Nvidia utilizando-o para programar em <a href="http://en.wikipedia.org/wiki/OpenCL" target="_blank">OpenCL</a>. Espero tambem ser um desses usuários&#8230;</p>
<p>Agora me pergunto: OpenCL, CUDA ou CTM? Algumas pessoas na ultima &#8220;Nvidia&#8217;s GPU Developer&#8217;s Conference&#8221; afirmaram que o desempenho do mesmo algoritmo rodado em OpenCL era muito mais lento do que o rodado com CUDA, mas convenhamos, o driver para OpenCL na Nvidia teve sua primeira implementação agora e foi em um driver beta&#8230; Imagino que o desempenho sempre fique menor no OpenCL, por não utilizar instruções próprias e especificas do processador da Nvidia, mas acredito que esse hiato venha a diminuir com a melhoria do driver.</p>
<p>Na minha humilde opinião, acredito que o mais promissor seria aprender OpenCL ao invés de CUDA.</p>
<p>Busquem e testem por si mesmos:</p>
<p style="text-align: justify;">Primeiro driver beta da Nvidia que suporta <a href="http://en.wikipedia.org/wiki/OpenCL" target="_blank">OpenCL</a>, Versão 195.39: <a href="http://www.nvidia.com/Download/Find.aspx?lang=en-us" target="_blank">http://www.nvidia.com/Download/Find.aspx?lang=en-us<img class="aligncenter size-full wp-image-356" title="OpenCL_Nvidia_driver" src="http://tolstenko.net/wp-content/uploads/2009/11/OpenCL_Nvidia_driver.jpg" alt="OpenCL_Nvidia_driver" width="531" height="428" /></a></p>
<p style="text-align: justify;">Nexus da Nvidia: <a href="http://developer.nvidia.com/object/nexus.html" target="_blank">http://developer.nvidia.com/object/nexus.html</a>:</p>
<p style="text-align: justify;"><p><a href="http://tolstenko.net/2009/11/14/opencl/"><em>Clique aqui para assistir o vídeo inserido.</em></a></p></p>
<p style="text-align: justify;">Stream SDK da ATI: <a href="http://developer.amd.com/GPU/ATISTREAMSDKBETAPROGRAM/Pages/default.aspx">http://developer.amd.com/GPU/ATISTREAMSDKBETAPROGRAM/Pages/default.aspx</a></p>
<p style="text-align: justify;">
<p style="text-align: justify;">Espero que tenham gostado e eu tenha atiçado a curisidade.</p>
<p style="text-align: justify;">Comentem!</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://tolstenko.net/2009/11/14/opencl/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Physaxe &#8211; Engine física para flash</title>
		<link>http://tolstenko.net/2009/11/14/physaxe-engine-fisica-para-flash/</link>
		<comments>http://tolstenko.net/2009/11/14/physaxe-engine-fisica-para-flash/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 12:14:10 +0000</pubDate>
		<dc:creator>Alexandre</dc:creator>
				<category><![CDATA[Flash]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[Engine]]></category>
		<category><![CDATA[engine fisica]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[game engine]]></category>
		<category><![CDATA[game programming]]></category>
		<category><![CDATA[haxe]]></category>
		<category><![CDATA[jogos]]></category>
		<category><![CDATA[physaxe]]></category>
		<category><![CDATA[Physics engine]]></category>
		<category><![CDATA[Programação]]></category>
		<category><![CDATA[swf]]></category>

		<guid isPermaLink="false">http://tolstenko.net/?p=348</guid>
		<description><![CDATA[<a href="http://tolstenko.net/2009/11/14/physaxe-engine-fisica-para-flash/"><img align="left" hspace="5" width="150" height="150" src="http://tolstenko.net/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a><p>Um colega meu, &#8220;Ian Liu&#8221; do grupo de jogos me apresentou uma engine fisica 2D em flash para haXe: Physaxe. A proposta dele é que o grupo destinado a pesquisar desenvolvimento de jogos em 2D busque soluções que incorporem coisas assim.</p>
<p>Parafraseando o próprio autor: &#8220;Um demo vale mais que 1000 palavras&#8221;.</p>
<p>Aqui em baixo, você pode [...]]]></description>
			<content:encoded><![CDATA[<p>Um colega meu, &#8220;Ian Liu&#8221; do grupo de jogos me apresentou uma engine fisica 2D em flash para haXe: <a href="http://code.google.com/p/physaxe/" target="_blank">Physaxe</a>. A proposta dele é que o grupo destinado a pesquisar desenvolvimento de jogos em 2D busque soluções que incorporem coisas assim.</p>
<p>Parafraseando o próprio autor: &#8220;Um demo vale mais que 1000 palavras&#8221;.</p>
<p>Aqui em baixo, você pode testar um demo usando a tal engine: <strong>Use</strong> <strong>as teclas 1-8 para alterar o demo </strong>e <strong>clique</strong> em algum lugar do objeto abaixo para atirar blocos.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="580" height="480" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="/dados/Flash/phxdemo.swf" /><embed type="application/x-shockwave-flash" width="580" height="480" src="/dados/Flash/phxdemo.swf"></embed></object></p>
<p style="text-align: justify;">(Para saber mais sobre o sistema, clique no link &#8220;Continue lendo&#8230;&#8221;)</p>
<p style="text-align: justify;"><span id="more-348"></span></p>
<p style="text-align: justify;">O interessante é q o binário gerado aqui é de apenas 28KB. Minúsculo e bem otimizado.</p>
<p style="text-align: justify;">Para quese possa ver o consumo da CPU, aperte a tecla <strong>D</strong> para parar de desenhar e verifique no gerenciador de recursos do seu sistema operacional, o consumo do game funcionando e sem funcionar.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">Outro exemplo interessante que vem com o código fonte é esse de gravidade:</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="450" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="/dados/Flash/phx_box.swf" /><embed type="application/x-shockwave-flash" width="450" height="450" src="/dados/Flash/phx_box.swf"></embed></object></p>
<p style="text-align: justify;">Para rodar esse demo, faça isso:</p>
<ul>
<li>Instale <a href="http://haxe.org/">haXe</a></li>
<li>Execute o comando <code>haxelib install physaxe</code> para instalar a biblioteca do Physaxe.</li>
<li>Copie e cole o código <code>Test.hx</code></li>
<li>Excecute: <code>haxe -swf9 test.swf -main Test -lib physaxe</code> para compilar</li>
<li>Boa diversão!</li>
</ul>
<p>Codigo:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">class</span> Test <span style="color: #66cc66;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">var</span> root : flash.<span style="color: #006600;">display</span>.<span style="color: #0066CC;">MovieClip</span>;
    <span style="color: #000000; font-weight: bold;">var</span> world : phx.<span style="color: #006600;">World</span>;
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #000000; font-weight: bold;">new</span><span style="color: #66cc66;">&#40;</span>root<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #0066CC;">this</span>.<span style="color: #006600;">root</span> = root;
        <span style="color: #000000; font-weight: bold;">var</span> w = root.<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span>;
        <span style="color: #000000; font-weight: bold;">var</span> h = root.<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span>;
        world = <span style="color: #000000; font-weight: bold;">new</span> phx.<span style="color: #006600;">World</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> phx.<span style="color: #006600;">col</span>.<span style="color: #006600;">AABB</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,w,h<span style="color: #66cc66;">&#41;</span>,<span style="color: #000000; font-weight: bold;">new</span> phx.<span style="color: #006600;">col</span>.<span style="color: #006600;">SortedList</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #000000; font-weight: bold;">var</span> p0 = phx.<span style="color: #006600;">Const</span>.<span style="color: #006600;">DEFAULT_PROPERTIES</span>;
        p0.<span style="color: #006600;">biasCoef</span> = <span style="color: #cc66cc;">0.3</span>;
        p0.<span style="color: #006600;">maxDist</span> = <span style="color: #cc66cc;">2</span>;
        world.<span style="color: #006600;">sleepEpsilon</span> = <span style="color: #cc66cc;">0</span>; <span style="color: #808080; font-style: italic;">// no sleep (gravity can change anytime)</span>
        <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">floor</span> = <span style="color: #000000; font-weight: bold;">new</span> phx.<span style="color: #006600;">Body</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0066CC;">floor</span>.<span style="color: #006600;">addShape</span><span style="color: #66cc66;">&#40;</span>phx.<span style="color: #006600;">Shape</span>.<span style="color: #006600;">makeBox</span><span style="color: #66cc66;">&#40;</span>w,<span style="color: #cc66cc;">30</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0066CC;">floor</span>.<span style="color: #006600;">addShape</span><span style="color: #66cc66;">&#40;</span>phx.<span style="color: #006600;">Shape</span>.<span style="color: #006600;">makeBox</span><span style="color: #66cc66;">&#40;</span>w,<span style="color: #cc66cc;">30</span>,<span style="color: #cc66cc;">0</span>,h-<span style="color: #cc66cc;">30</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0066CC;">floor</span>.<span style="color: #006600;">addShape</span><span style="color: #66cc66;">&#40;</span>phx.<span style="color: #006600;">Shape</span>.<span style="color: #006600;">makeBox</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span>,h,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0066CC;">floor</span>.<span style="color: #006600;">addShape</span><span style="color: #66cc66;">&#40;</span>phx.<span style="color: #006600;">Shape</span>.<span style="color: #006600;">makeBox</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">30</span>,h,w-<span style="color: #cc66cc;">30</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #0066CC;">floor</span>.<span style="color: #006600;">isStatic</span> = <span style="color: #000000; font-weight: bold;">true</span>;
        world.<span style="color: #006600;">addBody</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">floor</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #000000; font-weight: bold;">var</span> mat = <span style="color: #000000; font-weight: bold;">new</span> phx.<span style="color: #006600;">Material</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0.3</span>,<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span> i <span style="color: #b1b100;">in</span> 0...100 <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">var</span> points = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
            <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">size</span> = <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span> + Std.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">0.7</span>;
            <span style="color: #000000; font-weight: bold;">var</span> a = <span style="color: #cc66cc;">2</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">PI</span>;
            <span style="color: #b1b100;">do</span> <span style="color: #66cc66;">&#123;</span>
                points.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> phx.<span style="color: #006600;">Vector</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">cos</span><span style="color: #66cc66;">&#40;</span>a<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">size</span>,<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span>a<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">size</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
                a -= <span style="color: #66cc66;">&#40;</span>Std.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #cc66cc;">5</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">0.1</span>;
            <span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">while</span><span style="color: #66cc66;">&#40;</span> a <span style="color: #66cc66;">&gt;</span> <span style="color: #cc66cc;">0</span> <span style="color: #66cc66;">&#41;</span>;
            <span style="color: #000000; font-weight: bold;">var</span> shape = <span style="color: #000000; font-weight: bold;">new</span> phx.<span style="color: #006600;">Body</span><span style="color: #66cc66;">&#40;</span>Std.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span>w - <span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #cc66cc;">50</span>,Std.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span>h - <span style="color: #cc66cc;">100</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #cc66cc;">50</span><span style="color: #66cc66;">&#41;</span>;
            shape.<span style="color: #006600;">addShape</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> phx.<span style="color: #006600;">Polygon</span><span style="color: #66cc66;">&#40;</span>points,<span style="color: #000000; font-weight: bold;">new</span> phx.<span style="color: #006600;">Vector</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span>,mat<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
            world.<span style="color: #006600;">addBody</span><span style="color: #66cc66;">&#40;</span>shape<span style="color: #66cc66;">&#41;</span>;
        <span style="color: #66cc66;">&#125;</span>
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">function</span> update<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">var</span> w = root.<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageWidth</span>;
        <span style="color: #000000; font-weight: bold;">var</span> h = root.<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">stageHeight</span>;
        <span style="color: #000000; font-weight: bold;">var</span> xf = <span style="color: #66cc66;">&#40;</span>root.<span style="color: #006600;">mouseX</span> <span style="color: #66cc66;">/</span> w<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span> - <span style="color: #cc66cc;">1</span>;
        <span style="color: #000000; font-weight: bold;">var</span> yf = <span style="color: #66cc66;">&#40;</span>root.<span style="color: #006600;">mouseY</span> <span style="color: #66cc66;">/</span> h<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span> - <span style="color: #cc66cc;">1</span>;
        world.<span style="color: #006600;">gravity</span>.<span style="color: #006600;">x</span> = xf <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">0.5</span>;
        world.<span style="color: #006600;">gravity</span>.<span style="color: #006600;">y</span> = yf <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">0.5</span>;
        world.<span style="color: #006600;">step</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1.0</span>,<span style="color: #cc66cc;">20</span><span style="color: #66cc66;">&#41;</span>;
        root.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">clear</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
        <span style="color: #000000; font-weight: bold;">var</span> d = <span style="color: #000000; font-weight: bold;">new</span> phx.<span style="color: #006600;">FlashDraw</span><span style="color: #66cc66;">&#40;</span>root.<span style="color: #006600;">graphics</span><span style="color: #66cc66;">&#41;</span>;
        d.<span style="color: #006600;">shape</span>.<span style="color: #006600;">lineSize</span> = <span style="color: #cc66cc;">0.5</span>;
        d.<span style="color: #006600;">staticShape</span>.<span style="color: #006600;">line</span> = <span style="color: #000000; font-weight: bold;">null</span>;
        d.<span style="color: #006600;">drawWorld</span><span style="color: #66cc66;">&#40;</span>world<span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #0066CC;">public</span> <span style="color: #0066CC;">static</span> <span style="color: #000000; font-weight: bold;">function</span> main<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">var</span> mc = flash.<span style="color: #006600;">Lib</span>.<span style="color: #006600;">current</span>;
        <span style="color: #000000; font-weight: bold;">var</span> t = <span style="color: #000000; font-weight: bold;">new</span> Test<span style="color: #66cc66;">&#40;</span>mc<span style="color: #66cc66;">&#41;</span>;
        mc.<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">quality</span> = flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">StageQuality</span>.<span style="color: #006600;">MEDIUM</span>;
        mc.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>.<span style="color: #006600;">ENTER_FRAME</span>,<span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>_<span style="color: #66cc66;">&#41;</span> t.<span style="color: #006600;">update</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://tolstenko.net/2009/11/14/physaxe-engine-fisica-para-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compilando o Ogre3D a partir do SVN</title>
		<link>http://tolstenko.net/2009/11/02/compilando-o-ogre3d-a-partir-do-svn/</link>
		<comments>http://tolstenko.net/2009/11/02/compilando-o-ogre3d-a-partir-do-svn/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 14:51:27 +0000</pubDate>
		<dc:creator>Alexandre</dc:creator>
				<category><![CDATA[Ogre3D]]></category>
		<category><![CDATA[boost]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[cmake]]></category>
		<category><![CDATA[compilando]]></category>
		<category><![CDATA[compilar]]></category>
		<category><![CDATA[directx]]></category>
		<category><![CDATA[directx sdk]]></category>
		<category><![CDATA[Eihort]]></category>
		<category><![CDATA[game programming]]></category>
		<category><![CDATA[OGRE]]></category>
		<category><![CDATA[OpenGL]]></category>
		<category><![CDATA[sdk]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[threads]]></category>
		<category><![CDATA[timedate]]></category>
		<category><![CDATA[tortoise]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://tolstenko.net/?p=339</guid>
		<description><![CDATA[<a href="http://tolstenko.net/2009/11/02/compilando-o-ogre3d-a-partir-do-svn/"><img align="left" hspace="5" width="150" src="http://tolstenko.net/wp-content/uploads/2009/11/site_logo.gif" class="alignleft wp-post-image tfe" alt="Ogre_logo" title="Ogre_logo" /></a><p></p>
<p>Para nosso desenvolvimento de games, utilizaremos a versão mais atual do Ogre, e para tal, precisaremos compilar o Ogre3D a partir do seu repositório SVN.</p>
<p></p>
<p>(Este passo-a-passo é voltado para os usuários windows)</p>
<p>Para tanto, utilizaremos:</p>

Um programa que vai sincronizar os arquivos-fonte do Ogre3D:

Tortoise SVN: http://tortoisesvn.net/downloads
Baixe e instale para sua arquitetura (32bits ou 64bits)


Os arquivos-fonte do SVN [...]]]></description>
			<content:encoded><![CDATA[<p><a href="/2009/11/02/compilando-o-ogre3d-a-partir-do-svn/#more-339"><img class="aligncenter size-full wp-image-340" title="Ogre_logo" src="http://tolstenko.net/wp-content/uploads/2009/11/site_logo.gif" alt="Ogre_logo" width="239" height="77" /></a></p>
<p>Para nosso desenvolvimento de games, utilizaremos a versão mais atual do Ogre, e para tal, precisaremos compilar o Ogre3D a partir do seu repositório SVN.</p>
<p><span id="more-339"></span></p>
<p>(Este passo-a-passo é voltado para os usuários windows)</p>
<p>Para tanto, utilizaremos:</p>
<ul>
<li>Um programa que vai sincronizar os arquivos-fonte do Ogre3D:
<ul>
<li>Tortoise SVN: <a href="http://tortoisesvn.net/downloads" target="_blank">http://tortoisesvn.net/downloads</a></li>
<li>Baixe e instale para sua arquitetura (32bits ou 64bits)</li>
</ul>
</li>
<li>Os arquivos-fonte do SVN do Ogre3D, para tanto:
<ul>
<li>Precisaremos fazer svn-checkout de <a href="https://svn.ogre3d.org/svnroot/ogre/trunk" target="_blank">https://svn.ogre3d.org/svnroot/ogre/trunk</a></li>
<li>Logo abaixo explicarei melhor em qual pasta colocar, e outros detalhes: não faça agora.</li>
<li>Caso esteja com duvidas de como proceder nesse passo, veja o tutorial de como utilizar SVN.</li>
</ul>
</li>
<li>Precisamos das dependências do Ogre (Eihort), tais como tinyxml, ois, e outras. Baixe a mais atual:
<ul>
<li>Ogre Dependencies: <a href="http://www.ogre3d.org/download/source" target="_blank">http://www.ogre3d.org/download/source</a> ou <a href="http://sourceforge.net/projects/ogre/files/" target="_blank">http://sourceforge.net/projects/ogre/files/</a> (VS C++ 2008)</li>
</ul>
<ul>
<li>Apenas baixe o zip.</li>
</ul>
</li>
<li>Precisaremos de uma biblioteca de Threads, a utilizada é a Boost.
<ul>
<li>BoostPRO: <a href="http://www.boostpro.com/download" target="_blank">http://www.boostpro.com/download</a></li>
<li>Baixe e instale.cmake</li>
</ul>
<ul>
<li>Ao instalar esse daqui, selecione a opção BoostDateTime e BoostThreads além das normais para o VS C++ 2008. Opcionalmente, instale as bibliotecas de threads que desejar.</li>
</ul>
</li>
<li>Os binários do Directx para desenvolvedores
<ul>
<li>DirectXSDK: <a href="http://msdn.microsoft.com/en-us/directx/aa937788.aspx" target="_blank">http://msdn.microsoft.com/en-us/directx/aa937788.aspx</a></li>
<li>Baixe e instale caso queira utilizar o renderizador para Directx (Pode-se utilizar apenas no OpenGL, se quiser).</li>
</ul>
</li>
<li>Precisamos de um compilador:
<ul>
<li>Visual Studio (Express C++ ou Professional): <a href="http://www.microsoft.com/Express/VC/" target="_blank">http://www.microsoft.com/Express/VC/</a></li>
<li>Baixe e instale.</li>
</ul>
</li>
<li>Precisaremos de um programa que configure nossas variáveis de compilação:
<ul>
<li>Cmake: <a href="http://www.cmake.org/" target="_blank">http://www.cmake.org/</a></li>
<li>Baixe e instale.</li>
</ul>
</li>
<li>Opcionalmente instale:
<ul>
<li>POCO framework <a href="http://pocoproject.org/" target="_blank">http://pocoproject.org/</a></li>
<li>tbb: Threading Building Blocks <a href="http://www.threadingbuildingblocks.org/" target="_blank">http://www.threadingbuildingblocks.org/</a></li>
<li>Doxygen: Tool for building API documentation <a href="http://doxygen.org/" target="_blank">http://doxygen.org</a></li>
<li>CppUnit: Library for performing unit tests <a href="http://cppunit.sourceforge.net/" target="_blank">http://cppunit.sourceforge.net</a></li>
</ul>
</li>
</ul>
<p>Após esse processo de baixar programas, e instalar coisas, faça o seguinte processo, sugerido pelo <a href="http://blog.tidalware.com/2009/08/building-ogre-trunk-1-7/" target="_blank">http://blog.tidalware.com/2009/08/building-ogre-trunk-1-7/</a> (tomei liberdade de alterar para nosso padrão):</p>
<ol>
<li>Crie a pasta: “C:\OgreSVN” e faça um checkout de <a href="https://svn.ogre3d.org/svnroot/ogre/trunk" target="_blank">https://svn.ogre3d.org/svnroot/ogre/trunk</a> nessa pasta;</li>
<li>Descompacte as duas pastas do “Ogre Dependencies”: Dependencies e Samples para a a pasta “C:\OgreSVN”, meclando o conteúdo das mesmas se necessário;</li>
<li>Execute o CMake-Gui (deve estar na seu botão iniciar). Preencha “Where is the source code:” com “C:/OgreSVN” e “Where to build the binaries” com “C:/OgreSVN/build”;</li>
<li>Clique em “Configure” e selecione o seu compilador (no nosso caso, será o Visual Studio 9 2008);</li>
<li>Aparecerá uma lista de opções e flags, eu prefiro desabilitar o BUILD_RENDESYSTEM_D3D10, pois não possuo, gosto de habilitar a flagOGRE_BUILD_COMPONENT_RTSHADERSYSTEM. Caso tenha instalado a biblioteca Boost, habilite a flag OGRE_USE_BOOST;</li>
<li>Clique novamente em “Configure”, e depois em “Generate”;</li>
</ol>
<p>Caso tenha seguido feito tudo assim como falei, dentro da pasta “C:\OgreSVN\build” teremos o arquivo “OGRE.sln”. Abra ele e compile as versões “debug” e “release”, para modificar o modo de compilação, clique com o botão direito em algum projeto, depois em “Property”, depois no botão “Configuration Manager, mude o “Active Solution&#8221;.</p>
<p><span style="text-decoration: underline;">Se tiver alguma dúvida, pergunte!</span></p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves></w> <w:TrackFormatting></w> <w:HyphenationZone>21</w:HyphenationZone> <w:PunctuationKerning></w> <w:ValidateAgainstSchemas></w> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF></w> <w:LidThemeOther>PT-BR</w:LidThemeOther> <w:LidThemeAsian>X-NONE</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables></w> <w:SnapToGridInCell></w> <w:WrapTextWithPunct></w> <w:UseAsianBreakRules></w> <w:DontGrowAutofit></w> <w:SplitPgBreakAndParaMark></w> <w:DontVertAlignCellWithSp></w> <w:DontBreakConstrainedForcedTables></w> <w:DontVertAlignInTxbx></w> <w:Word11KerningPairs></w> <w:CachedColBalance></w> </w:Compatibility> <m:mathPr> <m:mathFont m:val="Cambria Math"></m> <m:brkBin m:val="before"></m> <m:brkBinSub m:val="&#45;-"></m> <m:smallFrac m:val="off"></m> <m:dispDef></m> <m:lMargin m:val="0"></m> <m:rMargin m:val="0"></m> <m:defJc m:val="centerGroup"></m> <m:wrapIndent m:val="1440"></m> <m:intLim m:val="subSup"></m> <m:naryLim m:val="undOvr"></m> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal"></w> <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1"></w> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2"></w> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3"></w> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4"></w> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5"></w> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6"></w> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7"></w> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8"></w> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9"></w> <w:LsdException Locked="false" Priority="39" Name="toc 1"></w> <w:LsdException Locked="false" Priority="39" Name="toc 2"></w> <w:LsdException Locked="false" Priority="39" Name="toc 3"></w> <w:LsdException Locked="false" Priority="39" Name="toc 4"></w> <w:LsdException Locked="false" Priority="39" Name="toc 5"></w> <w:LsdException Locked="false" Priority="39" Name="toc 6"></w> <w:LsdException Locked="false" Priority="39" Name="toc 7"></w> <w:LsdException Locked="false" Priority="39" Name="toc 8"></w> <w:LsdException Locked="false" Priority="39" Name="toc 9"></w> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption"></w> <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title"></w> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font"></w> <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle"></w> <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong"></w> <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis"></w> <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid"></w> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text"></w> <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing"></w> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading"></w> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List"></w> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid"></w> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1"></w> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2"></w> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1"></w> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2"></w> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1"></w> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2"></w> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3"></w> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List"></w> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading"></w> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List"></w> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid"></w> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1"></w> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1"></w> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1"></w> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1"></w> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1"></w> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1"></w> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision"></w> <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph"></w> <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote"></w> <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote"></w> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1"></w> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1"></w> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1"></w> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1"></w> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1"></w> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1"></w> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1"></w> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1"></w> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2"></w> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2"></w> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2"></w> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2"></w> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2"></w> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2"></w> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2"></w> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2"></w> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2"></w> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2"></w> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2"></w> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2"></w> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2"></w> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2"></w> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3"></w> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3"></w> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3"></w> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3"></w> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3"></w> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3"></w> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3"></w> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3"></w> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3"></w> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3"></w> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3"></w> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3"></w> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3"></w> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3"></w> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4"></w> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4"></w> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4"></w> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4"></w> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4"></w> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4"></w> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4"></w> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4"></w> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4"></w> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4"></w> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4"></w> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4"></w> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4"></w> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4"></w> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5"></w> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5"></w> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5"></w> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5"></w> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5"></w> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5"></w> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5"></w> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5"></w> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5"></w> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5"></w> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5"></w> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5"></w> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5"></w> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5"></w> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6"></w> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6"></w> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6"></w> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6"></w> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6"></w> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6"></w> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6"></w> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6"></w> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6"></w> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6"></w> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6"></w> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6"></w> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6"></w> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6"></w> <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis"></w> <w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis"></w> <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference"></w> <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference"></w> <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title"></w> <w:LsdException Locked="false" Priority="37" Name="Bibliography"></w> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading"></w> </w:LatentStyles> </xml><![endif]--><!--  /* Font Definitions */  @font-face 	{font-family:Wingdings; 	panose-1:5 0 0 0 0 0 0 0 0 0; 	mso-font-charset:2; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:0 268435456 0 0 -2147483648 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:0 0 0 0 0 0 0 0 0 0; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:0 0 0 0 0 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-520092929 1073786111 9 0 415 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0cm; 	margin-right:0cm; 	margin-bottom:10.0pt; 	margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} a:link, span.MsoHyperlink 	{mso-style-priority:99; 	color:blue; 	text-decoration:underline; 	text-underline:single;} a:visited, span.MsoHyperlinkFollowed 	{mso-style-noshow:yes; 	mso-style-priority:99; 	color:purple; 	mso-themecolor:followedhyperlink; 	text-decoration:underline; 	text-underline:single;} p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	margin-top:0cm; 	margin-right:0cm; 	margin-bottom:10.0pt; 	margin-left:36.0pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0cm; 	margin-right:0cm; 	margin-bottom:0cm; 	margin-left:36.0pt; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0cm; 	margin-right:0cm; 	margin-bottom:0cm; 	margin-left:36.0pt; 	margin-bottom:.0001pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast 	{mso-style-priority:34; 	mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-type:export-only; 	margin-top:0cm; 	margin-right:0cm; 	margin-bottom:10.0pt; 	margin-left:36.0pt; 	mso-add-space:auto; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:Calibri; 	mso-fareast-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:612.0pt 792.0pt; 	margin:70.85pt 3.0cm 70.85pt 3.0cm; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;}  /* List Definitions */  @list l0 	{mso-list-id:577598402; 	mso-list-type:hybrid; 	mso-list-template-ids:1395403974 68550657 68550659 68550661 68550657 68550659 68550661 68550657 68550659 68550661;} @list l0:level1 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-18.0pt; 	font-family:Symbol;} @list l0:level2 	{mso-level-number-format:bullet; 	mso-level-text:o; 	mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-18.0pt; 	font-family:"Courier New";} @list l0:level3 	{mso-level-number-format:bullet; 	mso-level-text:; 	mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-18.0pt; 	font-family:Wingdings;} @list l1 	{mso-list-id:656348147; 	mso-list-type:hybrid; 	mso-list-template-ids:778076478 68550671 68550681 68550683 68550671 68550681 68550683 68550671 68550681 68550683;} @list l1:level1 	{mso-level-tab-stop:none; 	mso-level-number-position:left; 	text-indent:-18.0pt;} ol 	{margin-bottom:0cm;} ul 	{margin-bottom:0cm;} -->&lt;!&#8211;[if gte mso 10]&gt; <!--  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tabela normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin-top:0cm; 	mso-para-margin-right:0cm; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0cm; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi; 	mso-fareast-language:EN-US;} --> <!--[endif]--></p>
<p class="MsoNormal" style="text-align: justify;">Para nosso desenvolvimento de games, utilizaremos a versão mais atual do Ogre, e para tal, precisaremos compilar o Ogre3D a partir do seu repositório SVN.</p>
<p class="MsoNormal" style="text-align: justify;">Para tanto, utilizaremos:</p>
<p class="MsoListParagraphCxSpFirst" style="text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: Symbol;"><span>·<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Um programa que vai sincronizar os arquivos-fonte do Ogre3D:</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Tortoise SVN: <a href="http://tortoisesvn.net/downloads">http://tortoisesvn.net/downloads</a></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Baixe e instale para sua arquitetura (32bits ou 64bits)</p>
<p class="MsoListParagraphCxSpMiddle" style="text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: Symbol;"><span>·<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Os arquivos-fonte do SVN do Ogre3D, para tanto:</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Precisaremos fazer svn-checkout de <a href="https://svn.ogre3d.org/svnroot/ogre/trunk">https://svn.ogre3d.org/svnroot/ogre/trunk</a></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Logo abaixo explicarei melhor em qual pasta colocar, e outros detalhes: não faça agora.</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Caso esteja com duvidas de como proceder nesse passo, veja o tutorial de como utilizar SVN.</p>
<p class="MsoListParagraphCxSpMiddle" style="text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: Symbol;"><span>·<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Precisamos das dependências do Ogre, tais como tinyxml, ois, e outras. Baixe a mais atual:</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Ogre Dependencies: <a href="http://www.ogre3d.org/download/source">http://www.ogre3d.org/download/source</a> ou <a href="http://sourceforge.net/projects/ogre/files/">http://sourceforge.net/projects/ogre/files/</a> (VS C++ 2008)</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Apenas baixe o zip.</p>
<p class="MsoListParagraphCxSpMiddle" style="text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: Symbol;"><span>·<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Precisaremos de uma biblioteca de Threads, a utilizada é a Boost.</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]--><span lang="EN-US">BoostPRO: </span><a href="http://www.boostpro.com/download"><span lang="EN-US">http://www.boostpro.com/download</span></a><span> <span lang="EN-US"> </span></span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Baixe e instale.</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Ao instalar esse daqui, selecione a opção BosstDateTime e BoostThreads além das normais para o VS C++ 2008. Opcionalmente, instale as bibliotecas de threads que desejar.</p>
<p class="MsoListParagraphCxSpMiddle" style="text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: Symbol;"><span>·<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Os binários do Directx para desenvolvedores:</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->DirectXSDK: <a href="http://msdn.microsoft.com/en-us/directx/aa937788.aspx">http://msdn.microsoft.com/en-us/directx/aa937788.aspx</a></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Baixe e instale caso queira utilizar o renderizador para Directx (Pode-se utilizar apenas no OpenGL, se quiser).</p>
<p class="MsoListParagraphCxSpMiddle" style="text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: Symbol;"><span>·<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Precisamos de um compilador:</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Visual Studio (Express C++ ou Professional): <a href="http://www.microsoft.com/Express/VC/">http://www.microsoft.com/Express/VC/</a></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Baixe e instale.</p>
<p class="MsoListParagraphCxSpMiddle" style="text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: Symbol;"><span>·<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Precisaremos de um programa que configure nossas variáveis de compilação:</p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]--><span lang="EN-US">Cmake: </span><a href="http://www.cmake.org/"><span lang="EN-US">http://www.cmake.org/</span></a></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Baixe e instale.</p>
<p class="MsoListParagraphCxSpMiddle" style="text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: Symbol;" lang="EN-US"><span>·<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]--><span lang="EN-US">Opcionalmente instale:</span></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->POCO framework <a href="http://pocoproject.org/">http://pocoproject.org/</a></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]--><span lang="EN-US">tbb: Threading Building Blocks </span><a href="http://www.threadingbuildingblocks.org/"><span lang="EN-US">http://www.threadingbuildingblocks.org/</span></a></p>
<p class="MsoListParagraphCxSpMiddle" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]--><span lang="EN-US">Doxygen: Tool for building API documentation </span><a href="http://doxygen.org/"><span lang="EN-US">http://doxygen.org</span></a></p>
<p class="MsoListParagraphCxSpLast" style="margin-left: 72pt; text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span>o<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]--><span lang="EN-US">CppUnit: Library for performing unit tests </span><a href="http://cppunit.sourceforge.net/"><span lang="EN-US">http://cppunit.sourceforge.net</span></a><span> </span></p>
<p class="MsoNormal" style="text-align: justify;">Após esse processo de baixar programas, e instalar coisas, faça o seguinte processo, sugerido pelo <a href="http://blog.tidalware.com/2009/08/building-ogre-trunk-1-7/">http://blog.tidalware.com/2009/08/building-ogre-trunk-1-7/</a> (tomei liberdade de alterar para nosso padrão):</p>
<p class="MsoListParagraphCxSpFirst" style="text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span><span>1.<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Crie a pasta: “C:\OgreSVN” e faça um checkout de <a href="https://svn.ogre3d.org/svnroot/ogre/trunk">https://svn.ogre3d.org/svnroot/ogre/trunk</a> nessa pasta;</p>
<p class="MsoListParagraphCxSpMiddle" style="text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span><span>2.<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Descompacte as duas pastas do “Ogre Dependencies”: Dependencies e Samples para a a pasta “C:\OgreSVN”, meclando o conteúdo das mesmas se necessário;</p>
<p class="MsoListParagraphCxSpMiddle" style="text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span lang="EN-US"><span>3.<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Execute o CMake-Gui (deve estar na seu botão iniciar). <span lang="EN-US">Preencha “Where is the source code:” com “C:/OgreSVN” e “Where to build the binaries” com “C:/OgreSVN/build”; </span></p>
<p class="MsoListParagraphCxSpMiddle" style="text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span><span>4.<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Clique em “Configure” e selecione o seu compilador (no nosso caso, será o Visual Studio 9 2008);</p>
<p class="MsoListParagraphCxSpMiddle" style="text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span><span>5.<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Aparecerá uma lista de opções e flags, eu prefiro desabilitar o BUILD_RENDESYSTEM_D3D10, pois não possuo, gosto de habilitar a flagOGRE_BUILD_COMPONENT_RTSHADERSYSTEM. Caso tenha instalado a biblioteca Boost, habilite a flag OGRE_USE_BOOST;</p>
<p class="MsoListParagraphCxSpLast" style="text-align: justify; text-indent: -18pt;"><!--[if !supportLists]--><span><span>6.<span style="font-family: &quot;Times New Roman&quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none;"> </span></span></span><!--[endif]-->Clique novamente em “Configure”, e depois em “Generate”;</p>
<p><span style="font-size: 11pt; line-height: 115%; font-family: &quot;Calibri&quot;,&quot;sans-serif&quot;;">Caso tenha seguido feito tudo assim como falei, dentro da pasta “C:\OgreSVN\build” teremos o arquivo “OGRE.sln”. Abra ele e compile as versões “debug” e “release”, para modificar o modo de compilação, clique com o botão direito em algum projeto, depois em “Property”, depois no botão “Configuration Manager, mude o “Active Solution </span></div>
<div class="zemanta-pixie" style="margin-top: 10px; height: 15px;"><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
]]></content:encoded>
			<wfw:commentRss>http://tolstenko.net/2009/11/02/compilando-o-ogre3d-a-partir-do-svn/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Classe Fade</title>
		<link>http://tolstenko.net/2009/05/28/classe-fade/</link>
		<comments>http://tolstenko.net/2009/05/28/classe-fade/#comments</comments>
		<pubDate>Thu, 28 May 2009 21:30:34 +0000</pubDate>
		<dc:creator>Alexandre</dc:creator>
				<category><![CDATA[Classes]]></category>
		<category><![CDATA[fade]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[game programming]]></category>
		<category><![CDATA[Xbox360]]></category>
		<category><![CDATA[XNA]]></category>

		<guid isPermaLink="false">http://tolstenko.net/?p=126</guid>
		<description><![CDATA[<a href="http://tolstenko.net/2009/05/28/classe-fade/"><img align="left" hspace="5" width="150" height="150" src="http://tolstenko.net/wp-content/plugins/thumbnail-for-excerpts/tfe_no_thumb.png" class="alignleft wp-post-image tfe" alt="" title="" /></a><p>Implementei uma classe simples, mas interessante, ela faz o fade de imagens. Ela permite a exibição de imagens da mesma maneira que encontramos no inicio de alguns games: o logo de uma empresa, depois outro logo e assim vai até entrar num filmezinho ou entrar no menu inicial do game. Observe que vc poderá modificar [...]]]></description>
			<content:encoded><![CDATA[<p>Implementei uma classe simples, mas interessante, ela faz o fade de imagens. Ela permite a exibição de imagens da mesma maneira que encontramos no inicio de alguns games: o logo de uma empresa, depois outro logo e assim vai até entrar num filmezinho ou entrar no menu inicial do game. Observe que vc poderá modificar essa classe para fazer outras coisas interessantes como fazer a imagem crescer, diminuir&#8230; etc.</p>
<p>O código segue abaixo:</p>
<p><span id="more-126"></span></p>
<table class="csharp" style="border: 1px solid #054b6e; background: #f8f8f8 none repeat scroll 0% 0%; border-collapse: collapse; width: 646px; height: 3447px;" border="0">
<tbody>
<tr class="li1">
<td style="border-right: 1px dotted #dddddd; background: #f0f0f0 none repeat scroll 0% 0%; width: 1px; vertical-align: top; color: #676f73; font-size: 12px; text-align: right;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185</pre>
</td>
<td style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;">
<pre style="margin:0; background:none; vertical-align:top; padding: 0px 4px; font-size: 12px;"><span style="vertical-align:top"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span></span>
<span style="vertical-align:top"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Collections.Generic</span><span style="color: #008000;">;</span></span>
<span style="vertical-align:top"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Text</span><span style="color: #008000;">;</span></span>
<span style="vertical-align:top"><span style="color: #0600FF;">using</span> <span style="color: #008080;">Microsoft.Xna.Framework</span><span style="color: #008000;">;</span></span>
<span style="vertical-align:top"><span style="color: #0600FF;">using</span> <span style="color: #008080;">Microsoft.Xna.Framework.Graphics</span><span style="color: #008000;">;</span></span>
<span style="vertical-align:top"><span style="color: #0600FF;">using</span> <span style="color: #008080;">Microsoft.Xna.Framework.Content</span><span style="color: #008000;">;</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top"><span style="color: #0600FF;">namespace</span> MetalX.<span style="color: #0000FF;">Efeitos</span></span>
<span style="vertical-align:top"><span style="color: #000000;">{</span></span>
<span style="vertical-align:top">    <span style="color: #FF0000;">class</span> Fade</span>
<span style="vertical-align:top">    <span style="color: #000000;">{</span></span>
<span style="vertical-align:top">        <span style="color: #008080;">#region atributos</span></span>
<span style="vertical-align:top">        Texture2D textura<span style="color: #008000;">;</span></span>
<span style="vertical-align:top">        SpriteFont fonte<span style="color: #008000;">;</span></span>
<span style="vertical-align:top">        estadoImg meuEstado<span style="color: #008000;">;</span></span>
<span style="vertical-align:top">        <span style="color: #FF0000;">int</span> alfaAtual<span style="color: #008000;">;</span></span>
<span style="vertical-align:top">        <span style="color: #FF0000;">double</span> tempoEsperaAcender<span style="color: #008000;">;</span></span>
<span style="vertical-align:top">        <span style="color: #FF0000;">double</span> tempoEsperaFim<span style="color: #008000;">;</span></span>
<span style="vertical-align:top">        <span style="color: #FF0000;">double</span> tempoAcesa<span style="color: #008000;">;</span></span>
<span style="vertical-align:top">        <span style="color: #FF0000;">double</span> horaInicioAcesa<span style="color: #008000;">;</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #FF0000;">int</span> velAlfa<span style="color: #008000;">;</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #008080;">#endregion</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #008080;">#region enums</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// enum for the image state</span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">enum</span> estadoImg</span>
<span style="vertical-align:top">        <span style="color: #000000;">{</span></span>
<span style="vertical-align:top">            Apagada,</span>
<span style="vertical-align:top">            Acendendo,</span>
<span style="vertical-align:top">            Acesa,</span>
<span style="vertical-align:top">            Apagando,</span>
<span style="vertical-align:top">            PreFim,</span>
<span style="vertical-align:top">            Fim</span>
<span style="vertical-align:top">        <span style="color: #000000;">}</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #008080;">#endregion</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #008080;">#region propriedades</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> Width <span style="color: #000000;">{</span> get <span style="color: #000000;">{</span> <span style="color: #0600FF;">return</span> textura.<span style="color: #0000FF;">Width</span><span style="color: #008000;">;</span> <span style="color: #000000;">}</span> <span style="color: #000000;">}</span></span>
<span style="vertical-align:top">        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> Height <span style="color: #000000;">{</span> get <span style="color: #000000;">{</span> <span style="color: #0600FF;">return</span> textura.<span style="color: #0000FF;">Height</span><span style="color: #008000;">;</span> <span style="color: #000000;">}</span> <span style="color: #000000;">}</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// Atribute for MeuEstado</span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #0600FF;">public</span> estadoImg MeuEstado <span style="color: #000000;">{</span> get <span style="color: #000000;">{</span> <span style="color: #0600FF;">return</span> meuEstado<span style="color: #008000;">;</span> <span style="color: #000000;">}</span>
                                     set <span style="color: #000000;">{</span> meuEstado <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #000000;">}</span> <span style="color: #000000;">}</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// Valor em segundos, podendo ser fracionario que se espera para</span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// comecar a imagem</span></span>
<span style="vertical-align:top">        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">double</span> TempoEsperaAcender <span style="color: #000000;">{</span> set <span style="color: #000000;">{</span> tempoEsperaAcender <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #000000;">}</span>
                                           get <span style="color: #000000;">{</span> <span style="color: #0600FF;">return</span> tempoEsperaAcender<span style="color: #008000;">;</span> <span style="color: #000000;">}</span> <span style="color: #000000;">}</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// warning!! the alfa value must be between 0 and 255</span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> AlfaAtual <span style="color: #000000;">{</span> set <span style="color: #000000;">{</span> alfaAtual <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #000000;">}</span>
                               get <span style="color: #000000;">{</span> <span style="color: #0600FF;">return</span> alfaAtual<span style="color: #008000;">;</span> <span style="color: #000000;">}</span> <span style="color: #000000;">}</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// value in seconds, the value may be fractional. is the time waited </span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// waited to draw another image</span></span>
<span style="vertical-align:top">        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">double</span> TempoEsperaFim <span style="color: #000000;">{</span> set <span style="color: #000000;">{</span> tempoEsperaFim <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #000000;">}</span>
                                       get <span style="color: #000000;">{</span> <span style="color: #0600FF;">return</span> tempoEsperaFim<span style="color: #008000;">;</span> <span style="color: #000000;">}</span> <span style="color: #000000;">}</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// The velocity that alfa changes</span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> VelAlfa <span style="color: #000000;">{</span> get <span style="color: #000000;">{</span> <span style="color: #0600FF;">return</span> velAlfa<span style="color: #008000;">;</span> <span style="color: #000000;">}</span> set <span style="color: #000000;">{</span> velAlfa <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #000000;">}</span> <span style="color: #000000;">}</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// time to wait in seconds of the duration of the fully painted image</span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">double</span> TempoAcesa <span style="color: #000000;">{</span> get <span style="color: #000000;">{</span> <span style="color: #0600FF;">return</span> tempoAcesa<span style="color: #008000;">;</span> <span style="color: #000000;">}</span>
                                   set <span style="color: #000000;">{</span> tempoAcesa <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #000000;">}</span> <span style="color: #000000;">}</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// the exact time of the end of the last image state</span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">double</span> HoraInicioAcesa <span style="color: #000000;">{</span> set <span style="color: #000000;">{</span> horaInicioAcesa <span style="color: #008000;">=</span> value<span style="color: #008000;">;</span> <span style="color: #000000;">}</span>
                                        get <span style="color: #000000;">{</span> <span style="color: #0600FF;">return</span> horaInicioAcesa<span style="color: #008000;">;</span> <span style="color: #000000;">}</span> <span style="color: #000000;">}</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #008080;">#endregion</span></span>
<span style="vertical-align:top"> </span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// Class construtor</span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span>
<span style="vertical-align:top">        <span style="color: #008080; font-style: italic;">/// </span></span></pre>
<p>parameter passed to be used to load the image<br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">/// </span></span></p>
<p>the adress of the image<br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">/// </span></span></p>
<p>the velocity of changing alfa<br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">/// </span></span></p>
<p>time waited before start drawing the image<br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">/// </span></span></p>
<p>time waited on the image state fully draw<br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">/// </span></span></p>
<p>time waited after the draw becomes transparent<br />
<span style="vertical-align:top"> <span style="color: #0600FF;">public</span> Fade<span style="color: #000000;">(</span>Game1 game, <span style="color: #FF0000;">string</span> theFilePathAndName, <span style="color: #FF0000;">int</span> inc, <span style="color: #FF0000;"><br />
double</span> tempoEsperaAcender, <span style="color: #FF0000;">Double</span> tAcesa, <span style="color: #FF0000;">double</span> tempoEsperaFim<span style="color: #000000;">)</span></span><br />
<span style="vertical-align:top"> <span style="color: #000000;">{</span></span><br />
<span style="vertical-align:top"> TempoEsperaFim <span style="color: #008000;">=</span> tempoEsperaFim<span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> fonte <span style="color: #008000;">=</span> game.<span style="color: #0000FF;">Content</span>.<span style="color: #0000FF;">Load</span><span style="color: #008000;">&lt;</span>SpriteFont<span style="color: #008000;">&gt;</span><span style="color: #000000;">(</span><span style="color: #666666;">@&#8221;fonts\arial&#8221;</span><span style="color: #000000;">)</span><span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> TempoEsperaAcender <span style="color: #008000;">=</span> tempoEsperaAcender<span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> TempoAcesa <span style="color: #008000;">=</span> tAcesa<span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> AlfaAtual <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> MeuEstado <span style="color: #008000;">=</span> estadoImg.<span style="color: #0000FF;">Apagada</span><span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> textura <span style="color: #008000;">=</span> game.<span style="color: #0000FF;">Content</span>.<span style="color: #0000FF;">Load</span><span style="color: #008000;">&lt;</span>Texture2D<span style="color: #008000;">&gt;</span><span style="color: #000000;">(</span>theFilePathAndName<span style="color: #000000;">)</span> <span style="color: #0600FF;">as</span> Texture2D<span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> tempoEsperaAcender <span style="color: #008000;">=</span> <span style="color: #FF0000;">2</span><span style="color: #008000;">;</span> </span><br />
<span style="vertical-align:top"> velAlfa <span style="color: #008000;">=</span> inc<span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> <span style="color: #000000;">}</span></span><br />
<span style="vertical-align:top"> </span><br />
<span style="vertical-align:top"> </span><br />
<span style="vertical-align:top"> </span><br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">/// </span></span><br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">/// updates the object </span></span><br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">/// </span></span><br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">/// </span></span></p>
<p>game time<br />
<span style="vertical-align:top"> <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Update<span style="color: #000000;">(</span>GameTime theGameTime<span style="color: #000000;">)</span></span><br />
<span style="vertical-align:top"> <span style="color: #000000;">{</span></span><br />
<span style="vertical-align:top"> <span style="color: #0600FF;">switch</span> <span style="color: #000000;">(</span>MeuEstado<span style="color: #000000;">)</span></span><br />
<span style="vertical-align:top"> <span style="color: #000000;">{</span></span><br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">// caso inicial, espera para comecar a acender</span></span><br />
<span style="vertical-align:top"> <span style="color: #0600FF;">case</span> estadoImg.<span style="color: #0000FF;">Apagada</span><span style="color: #008000;">:</span></span><br />
<span style="vertical-align:top"><span style="color: #008080; font-style: italic;"> // atualiza o contador de espera para acender</span></span><span style="vertical-align:top"><br />
tempoEsperaAcender <span style="color: #008000;">-=</span> theGameTime.<span style="color: #0000FF;">ElapsedGameTime</span>.<span style="color: #0000FF;">TotalSeconds</span><span style="color: #008000;">;</span> </span><br />
<span style="vertical-align:top"><span style="color: #008080; font-style: italic;">// testa se ja tá na hora de comecar a acender</span></span><span style="vertical-align:top"> <span style="color: #0600FF;"><br />
if</span> <span style="color: #000000;">(</span>tempoEsperaAcender <span style="color: #008000;">&lt;=</span> <span style="color: #FF0000;">0</span><span style="color: #000000;">)</span> </span><br />
<span style="vertical-align:top"> MeuEstado <span style="color: #008000;">=</span> estadoImg.<span style="color: #0000FF;">Acendendo</span><span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">// comeca a acender</span></span><br />
<span style="vertical-align:top"> break<span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> </span><br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">// caso onde a imagem esta comecando a acender</span></span><br />
<span style="vertical-align:top"> <span style="color: #0600FF;">case</span> estadoImg.<span style="color: #0000FF;">Acendendo</span><span style="color: #008000;">:</span></span><br />
<span style="vertical-align:top"> AlfaAtual <span style="color: #008000;">+=</span> velAlfa<span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">// incrementa o canal de alfa</span></span><br />
<span style="vertical-align:top"> <span style="color: #0600FF;">if</span> <span style="color: #000000;">(</span>AlfaAtual <span style="color: #008000;">&gt;</span> <span style="color: #FF0000;">255</span><span style="color: #000000;">)</span></span><br />
<span style="vertical-align:top"> <span style="color: #000000;">{</span></span><br />
<span style="vertical-align:top"> MeuEstado <span style="color: #008000;">=</span> estadoImg.<span style="color: #0000FF;">Acesa</span><span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> AlfaAtual <span style="color: #008000;">=</span> <span style="color: #FF0000;">255</span><span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> HoraInicioAcesa <span style="color: #008000;">=</span> theGameTime.<span style="color: #0000FF;">TotalRealTime</span>.<span style="color: #0000FF;">TotalSeconds</span><span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> <span style="color: #000000;">}</span></span><br />
<span style="vertical-align:top"> break<span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> </span><br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">// caso onde a imagem está acesa e ela tem que esperar um tempo acesa</span></span><br />
<span style="vertical-align:top"> <span style="color: #0600FF;">case</span> estadoImg.<span style="color: #0000FF;">Acesa</span><span style="color: #008000;">:</span></span><br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">// se o tempo q ela está acesa passar do tempo q foi dito<br />
// para ela ficar</span></span><br />
<span style="vertical-align:top"> <span style="color: #0600FF;">if</span> <span style="color: #000000;">(</span>TempoAcesa <span style="color: #008000;">&lt;=</span> theGameTime.<span style="color: #0000FF;">TotalRealTime</span>.<span style="color: #0000FF;">TotalSeconds</span> <span style="color: #008000;"><br />
-</span> HoraInicioAcesa<span style="color: #000000;">)</span></span><br />
<span style="vertical-align:top"> <span style="color: #000000;">{</span></span><br />
<span style="vertical-align:top"> MeuEstado <span style="color: #008000;">=</span> estadoImg.<span style="color: #0000FF;">Apagando</span><span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> <span style="color: #000000;">}</span></span><br />
<span style="vertical-align:top"> break<span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> </span><br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">// caso em que a imagem está apagando</span></span><br />
<span style="vertical-align:top"> <span style="color: #0600FF;">case</span> estadoImg.<span style="color: #0000FF;">Apagando</span><span style="color: #008000;">:</span></span><br />
<span style="vertical-align:top"> AlfaAtual <span style="color: #008000;">-=</span> velAlfa<span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">// vai diminuido o alfa</span></span><br />
<span style="vertical-align:top"> <span style="color: #0600FF;">if</span> <span style="color: #000000;">(</span>AlfaAtual <span style="color: #008000;">&lt;=</span> <span style="color: #FF0000;">0</span><span style="color: #000000;">)</span> <span style="color: #008080; font-style: italic;">// se tiver apagado tudo, muda o estado</span></span><br />
<span style="vertical-align:top"> <span style="color: #000000;">{</span></span><br />
<span style="vertical-align:top"> MeuEstado <span style="color: #008000;">=</span> estadoImg.<span style="color: #0000FF;">PreFim</span><span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> AlfaAtual <span style="color: #008000;">=</span> <span style="color: #FF0000;">0</span><span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> HoraInicioAcesa <span style="color: #008000;">=</span> theGameTime.<span style="color: #0000FF;">TotalRealTime</span>.<span style="color: #0000FF;">TotalSeconds</span><span style="color: #008000;">;</span> </span><br />
<span style="vertical-align:top"> <span style="color: #000000;">}</span></span><br />
<span style="vertical-align:top"> break<span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> </span><br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">// caso a imagem apague, espera por um tempo dps permite outra<br />
// imagem aparecer</span></span><br />
<span style="vertical-align:top"> <span style="color: #0600FF;">case</span> estadoImg.<span style="color: #0000FF;">PreFim</span><span style="color: #008000;">:</span></span><br />
<span style="vertical-align:top"> <span style="color: #0600FF;">if</span> <span style="color: #000000;">(</span>TempoEsperaFim <span style="color: #008000;">&lt;=</span> theGameTime.<span style="color: #0000FF;">TotalRealTime</span>.<span style="color: #0000FF;">TotalSeconds</span><br />
<span style="color: #008000;">-</span> HoraInicioAcesa<span style="color: #000000;">)</span></span><br />
<span style="vertical-align:top"> <span style="color: #000000;">{</span></span><br />
<span style="vertical-align:top"> MeuEstado <span style="color: #008000;">=</span> estadoImg.<span style="color: #0000FF;">Fim</span><span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> <span style="color: #000000;">}</span></span><br />
<span style="vertical-align:top"> break<span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">// nao faz nada qnd apaga</span></span><br />
<span style="vertical-align:top"> <span style="color: #0600FF;">case</span> estadoImg.<span style="color: #0000FF;">Fim</span><span style="color: #008000;">:</span></span><br />
<span style="vertical-align:top"> break<span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> <span style="color: #000000;">}</span></span><br />
<span style="vertical-align:top"> <span style="color: #000000;">}</span></span><br />
<span style="vertical-align:top"> </span><br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">/// </span></span><br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">/// the method draw</span></span><br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">/// </span></span><br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">/// </span></span></p>
<p>the spritebatch<br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">/// </span></span></p>
<p>the position X<br />
<span style="vertical-align:top"> <span style="color: #008080; font-style: italic;">/// </span></span></p>
<p>the position Y<br />
<span style="vertical-align:top"> <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">void</span> Draw<span style="color: #000000;">(</span>SpriteBatch theBatch, <span style="color: #FF0000;">int</span> theXPosition, <span style="color: #FF0000;">int</span> theYPosition<span style="color: #000000;">)</span></span><br />
<span style="vertical-align:top"> <span style="color: #000000;">{</span></span><br />
<span style="vertical-align:top"> theBatch.<span style="color: #0000FF;">Draw</span><span style="color: #000000;">(</span>textura,<br />
<a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Rectangle<span style="color: #000000;">(</span>theXPosition, theYPosition, textura.<span style="color: #0000FF;">Width</span>, textura.<span style="color: #0000FF;">Height</span><span style="color: #000000;">)</span>,<br />
<a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Color<span style="color: #000000;">(</span><span style="color: #FF0000;">255</span>, <span style="color: #FF0000;">255</span>, <span style="color: #FF0000;">255</span>, <span style="color: #000000;">(</span><span style="color: #FF0000;">byte</span><span style="color: #000000;">)</span>MathHelper.<span style="color: #0000FF;">Clamp</span><span style="color: #000000;">(</span>alfaAtual, <span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">255</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span><span style="color: #000000;">)</span><span style="color: #008000;">;</span></span><br />
<span style="vertical-align:top"> <span style="color: #000000;">}</span></span><br />
<span style="vertical-align:top"> </span><br />
<span style="vertical-align:top"> <span style="color: #000000;">}</span></span><br />
<span style="vertical-align:top"><span style="color: #000000;">}</span></span><br />
<span style="vertical-align:top"> </span></td>
</tr>
</tbody>
</table>
<p>Com essa idéia, pude fazer com que se desenhasse uma imagem apos a outra, instanciando um objeto de cada vez e transitando de uma imagem para outra quando a anterior chegar no estado fim.</p>
]]></content:encoded>
			<wfw:commentRss>http://tolstenko.net/2009/05/28/classe-fade/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>#00 &#8211; Apresentação</title>
		<link>http://tolstenko.net/2009/02/12/17/</link>
		<comments>http://tolstenko.net/2009/02/12/17/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 20:05:52 +0000</pubDate>
		<dc:creator>Alexandre</dc:creator>
				<category><![CDATA[XNA]]></category>
		<category><![CDATA[begining]]></category>
		<category><![CDATA[creators]]></category>
		<category><![CDATA[developer center]]></category>
		<category><![CDATA[game programming]]></category>
		<category><![CDATA[Gamux]]></category>
		<category><![CDATA[jogos]]></category>
		<category><![CDATA[Unicamp]]></category>
		<category><![CDATA[xna creators club]]></category>

		<guid isPermaLink="false">http://tolstenko.net/?p=17</guid>
		<description><![CDATA[<a href="http://tolstenko.net/2009/02/12/17/"><img align="left" hspace="5" width="150" height="150" src="http://tolstenko.net/wp-content/uploads/2009/02/apresentacao-150x150.jpg" class="alignleft wp-post-image tfe" alt="apresentacao" title="apresentacao" /></a><p></p>
<p>Começo com esse post, uma série de artigos desenvolvidos por mim com o intúito de aprender ensinar como programar jogos em XNA. O mote desse projeto é o fato consumado de que muitos brasileiros são apaixonados por jogos, inclusive eu, mas não possuem, à sua disposição, um material tal qual eu busco construir seguindo essas [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tolstenko.net/2009/02/12/17/"><img class="size-full wp-image-30 alignleft" title="apresentacao" src="http://tolstenko.net/wp-content/uploads/2009/02/apresentacao.jpg" alt="apresentacao" width="315" height="315" /></a></p>
<p>Começo com esse post, uma série de artigos desenvolvidos por mim com o intúito de <span style="text-decoration: line-through;">aprender</span> ensinar como programar jogos em XNA. O mote desse projeto é o fato consumado de que muitos brasileiros são apaixonados por jogos, inclusive eu, mas não possuem, à sua disposição, um material tal qual eu busco construir seguindo essas diretivas:</p>
<ul>
<li> Claro (fácil de entender);</li>
<li>Conciso (o material todo mastigadinho e resumido);</li>
<li>Dinâmico (enérgico, se bate de um lado e ja está do outro);</li>
<li>Referenciável (como um caderno de consulta por assuntos estudados);</li>
<li>Em português (nossa! é um horror ter que ler tudo em inglês);</li>
<li>E o mais importante de tudo: um material <span style="text-decoration: underline;">DIVERTIDO</span>.</li>
<p><span id="more-17"></span></ul>
<p>Irei fazer o processo inverso de uma produção de artigos, ou séries de artigos: falarei primeiro das referências usadas para o estudo. Pois assim fica mais fácil para os curiosos que<span style="text-decoration: line-through;">, come eu,</span> gostam de pular algumas etapas no aprendizado. E de qualquer forma, poderei livremente falar usando citações, sem que me <span style="text-decoration: line-through;">importunem</span> chamem à atenção sobre direitos autorais.</p>
<ol>
<li><img class="alignnone size-full wp-image-16" title="prefessional-xna-game-programming" src="http://tolstenko.net/wp-content/uploads/2009/02/prefessional-xna-game-programming.jpg" alt="prefessional-xna-game-programming" width="118" height="150" /> &#8211; Professional XNA Game Programming &#8211; Meu primeiro livro sobre XNA. Focado no XNA 1.0, que sofreu algumas mudanças, mas com ele aprendí as idéias e a logica desse tipo de programação. Possui muito código de exemplo e também explica muitissimo bem.</li>
<li><img class="alignnone size-medium wp-image-23" title="beginning-xna-20-game-programming-from-novice-to-professional" src="http://tolstenko.net/wp-content/uploads/2009/02/beginning-xna-20-game-programming-from-novice-to-professional.jpg" alt="beginning-xna-20-game-programming-from-novice-to-professional" width="192" height="254" /> &#8211; Begining XNA 2.0 Game programming &#8211; From Novice to Professional. Busquei esse livre mais pelo fato dos escritores serem brasileiros e para me atualizar para as mudanças para XNA 2.0.</li>
<li><img class="alignnone size-full wp-image-24" title="learning-xna-30" src="http://tolstenko.net/wp-content/uploads/2009/02/learning-xna-30.jpg" alt="learning-xna-30" width="194" height="254" /> &#8211; Learning XNA 3.0. Estou comprando esse hoje, espero que chegue inteiro e não se perca pelo meio do caminho. Nem sei como vai ser. Pelo que eu li&#8230; parece que promete.</li>
<li><a href="http://www.lms.ic.unicamp.br:3334/">Gamux</a> &#8211; Grupo de jogos da UNICAMP. Foi lá aonde tudo começou.</li>
<li><a href="http://www.sharpgames.net">SharpGames</a> &#8211; Excelente lugar para se encontrar material em português.</li>
<li><a href="http://creators.xna.com">XNA Creators Club</a>- O lugar onde as pessoas podem encontrar exemplos de codigos para baixar, e, tambem starterkits.</li>
<li><a href="http://msdn.microsoft.com/en-us/xna/default.aspx">Xna Developer Center</a> e <a href="http://msdn.microsoft.com/en-us/library/bb200104.aspx">XNA Library</a> &#8211; Material mais hardcore e guia de referencia de funções.</li>
</ol>
<p>Agora é &#8220;só&#8221; falta seguir essas coisas que daqui à pouco alguem da MS Games te liga te chamando para trabalhar lá&#8230; (huahehaui) Ai ai&#8230; mas não tem nada não, sonhar faz bem né?</p>
<p>Só para não estimular tanto vocês, os programadores de games de verdade programam em algo semelhante ao <a href="http://pt.wikipedia.org/wiki/Assembly">Assembly</a>. <span style="text-decoration: line-through;">E aí negão, tú se lascou! (heahuheuhi)</span> Mas não desestimulem não, porque se aprendermos um framework do nível do XNA, passar para qualquer outra coisa fica muito mais fácil.</p>
<p>Aquele abraço!</p>
]]></content:encoded>
			<wfw:commentRss>http://tolstenko.net/2009/02/12/17/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->