<?xml version="1.0" encoding="ISO-8859-1"?>
<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>Gabriela Trindade Perry: HCI, Design Cognition, Flex &#187; Flash games</title>
	<atom:link href="http://www.gabriela.trindade.nom.br/category/flash-games/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.gabriela.trindade.nom.br</link>
	<description></description>
	<lastBuildDate>Sun, 09 Jan 2011 15:28:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>Você faz hitTest dentro de um for no EnterFrame?</title>
		<link>http://www.gabriela.trindade.nom.br/2009/11/voce-faz-hittest-dentro-de-um-for-no-enterframe/</link>
		<comments>http://www.gabriela.trindade.nom.br/2009/11/voce-faz-hittest-dentro-de-um-for-no-enterframe/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 12:42:30 +0000</pubDate>
		<dc:creator>gabrielaperry</dc:creator>
				<category><![CDATA[Flash games]]></category>

		<guid isPermaLink="false">http://www.gabriela.trindade.nom.br/?p=723</guid>
		<description><![CDATA[Então você faz hitTestObject no for dentro de um EnterFrame, hein? Deixa eu adivinhar: hero.addEventListener&#40;Event.ENTERFRAME, testaColisao&#41;; function testaColisao&#40;evt:Event&#41;:void&#123; var hero:MovieClip=MovieClip&#40;evt.currentTarget&#41;; var inimigo:MovieClip; &#160; for&#40;var i:int=0; i &#38;lt; inimigos.lenght; i++&#41;&#123; inimigo=MovieClip&#40;inimigos&#91;i&#93;&#41;; &#160; if&#40;hero.hitTestObject&#40;inimigo&#41;&#41;&#123; trace&#40;&#34;bateu!!!&#34;&#41;; &#125; &#125; &#125; Tá loco!!! Quem sabe você pensa diferente e faz com um Array bidimensional? A idéia é que cada vez que [...]]]></description>
			<content:encoded><![CDATA[<p>Então você faz hitTestObject no for dentro de um EnterFrame, hein? Deixa eu adivinhar:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">hero.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTERFRAME</span>, testaColisao<span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">function</span> testaColisao<span style="color: #66cc66;">&#40;</span>evt:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span><span style="color: #66cc66;">&#123;</span>
       <span style="color: #000000; font-weight: bold;">var</span> hero:<span style="color: #0066CC;">MovieClip</span>=<span style="color: #0066CC;">MovieClip</span><span style="color: #66cc66;">&#40;</span>evt.<span style="color: #006600;">currentTarget</span><span style="color: #66cc66;">&#41;</span>;
       <span style="color: #000000; font-weight: bold;">var</span> inimigo:<span style="color: #0066CC;">MovieClip</span>;
&nbsp;
       <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> i:<span style="color: #0066CC;">int</span>=<span style="color: #cc66cc;">0</span>; i <span style="color: #66cc66;">&amp;</span>lt; inimigos.<span style="color: #006600;">lenght</span>; i++<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
              inimigo=<span style="color: #0066CC;">MovieClip</span><span style="color: #66cc66;">&#40;</span>inimigos<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
              <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span>hero.<span style="color: #006600;">hitTestObject</span><span style="color: #66cc66;">&#40;</span>inimigo<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span>
                     <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;bateu!!!&quot;</span><span style="color: #66cc66;">&#41;</span>;
              <span style="color: #66cc66;">&#125;</span>
       <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Tá loco!!!</p>
<p>Quem sabe você pensa diferente e faz com um Array bidimensional? A idéia é que cada vez que (por exemplo), seu hero se mover ou se cenário se moverem, você muda o índice do Array. Se tem alguma coisa com que colidir, o ínidice é 1. Se não, é 0.</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">var</span> mapa:<span style="color: #0066CC;">Array</span>= <span style="color: #66cc66;">&#91;</span>
 <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>,
 <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>,
 <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>,
 <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>,
 <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>,
 <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>,
 <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>,
 <span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>
<span style="color: #66cc66;">&#93;</span>;
&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> vel:<span style="color: #0066CC;">int</span>=<span style="color: #cc66cc;">200</span><span style="color: #66cc66;">/</span>mapa<span style="color: #66cc66;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#93;</span>.<span style="color: #0066CC;">length</span>;
<span style="color: #000000; font-weight: bold;">var</span> indiceX:<span style="color: #0066CC;">int</span>=<span style="color: #cc66cc;">4</span>;
<span style="color: #000000; font-weight: bold;">var</span> indiceY:<span style="color: #0066CC;">int</span>=<span style="color: #cc66cc;">7</span>;
&nbsp;
<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>KeyboardEvent.<span style="color: #006600;">KEY_DOWN</span>, moveCenario<span style="color: #66cc66;">&#41;</span>;
<span style="color: #000000; font-weight: bold;">function</span> moveCenario<span style="color: #66cc66;">&#40;</span>evt:KeyboardEvent<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>evt.<span style="color: #006600;">keyCode</span>==Keyboard.<span style="color: #0066CC;">LEFT</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>mapa<span style="color: #66cc66;">&#91;</span>indiceY<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span>indiceX-<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">!</span>=<span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
			indiceX-=<span style="color: #cc66cc;">1</span>;
                            fundo.<span style="color: #006600;">x</span>+=vel;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Neste exemplo o cenário anda apenas quando a tecla LEFT do teclado é pressionada. A posição inicial (os valores inicias das variáveis indiceX e indiceY) é dada pela posição do hero no cenário.<br />
O resultado é este (clique sobre a]o swf para dar foco e use a tecla LEFT):<br />

<object width="200" height="200">
<param name="movie" value="http://www.gabriela.trindade.nom.br/wp-content/uploads/2009/11/bate_parede.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<embed type="application/x-shockwave-flash" width="200" height="200" src="http://www.gabriela.trindade.nom.br/wp-content/uploads/2009/11/bate_parede.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</p>
<p>O código que está aí não está completo&#8230; Você só vai conseguir dar um passo para cima (na verdade, é o cenário que se move) e vai dar de &#8220;cara&#8221; na parede.  Além disso, se você baixar o fla, vai perceber que não implementei controles de cenário (impedir a movimentação quando chegar nos extremos). Mas tudo isso é implementável. Esta base é usada por engines &#8220;isométricas&#8221; para controlar tanto a movimentação quanto as colisões e profundidades (o que está na frente e o que está atrás).</p>
<p>Uma engine bem conhecida é esta aqui: <a href="http://code.google.com/p/as3isolib/" target="_blank">http://code.google.com/p/as3isolib/</a></p>
<p>E se você achou bala esse código (porque eu acho!) pode ler muito mais sobre isso neste site, que é uma importante referência para quem faz games (fpara flash): <a href="http://www.tonypa.pri.ee/" target="_blank">http://www.tonypa.pri.ee/</a></p>
<p><img class="size-full wp-image-730 alignnone" title="1258893321_Flash" src="http://www.gabriela.trindade.nom.br/wp-content/uploads/2009/11/1258893321_Flash.png" alt="1258893321_Flash" width="28" height="28" /> <a href="/arquivos/bate_parede.fla">Baixe aqui o fla</a></p>
<p>PS: Este post foi escrito porque meus alunos de projeto de games, o Beto e o William me torraram a paciência até eu explicar como fazia isso. Eu não podia deixar eles fazendo hitTest no for dentro de um EnterFrame para um cenário com 5.000 pixels de largura. Boa sorte meninos! Quero ver esse jogo funcionando!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gabriela.trindade.nom.br/2009/11/voce-faz-hittest-dentro-de-um-for-no-enterframe/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Você gosta de matemática?</title>
		<link>http://www.gabriela.trindade.nom.br/2008/11/voce-gosta-de-matematica/</link>
		<comments>http://www.gabriela.trindade.nom.br/2008/11/voce-gosta-de-matematica/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 12:37:25 +0000</pubDate>
		<dc:creator>gabrielaperry</dc:creator>
				<category><![CDATA[Flash games]]></category>

		<guid isPermaLink="false">http://www.gabriela.trindade.nom.br/?p=111</guid>
		<description><![CDATA[Normalmente a resposta é negativa. Já tem muita gente queimando as pestanas pra entender porque quase ninguém gosta, e as possíveis causas vão deste o pouco empenho dos alunos até a forma como é ensinada. Bem,  não tenho condições de entrar nessa discussão, mas acho uma pena que isso seja assim. Afinal, a matemática (pelo [...]]]></description>
			<content:encoded><![CDATA[<p>Normalmente a resposta é negativa. Já tem muita gente queimando as pestanas pra entender porque quase ninguém gosta, e as possíveis causas vão deste o pouco empenho dos alunos até a forma como é ensinada.</p>
<p>Bem,  não tenho condições de entrar nessa discussão, mas acho uma pena que isso seja assim. Afinal, a matemática (pelo menos a de segundo grau) é um refúgio seguro para quem , como eu, fica meio perdido com esse mundo doido e sem sentido.</p>
<p>Bem, devaneios à parte, boa parte dos meus leitores gosta mesmo de lógica, afinal, aqui eu falo de programação e IHC, além de postar os meus programas e artigos científicos. Então devem gostar de matemática certo?</p>
<p>Ahn, não sei&#8230; Mas, para tentar mostrar que o assunto é realmente interessante, resolvi postar um exemplo de jogo que usa conceitos básicos de forma intensiva. É claro que vamos falar um pouco de trigonometria (buh!).</p>
<p><span id="more-111"></span></p>
<p>O caso é o seguinte: precisamos fazer a arma de um carinha (herói) seguir o mouse (ah, de novo essa história???). Vamos ver como se faz isso:</p>
<p><img alt="rotacao.png" id="image113" src="http://www.gabriela.trindade.nom.br/wp-content/uploads/2008/11/rotacao.png" /></p>
<p><a target="_blank" href="http://www.gabriela.trindade.nom.br/arquivos/math/1_rotation_angle.swf">VER SWF FUNCIONANDO </a></p>
<p><a href="http://www.gabriela.trindade.nom.br/arquivos/math/1_rotation_angle.fla">BAIXAR O FLA </a><br />
Bem, agora precisamos posicionar a bala (o &#8220;carinha&#8221; tem uma arma, sabe?). Para isso precisaremos, de novo, das funções trigonométricas. Afinal, não podemos simplesmente colocar a bala na mesma posição (x, y)  da arma&#8230; A arma nunca muda de posição, lembra? Ela só muda a rotação.</p>
<p><img alt="posicao-da-bala.png" id="image114" src="http://www.gabriela.trindade.nom.br/wp-content/uploads/2008/11/posicao-da-bala.png" /></p>
<p><a target="_blank" href="http://www.gabriela.trindade.nom.br/arquivos/math/2_firing.swf">VER O SWF FUNCIONANDO </a></p>
<p><a href="http://www.gabriela.trindade.nom.br/arquivos/math/2_firing.fla">BAIXAR O FLA </a><br />
Que legal, fizemos a bala ser posicionada corretamente. Agora ela tem que se mover. Qual é a primeira tentativa? Incrementar a posição x com um valor fixo? Vamos ver no que dá:</p>
<p><img id="image115" alt="fire-straight.png" src="http://www.gabriela.trindade.nom.br/wp-content/uploads/2008/11/fire-straight.png" /></p>
<p><a target="_blank" href="http://www.gabriela.trindade.nom.br/arquivos/math/2_firing_straight.swf">VER COMO FICOU O SWF </a></p>
<p><img alt="reta.png" id="image116" src="http://www.gabriela.trindade.nom.br/wp-content/uploads/2008/11/reta.png" /></p>
<p><a target="_blank" href="http://www.gabriela.trindade.nom.br/arquivos/math/2_firing_right.swf">VER COMO FICOU O SWF </a></p>
<p><a href="http://www.gabriela.trindade.nom.br/arquivos/math/3_firing_right.fla">BAIXAR O FLA </a><br />
Bem, agora precisamos fazer algumas modificações quando o x é negativo&#8230; Mas isso é só um pouquinho de inteligência artificial (meia dúzia de if / else, hehehehe)</p>
<p>Era isso.</p>
<p>Ah! Postarei os flas depois que terminar o semestre do curso de jogos na <a target="_blank" href="http://www.feevale.br/internas/default.asp?intIdSecao=1668&#038;intIdConteudo=22244">FEEVALE</a><br />
Links úteis:</p>
<p><a target="_blank" href="http://pessoal.sercomtel.com.br/matematica/trigonom/trigon1/mod114.htm">Matemática essencial </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gabriela.trindade.nom.br/2008/11/voce-gosta-de-matematica/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Dropped educational game project</title>
		<link>http://www.gabriela.trindade.nom.br/2008/09/dropped-educational-game-project/</link>
		<comments>http://www.gabriela.trindade.nom.br/2008/09/dropped-educational-game-project/#comments</comments>
		<pubDate>Sat, 27 Sep 2008 21:36:55 +0000</pubDate>
		<dc:creator>gabrielaperry</dc:creator>
				<category><![CDATA[Aplicativos]]></category>
		<category><![CDATA[Flash games]]></category>
		<category><![CDATA[Informática na Educação]]></category>

		<guid isPermaLink="false">http://www.gabriela.trindade.nom.br/?p=97</guid>
		<description><![CDATA[This project taught me a lot of things: not only about actionscript, but also about management. I ended up embracing a project bigger than what I could handle alone, and raised expectations I couldnt meet. I took a responsability that &#8211; maybe &#8211; I shouldnt have taken: because when things got harder ($) the blame [...]]]></description>
			<content:encoded><![CDATA[<p>This project taught me a lot of things: not only about actionscript, but also about management. I ended up embracing a project bigger than what I could handle alone, and raised expectations I couldnt meet. I took a responsability that &#8211; maybe &#8211; I shouldnt have taken: because when things got harder ($) the blame was all on me :0(<br />
Althought neither me or any of my partners ever refused to keep it going (its schedule was four months ahead, so the picture wasnt that bad at all, in my opinion), the manager&#8217;s trust was dead broken, so we decided to leave.</p>
<p>Anyways, I still like the project, the code and I still think that, taken the way I advised, the game could be great&#8230;<br />
<a target="_blank" href="http://www.gabriela.trindade.nom.br/arquivos/deploy/quimgame.swf">Dont you agree? Check it out (sorry, no code this time)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gabriela.trindade.nom.br/2008/09/dropped-educational-game-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

