<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-421860893919738010</id><updated>2012-02-23T18:50:33.864-02:00</updated><category term='Tutoriais MMF2'/><category term='ColunaGabriel'/><category term='Tutoriais EPC'/><category term='Download Outros'/><category term='Efeitos Construct'/><category term='Lista GM'/><category term='Tutoriais Construct'/><category term='Engines Construct'/><category term='Sprites'/><category term='MMF2Lista'/><category term='Avisos'/><category term='Jogos'/><category term='Manuais EPC'/><category term='GM Utiliarios'/><category term='Downloads Construct'/><category term='CodigosGML'/><category term='Engines MMF2'/><category term='Libraries GM'/><category term='Libs'/><category term='Engines GM'/><category term='Mugen Stages'/><category term='Extensões'/><category term='Plugins Construct'/><category term='Tutoriais GM'/><category term='Mugen Characters'/><category term='DuvidasMMF2'/><title type='text'>MMFMakers</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default?start-index=101&amp;max-results=100'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>189</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-4463272054712649835</id><published>2019-01-01T10:08:00.000-02:00</published><updated>2010-01-23T00:24:11.820-02:00</updated><title type='text'>Bem-vindo!</title><content type='html'>&lt;div style="text-align: justify;"&gt;Olá e seja bem-vindo ao &lt;span style="font-weight: bold;"&gt;MMFMakers&lt;/span&gt;! Aqui no &lt;span style="font-weight: bold;"&gt;MMFMakers&lt;/span&gt;, você encontra diversos Tutoriais e Recursos para criar seus próprios jogos de computador! Então, se você sempre quis criar jogos, acessou o lugar certo!&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Espero que desfrute do nosso conteúdo. Eu não sou um Expert em Criação de Jogos, e acho que não sou apto a ensinar, mas farei o possível para que entendam tudo que eu explicar. Além disso, fiz um blog porque quero que caso alguma dia não queira mais atualizar, o que eu fiz sempre estará aqui, ajudando os novatos, mesmo que não venha a ter novas coisas.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Se você tem alguma crítica, sugestão, dúvida ou quiser só conversar mesmo, mande um e-mail ou me adicione no msn:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;admkhbr@hotmail.com&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-4463272054712649835?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4463272054712649835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4463272054712649835'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2009/12/bem-vindo.html' title='Bem-vindo!'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-342970910361216736</id><published>2011-12-14T18:38:00.005-02:00</published><updated>2011-12-14T19:04:29.755-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Porra, eu só prometo, mas...?</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Pootz galera, eu realmente tenho de me desculpar com vocês. Eu já perdi a conta de quantas vezes eu vim aqui e disse que ia melhorar o curso ou bla bla bla, mas acabo nunca fazendo nada.&lt;br /&gt;&lt;br /&gt;Entedam, eu simplesmente perdi a fé no MMF2, principalmente depois de descobrir que as builds mais novas podem estar carregando um Cavalo de Tróia que pode, inclusive, contaminar todos os projetos compilados usando elas (podem estar, é apenas uma possibilidade, mas as chances não são nulas... o Norton pode ter dado apenas um falso positivo).&lt;br /&gt;&lt;br /&gt;Dois avisos ao mesmo tempo: eu não sei se vou conseguir terminar esse curso do jeito que as coisas estão (o quadro do MMF2 está realmente ruim: caro, com vírus...), mesmo que eu recupere meu HD. Sem falar que estou cada vez menos ligado ao PC. Antes eu mexia em tudo, códigos, criação de jogos... agora o máximo que eu faço é ler um mangá ou outro no tempo ocioso, e olhe lá, com uma puta vontade de fazer algo legal de verdade.&lt;br /&gt;&lt;br /&gt;Eu não sei se vou conseguir terminar esse curso. Desculpem a todos que acreditaram em mim esse tempo todo. Não vou fechar o blog, ele vai ficar aqui, e se pá, até faço uma matéria vez ou outra, mas dessa vez, estou falando o oposto do que sempre falo. A questão é que realmente não acho que eu vá conseguir.&lt;br /&gt;&lt;br /&gt;É um grande projeto e, de fato, temos um número realmente bom de matérias. Contudo, porém, entretanto, todavia, não sei se um projeto como esse vale a pena para o MMF2 como ele é. Talvez seja uma base para o Construct (que é opensource, e você pode comercializar os jogos feitos nele, sem falar que o 2, apesar de pago, é realmente barato), mas se esse fosse o caso, eu faria logo um curso para o mesmo.&lt;br /&gt;&lt;br /&gt;Queria dizer também pra vocês não perderem todo seu tempo no PC. Eu fazia isso... mas curtam a vida de uma outra forma (aos homens, meninas, fiquem em casa e sejam boas garotas, se um dia decidirmos nos casar, será com esse tipo de menina, não essas putas de hoje em dia). Eu acho que esse comentário já disse tudo, está implícito XD.&lt;br /&gt;&lt;br /&gt;E se alguém quiser me adicionar no MSN pra bater um papo de vez enquando, vou ficar feliz. Me mandem também um e-mail de vez em quando só pra perguntar como vão as coisas xD. Também não vou ignorar dúvidas, mas tenham em mente que não sou nenhum gênio em MMF2, não sei um monte de coisas, e ainda estou sem ele no PC (pelos motivos já citados neste post), então, não garanto respostas. Enfim, quem quiser mandar uma dúvida, xingamento, ou só mesmo quiser dar um "oi", meu e-mail está na mensagem de abertura do blog, mas vou deixar aqui também: &lt;span style="font-weight: bold;"&gt;admkhbr@hotmail.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Bom, é isso... isso não é um "adeus", mas também não é um "até logo". Encarem isso como um "a gente se vê por aí".&lt;br /&gt;&lt;br /&gt;É isso, a gente se vê por aí! :P&lt;br /&gt;Flw! :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-342970910361216736?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/342970910361216736/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/12/porra-eu-so-prometo-mas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/342970910361216736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/342970910361216736'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/12/porra-eu-so-prometo-mas.html' title='Porra, eu só prometo, mas...?'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-4951794942319864</id><published>2011-10-28T23:25:00.003-02:00</published><updated>2011-10-28T23:29:05.928-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Estou de volta ;)</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Não recuperei meu HD, nem meu PC. Mas estou de volta, e quero fazer esse curso algo realmente bom.&lt;br /&gt;&lt;br /&gt;Mas vou precisar da ajuda de vocês, falando em que preciso melhorar as aulas, se elas estão num ritmo bom, fáceis de entender, se estou atropelando coisas, se o método não está bom etc. Por favor, críticas construtivas. Digam como posso melhorar. Não demora, e vai ajudar pra caramba ;)&lt;br /&gt;&lt;br /&gt;Vocês podem deixar comentário neste post ou me mandarem um e-mail (admkhbr@hotmail.com). Agradeço se fizerem qualquer um dos dois!&lt;br /&gt;&lt;br /&gt;Grato.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-4951794942319864?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/4951794942319864/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/10/estou-de-volta.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4951794942319864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4951794942319864'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/10/estou-de-volta.html' title='Estou de volta ;)'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-2711043074747892631</id><published>2011-09-08T19:48:00.001-03:00</published><updated>2011-09-08T19:49:49.533-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Aloha</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Quem veio aqui esperando ver matéria nova, de meia volta.&lt;br /&gt;&lt;br /&gt;Venho anunciar a vocês uma boa e uma má notícia.&lt;br /&gt;&lt;br /&gt;A má primeiro: ficaremos sem posts até o fim desse ano. Talvez matéria só ano que vem agora. Isso mesmo, o blog ficará parado até que eu consiga recuperar meu HD. Vou mandar para uma empresa especializada no fim do ano, e então, vou ficar animado e voltar com o blog com força total =D&lt;br /&gt;&lt;br /&gt;E a boa? A boa é que o blog não vai acabar. Já disse que não vou desistir dele e ponto. Só tamo passando por maus bocados, mas... TUDO PASSAAAA... TUDO PAAAAAASSAAAAAAAAAA O/&lt;br /&gt;&lt;br /&gt;Flws aew!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-2711043074747892631?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/2711043074747892631/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/09/aloha.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2711043074747892631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2711043074747892631'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/09/aloha.html' title='Aloha'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-7491587562018187548</id><published>2011-08-01T23:06:00.003-03:00</published><updated>2011-08-01T23:11:40.548-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Aww yeah!</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Eaí pessoal,&lt;br /&gt;este post está liberado para xingamentos, trollagens e afins. Isso pq eu mereço mesmo auhauah&lt;br /&gt;&lt;br /&gt;Eu disse no post passado q "essa semana" não tinha matéria. E não teve mesmo, faz tempo. Vou me explicar: acabei fazendo outra viajem de última hora, então, nem pude postar nada. Mas o fato de eu estar vindo aqui dar satisfações não trará novas aulas.&lt;br /&gt;&lt;br /&gt;Estou com um pequeno grande problema. Alguns devem saber, outros não, que minha irmã quebrou meu HD externo onde tinha TODA A PORRA DE CRIAÇÃO DE JOGOS DESDE QUE ENTREI NESSE PORRA DE ÁREA DA COMPUTAÇÃO. Ou seja, perdi tudo: todas as minhas fontes, engines, extensões, o programa crackeado, builds novas, enfim: fudeu.&lt;br /&gt;&lt;br /&gt;Com isso, desanimei pra caralho, e acabei desmontando meu PC. Estou acessando pelo PC da minha irmã para dar-lhes este post.&lt;br /&gt;&lt;br /&gt;Isso significa que aulas agora serão raras, o que é uma pena, porque até achava que o blog estava num ritmo bom... só não desisto do blog porque não tenho coragem, já que não tem conteúdo decente de MMF2 na net. E eu acho melhor ter algum conteúdo - mesmo que não seja lá essas coisas - do que não ter nenhum.&lt;br /&gt;&lt;br /&gt;Ah é! Minhas aulas começaram hoje! Mas como estou de coma alcóolica, infelizmente, não pude ir (mentira, matei aula). Acho que é uma boa desculpa... falem isso para suas coordenadores quando forem matar aula... já dei essa desculpa para 2 amigos, e acho que eles enguliram! Ou não (y)&lt;br /&gt;&lt;br /&gt;Bom, é isso, flwz.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-7491587562018187548?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/7491587562018187548/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/08/aww-yeah.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7491587562018187548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7491587562018187548'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/08/aww-yeah.html' title='Aww yeah!'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5227671706166544353</id><published>2011-07-08T22:43:00.001-03:00</published><updated>2011-07-08T22:43:29.210-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Sem matéria</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Essa semana n tem matéria... vou viajar =/&lt;br /&gt;&lt;br /&gt;Flws.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5227671706166544353?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/5227671706166544353/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/07/sem-materia.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5227671706166544353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5227671706166544353'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/07/sem-materia.html' title='Sem matéria'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-6357464161817298275</id><published>2011-07-05T15:31:00.002-03:00</published><updated>2011-07-05T15:33:43.673-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Comunicado</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Venho lhes avisar que parei com essa frescura de cobaia.&lt;br /&gt;&lt;br /&gt;As aulas estão ruins e pronto (eu dei uma lida) e vou reescrever após terminar o nível Básico.&lt;br /&gt;&lt;br /&gt;Trolls, podem fazer a festa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-6357464161817298275?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/6357464161817298275/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/07/comunicado.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6357464161817298275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6357464161817298275'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/07/comunicado.html' title='Comunicado'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-131839777105725591</id><published>2011-07-03T15:17:00.001-03:00</published><updated>2011-07-03T15:18:46.978-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Iaew :D</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Bom, eu tenho boas e más notícias...&lt;br /&gt;&lt;br /&gt;Antes as boas: fiz uma matéria nova :D&lt;br /&gt;Agora a má: ela não ensina nenhuma função nova, só põe em prática algumas já ensinadas.&lt;br /&gt;&lt;br /&gt;Quem quiser dar uma conferida, só ir na seção "Curso" ;D&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-131839777105725591?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/131839777105725591/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/07/iaew-d.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/131839777105725591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/131839777105725591'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/07/iaew-d.html' title='Iaew :D'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-9007195318590684656</id><published>2011-07-03T14:38:00.016-03:00</published><updated>2011-07-04T01:13:43.039-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Invertendo Textos</title><content type='html'>&lt;span style="font-weight: bold; font-family:arial;font-size:130%;"  &gt;Introdução:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Um leitor me enviou uma pergunta que acredito ser digna de um tutorial... não sabia como fazer inicialmente, mas o também administrador da MMFM e amigo meu, Matheus290, enviou-me seu source de um inversor de links.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Trata-se de inverter textos no MMF2. Por exemplo: &lt;/span&gt;&lt;span style="font-style: italic; font-family:arial;" &gt;123456789&lt;/span&gt;&lt;span style="font-family:arial;"&gt; ficará &lt;/span&gt;&lt;span style="font-style: italic; font-family:arial;" &gt;987654321&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, assim como &lt;/span&gt;&lt;span style="font-style: italic; font-family:arial;" &gt;ASD&lt;/span&gt;&lt;span style="font-family:arial;"&gt; ficará &lt;/span&gt;&lt;span style="font-style: italic; font-family:arial;" &gt;DSA&lt;/span&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-family:arial;font-size:130%;"  &gt;Objetos necessários:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-family:arial;" &gt;•&lt;/span&gt;&lt;span style="font-family:arial;"&gt; 1 EditBox&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-family:arial;" &gt;•&lt;/span&gt;&lt;span style="font-family:arial;"&gt; 1 Rich Edit Object&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;• 1 Button&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;• 1 Counter&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Os Eventos:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Serão apenas 3 eventos. O primeiro serve para ativar a inversão. O segundo, é a inversão propriamente dita. E o terceiro, para desligar a inversão quando esta acabar.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Vamos fazer a ativação da inversão.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div  style=" font-weight: bold;font-family:arial;"&gt;&lt;span style="font-size:100%;color:#0000ff;"&gt;&lt;strong&gt;Button  clicked?&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=" font-weight: bold;font-family:arial;font-size:100%;"  &gt; &lt;/span&gt;&lt;div  style=" font-weight: bold;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Set Counter to&lt;/span&gt; &lt;span style="font-style: italic;color:#0000ff;" &gt;&lt;span style="color:#0000ff;"&gt;GetNChars&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#2d0880;" &gt;&lt;span style="color:#2d0880;"&gt;"Rich Edit Object"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=" font-weight: bold;font-family:arial;font-size:100%;"  &gt; &lt;/span&gt;&lt;div  style=" font-weight: bold;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Goto character number&lt;/span&gt; &lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#0000ff;" &gt;&lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#2d0880;" &gt;&lt;span style="color:#2d0880;"&gt;"Counter"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=" font-weight: bold;font-family:arial;font-size:100%;"  &gt; &lt;/span&gt;&lt;div  style=" font-weight: bold;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Set text&lt;/span&gt; &lt;span style="font-style: italic;color:#800080;" &gt;""&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=" font-weight: bold;font-family:arial;font-size:100%;"  &gt; &lt;/span&gt;&lt;div  style=" font-weight: bold;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;(&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Button) Set internal flag 0 on&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Calma, vou explicar.&lt;/span&gt; Quando o jogador clicar no botão, as ações irão acontecer. Elas são quatro:&lt;br /&gt;&lt;br /&gt;• &lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Set Counter to&lt;/span&gt; &lt;span style="font-style: italic;color:#0000ff;" &gt;&lt;span style="color:#0000ff;"&gt;GetNChars&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#2d0880;" &gt;&lt;span style="color:#2d0880;"&gt;"Rich Edit Object"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Irá definir o valor do Counter para o número de caracteres do Rich Edit.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;• &lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Goto character number&lt;/span&gt; &lt;span style="font-style: italic;"&gt;       &lt;/span&gt;&lt;span style="font-style: italic;color:#0000ff;" &gt;&lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#2d0880;" &gt;&lt;span style="color:#2d0880;"&gt;"Counter"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Vai até o caractere representado pelo valor do Counter.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;• &lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Set text&lt;/span&gt; &lt;span style="font-style: italic;color:#800080;" &gt;""&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;Esvazia a EditBox&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;• &lt;span style="font-size:100%;"&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;(&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;Button) Set internal flag 0 on&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Liga a flag 0 do botão. A inversão ocorrerá enquanto esta flag estiver ligada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Muito bem. Vamos, então, fazer a inversão em si.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:Arial;color:#0000ff;"&gt;&lt;strong&gt;(Button): internal flag 0 is  on&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style="font-family:Arial;color:#ff0000;"&gt;&lt;strong&gt;Subtract &lt;em&gt;1&lt;/em&gt; from  Counter&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style="font-family:Arial;"&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Set text&lt;/span&gt; &lt;span style="font-style: italic;color:#0000ff;" &gt;&lt;span style="color:#0000ff;"&gt;Edittext$&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#2d0880;" &gt;&lt;span style="color:#2d0880;"&gt;"Edit Box"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;)+&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#0000ff;" &gt;&lt;span style="color:#0000ff;"&gt;GetText$&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#2d0880;" &gt;&lt;span style="color:#2d0880;"&gt;"Rich Edit  Object"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;span style="font-style: italic;color:#0000ff;" &gt;&lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#2d0880;" &gt;&lt;span style="color:#2d0880;"&gt;"Counter"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;span style="font-style: italic;color:#0000ff;" &gt;&lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#2d0880;" &gt;&lt;span style="color:#2d0880;"&gt;"Counter"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;)+&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#ff0000;" &gt;&lt;span style="color:#ff0000;"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Aqui, as ações ocorrerão se a flag 0 do botão estiver ligada. Neste caso, são apenas duas ações:&lt;br /&gt;&lt;br /&gt;• &lt;span style="font-family:Arial;color:#ff0000;"&gt;&lt;strong&gt;Subtract &lt;em&gt;1&lt;/em&gt; from  Counter&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Esta irá subtrair 1 do Counter enquanto a flag estiver ligada, ao mesmo tempo que a inversão acontece. Entendará isso melhor quando ler sobre a próxima ação.&lt;br /&gt;&lt;br /&gt;• &lt;span style="font-family:Arial;"&gt;&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;Set text&lt;/span&gt; &lt;span style="font-style: italic;color:#0000ff;" &gt;&lt;span style="color:#0000ff;"&gt;Edittext$&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#2d0880;" &gt;&lt;span style="color:#2d0880;"&gt;"Edit Box"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;)+&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#0000ff;" &gt;&lt;span style="color:#0000ff;"&gt;GetText$&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#2d0880;" &gt;&lt;span style="color:#2d0880;"&gt;"Rich Edit  Object"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;span style="font-style: italic;color:#0000ff;" &gt;&lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#2d0880;" &gt;&lt;span style="color:#2d0880;"&gt;"Counter"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;, &lt;/span&gt;&lt;span style="font-style: italic;color:#0000ff;" &gt;&lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#2d0880;" &gt;&lt;span style="color:#2d0880;"&gt;"Counter"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;)+&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#ff0000;" &gt;&lt;span style="color:#ff0000;"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;color:#7f7f7f;" &gt;&lt;span style="color:#7f7f7f;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Essa ação fará com que enquanto a flag 0 estiver ligada, o texto da EditBox vá se formando, a partir de seu valor atual (para armazenar os caracteres já invertidos) somados ao caractere do Rich Edit representado pelo valor do Counter. Como o Counter está sempre sendo subtraído, o caractere adicionado vai sendo sempre menos um, conforme ele vai adicionando! Meio confuso, mas veja bem... No texto 123456789. O caractere representado pelo Counter, inicialmente é o 9. Entretanto, ao mesmo tempo que o 9 é adicionado à EditBox, o valor do Counter é subtraído em um, o que significa que o caractere representado, agora, pelo Counter é o anterior, ou seja, 8. E isso vai se repetindo até não restar nenhum caractere e o Counter chegar a 0!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A primeira parte da fórmula, &lt;/span&gt;&lt;span style="font-style: italic;font-family:Arial;" &gt;&lt;strong&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;Edittext$&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f7f7f;"&gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#2d0880;"&gt;&lt;span style="color:#2d0880;"&gt;"Edit Box"&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#7f7f7f;"&gt;&lt;span style="color:#7f7f7f;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;, você encontra já de cara na EditBox, quando usa a opção &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Retrieve data from an object&lt;/span&gt;&lt;span style="font-style: italic;"&gt;. Ela é &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Get Text&lt;/span&gt;&lt;span style="font-style: italic;"&gt;. A segunda parte, entretanto, &lt;/span&gt;&lt;span style="font-style: italic;font-family:Arial;" &gt;&lt;strong&gt;&lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;GetText$&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f7f7f;"&gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#2d0880;"&gt;&lt;span style="color:#2d0880;"&gt;"Rich Edit  Object"&lt;/span&gt;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f7f7f;"&gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#2d0880;"&gt;&lt;span style="color:#2d0880;"&gt;"Counter"&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#7f7f7f;"&gt;&lt;span style="color:#7f7f7f;"&gt;)&lt;/span&gt;&lt;/span&gt;, &lt;span style="color:#0000ff;"&gt;&lt;span style="color:#0000ff;"&gt;value&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f7f7f;"&gt;&lt;span style="color:#7f7f7f;"&gt;(&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#2d0880;"&gt;&lt;span style="color:#2d0880;"&gt;"Counter"&lt;/span&gt;&lt;/span&gt; &lt;span style="color:#7f7f7f;"&gt;&lt;span style="color:#7f7f7f;"&gt;)+&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#ff0000;"&gt;&lt;span style="color:#ff0000;"&gt;1&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#7f7f7f;"&gt;&lt;span style="color:#7f7f7f;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;, você deve ir no Rich Edit, e em &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Text &amp;gt; Get Text&lt;/span&gt;&lt;span style="font-style: italic;"&gt;. E você vai ter de configurar a opção.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;O que vai aparecer é o seguinte:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;GetText$&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;(&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;"Rich Edit Object"&lt;/span&gt;, &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&amp;gt;First character number&amp;lt;&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;, &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&amp;gt;Second character number&amp;lt;&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Troque &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&amp;gt;First character number&amp;lt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; pelo valor do Counter. E troque &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&amp;gt;Second character number&amp;lt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; pelo valor do Counter adicionado a 1. &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;First character number&lt;/span&gt;&lt;span style="font-style: italic;"&gt; representa o início do caractere, e &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Second character number&lt;/span&gt;&lt;span style="font-style: italic;"&gt;, o fim deste caractere. Isso significa que o caractere compreendido entre estes dois intervalos, é o que será adicionado à EditBox.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Talvez seja um pouco confuso, mas procure entender, em vez de simplesmente copiar... vale a pena ;p. Mas enfim... agora, vamos ao último evento! Desativar a inversão!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;(Counter) &amp;lt;= &lt;span style="font-style: italic;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(Button) Set internal flag 0 off.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Acho que nem tem o que explicar... se o Counter for igual ou menor que 0 (o que significa que não existem mais caracteres a serem invertidos), desligar-se-á a flag 0 do botão, o que significa que a inversão será interrompida.&lt;br /&gt;&lt;br /&gt;--//--&lt;br /&gt;&lt;br /&gt;Bom, é isso aí... me pergunto, ainda, em que situação eu precisaria fazer algo assim... mas pra quem precisa saber, aí está :D.&lt;br /&gt;&lt;br /&gt;Agradeço, mais uma vez, ao Matheus290. Foi graças a ele que aprendi a fazer isso daí. Agradecimentos também ao Alves, por ter tentado dar uma mãozinha.&lt;br /&gt;&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-9007195318590684656?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/9007195318590684656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/9007195318590684656'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/07/invertendo-textos.html' title='Invertendo Textos'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-6963707189320482792</id><published>2011-06-28T18:36:00.001-03:00</published><updated>2011-06-28T18:37:36.949-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>AVISO SUPER ULTRA MEGA LONGO, LEIA COM ATENÇÃO!!</title><content type='html'>&lt;a href="http://mmfmakers.blogspot.com/2011/06/grupos-de-eventos.html"&gt;Acabei&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-6963707189320482792?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/6963707189320482792/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/aviso-super-ultra-mega-longo-leia-com.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6963707189320482792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6963707189320482792'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/aviso-super-ultra-mega-longo-leia-com.html' title='AVISO SUPER ULTRA MEGA LONGO, LEIA COM ATENÇÃO!!'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5176196175527881779</id><published>2011-06-28T17:34:00.023-03:00</published><updated>2011-06-28T18:35:47.148-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Grupos de Eventos</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;Introdução:&lt;/span&gt;&lt;br /&gt;Eu poderia dizer que a principal função de grupos de eventos é organização. De fato, fica muito mais difícil nos perder em nosso código quando agrupamos um conjunto de eventos que possui uma mesma função, ou de função semelhante. Principalmente em jogos com muitos eventos. Leve em consideração que você pode dividir ainda mais eventos semelhantes com comentários (ex.: grupo de eventos relacionados à morte do personagem, pode-se separar os eventos de "Morte por tempo" dos de "Morte por falta de HP" utilizando comentários, a fim de organizar ainda mais). Quanto mais organizado, melhor. Além do mais, substituição de milhares de linhas de eventos por poucas de grupos faz você ficar bem mais relaxado, acredite.&lt;br /&gt;&lt;br /&gt;Veja bem... uma Static Engine (Movimento Personalizado) precisa de vários eventos para serem feitos. Se você os deixa soltos, acaba misturando com eventos de inimigos, efeitos etc. Agora, pense que os eventos de cada função estão dentro de um grupo com o nome dela. Os eventos do movimento em um grupo chamado "Static Engine" (onde comentários dividem os eventos da movimentação e da animação), os dos inimigos em um grupo "Inimigos", e por aí vai.&lt;br /&gt;&lt;br /&gt;Mas organização é o de menos quando falamos de Grupos de Eventos. Acontece que Grupos de Eventos possuem duas funções, além de organização: proteger determinado grupo com uma senha (se, por exemplo, você estiver com dúvida em algo e quiser mandar o source para as pessoas analisarem o que há de errado, pode proteger os demais eventos) e ativar/desativar os eventos de um grupo. Aprendamos, então, a como fazê-lo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Criando um grupo:&lt;/span&gt;&lt;br /&gt;Criar um grupo é simples em demasia. Apenas clique com o botão direito do mouse no número ao lado de &lt;span style="font-weight: bold;"&gt;New Condition&lt;/span&gt; , e vá em &lt;span style="font-style: italic;"&gt;Insert &amp;gt; A group of events&lt;/span&gt;.&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/group-1.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Faça isso.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ok. Uma janela como esta vai se abrir, para você inserir os dados do grupo:&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/group0.PNG" /&gt;&lt;br /&gt;&lt;br /&gt;Em &lt;span style="font-weight: bold;"&gt;Title of the group&lt;/span&gt;, você coloca o nome do grupo.&lt;br /&gt;&lt;br /&gt;Nos dois campos de &lt;span style="font-weight: bold;"&gt;Password protection&lt;/span&gt;, insira uma senha para o grupo ser acessado (lembra que eu disse que também era possível proteger um grupo com senha?). Isso fará com que sempre que alguém tentar abrir o grupo, seja necessário digitar uma senha. Se o grupo já estiver aberto ou se a pessoa quiser fechá-lo, não será necessária senha alguma, ela só é requisitada para &lt;span style="font-style: italic;"&gt;abrir ou editar&lt;/span&gt; o grupo. O grupo, então, só se abrirá se ela estiver correta. A senha inserida nos dois campos deve ser &lt;span style="font-style: italic;"&gt;exatamente&lt;/span&gt; igual. Se quiser deixar o grupo sem senha (pode ser aberto sem precisar inserir senha alguma), apenas deixe estes dois campos em branco.&lt;br /&gt;&lt;br /&gt;A opção &lt;span style="font-weight: bold;"&gt;Active when frame starts&lt;/span&gt;, ao ser marcada, faz com que o grupo seja ativado por padrão. Desmarcá-la faz com que o frame já se inicie com o grupo desativado. Para saber mais acerca disto, leia o próximo tópico.&lt;br /&gt;&lt;br /&gt;Ao terminar, clique em &lt;span style="font-weight: bold;"&gt;OK&lt;/span&gt;. Lembrando que você pode editar as configurações de um grupo a qualquer hora clicando com o botão direito do mouse em cima dele, e escolhendo a opção &lt;span style="font-weight: bold;"&gt;Edit&lt;/span&gt; (se o grupo estiver protegido por senha, será necessário digitá-la corretamente).&lt;br /&gt;&lt;br /&gt;Bom, isso é tudo sobre criação de grupos. Vamos à parte mais importante da aula, agora...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Ativando/desativando um grupo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Quando falamos em ativar ou desativar um grupo, estamos falando, na verdade, em ativar ou desativar os evento do mesmo. Ativando os eventos, eles irão agir como qualquer outro. Desativando, seria como se eles não existissem. Para entender melhor, um exemplo. Suponha que tenho este evento dentro de um grupo qualquer:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Start of frame&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;("Objeto") Destroy&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Always&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Center window position at ("Outro Objeto que não é o Objeto do evento anterior")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pois bem. Se o grupo estiver ativado, tais eventos agirão. Ao iniciar o frame, destruir-se-á o objeto &lt;span style="font-weight: bold;"&gt;Objeto&lt;/span&gt;, e sempre a tela será posicionada em relação ao &lt;span style="font-weight: bold;"&gt;Outro Objeto que não é o Objeto do evento anterior&lt;/span&gt;! Todavia, se o grupo estiver desativado, esses eventos &lt;span style="font-style: italic;"&gt;não&lt;/span&gt; agirão. Quando iniciar o Frame, nada acontecerá ao &lt;span style="font-weight: bold;"&gt;Objeto&lt;/span&gt;, já que o evento que o destruiria está atuando como "inexistente". Muito menos a tela será centrada no &lt;span style="font-weight: bold;"&gt;Outro Objeto que não é o Objeto do evento anterior&lt;/span&gt;, pois este evento também está atuando como "inexistente", uma vez que está dentro de um grupo desativado.&lt;br /&gt;&lt;br /&gt;Isso é útil em demasia a fim de se fazer "upgrades" pro personagem em um jogo. Wallkicks, tiros carregáveis, dashs... tudo isso você programaria em grupos (um grupo para cada upgrade), e os ativa ou desativa, caso o herói tenha ou não conquistado as habilidades em questão, respectivamente. E antes que me perguntem, sim, eu estava pensando em &lt;span style="font-style: italic;"&gt;Megaman X&lt;/span&gt; quando escrevi isso.&lt;br /&gt;&lt;br /&gt;Mas enfim, como ativar ou desativar grupos? São poucos passos que vão mudar sua vida de maker no MMF2. Você só precisa ter o grupo a ser ativado/desativado em mãos, e criar a condição que mude seu estado. Então, nas &lt;span style="font-weight: bold;"&gt;Special conditions&lt;/span&gt;, vá em &lt;span style="font-weight: bold;"&gt;Group of events&lt;/span&gt; e escolha &lt;span style="font-weight: bold;"&gt;Activate&lt;/span&gt; para ativar e &lt;span style="font-weight: bold;"&gt;Deactivate&lt;/span&gt; para desativar!&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/group1.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Special conditions &amp;gt; Group of events &amp;gt; Activate/Deactivate&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Certo. Então, uma janelinha se abrirá, para que você selecione o grupo que será ativado ou desativado. Escolha-o e clique em &lt;span style="font-weight: bold;"&gt;OK&lt;/span&gt;.&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/group2.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;No caso, escolhendo um grupo para ser ativado. Quando você escolhe Deactivate, lá em cima fica escrito isso, e não "Activate", mas não tava a fim de fazer outra imagem por causa de uma porra de uma palavra '-'.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Talvez você esteja se perguntando se não dá no mesmo usar flags... realmente, dá. Mas isso é só pra se você quiser ficar perdendo tempo limitando o estado em que a flag deve estar. Pra muitos eventos, então? É bem mais fácil, rápido e organizado usar grupos de eventos para isso. Isso sem falar que flags são numeradas, e grupos nomeados. Mas enfim... fica a critério de cada um o que quer usar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;--//--&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Bom, essa é uma das aulas mais importantes do nível básico... espero que tenham gostado!&lt;br /&gt;Até a próxima! -^.^-&lt;br /&gt;&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5176196175527881779?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5176196175527881779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5176196175527881779'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/grupos-de-eventos.html' title='Grupos de Eventos'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-2243860009371549393</id><published>2011-06-26T18:31:00.003-03:00</published><updated>2011-06-26T18:40:07.195-03:00</updated><title type='text'>Comunicado</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Eaí pessoal!&lt;br /&gt;&lt;br /&gt;Bom galera, é o seguinte... desculpem por não ter postado esse FdS. Ele foi cheio... na sexta teve niver, no sábado teve niver, e hoje dormi a tarde inteira e agora vou sair. Pra compensar, sai matéria durante a semana weee :D&lt;br /&gt;&lt;br /&gt;Mudando radicalmente de assunto, pra quem está procurando um bom sistema de upload, venho recomendar-lhes um, já que isso ajudará tanto vocês como eu na MMFM :D. É nele que eu faço upload de grande parte do conteúdo da MMFM, e infelizmente meu espaço está acabando =\.&lt;br /&gt;&lt;br /&gt;Pra quem se interessar por esse serviço (upload por desktop/web uploader e download por link direto, 2GBs inicais, podendo expandir para 8GB fazendo com que amigos se cadastrem com o seu reffearl). Vocês podem hospedar arquivos, imagens e até sites em HTML :D. Apesar de a URL destes últimos não ficar muito agradável... Mas enfim, existem redirecionadores gratuitos bons ^^. A questão é que é um ótimo serviço!&lt;br /&gt;&lt;br /&gt;Para ajudar a MMFM e começar a usar o Dropbox (quem se interessar), vocês podem se cadastrar &lt;a href="http://db.tt/dAHUDju"&gt;NESTE LINK&lt;/a&gt;. Ajudaria se quem desejar se cadastre com meu reffearl, porque só me restam 500mb, ainda sobrevivo com os 2GB inicias xD.&lt;br /&gt;&lt;br /&gt;Mas isso é só pra quem quiser mesmo... porque pra eu ganhar o espaço, a pessoa tem de instalar o programa de upload por desktop até... só se a pessoa instalar eu ganho os 250mb.&lt;br /&gt;&lt;br /&gt;Enfim, é isso... flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-2243860009371549393?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/2243860009371549393/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/comunicado.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2243860009371549393'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2243860009371549393'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/comunicado.html' title='Comunicado'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-1864150274104783809</id><published>2011-06-16T19:28:00.001-03:00</published><updated>2011-06-16T19:29:04.376-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Outra semana sem matérias</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Continuo em semana de provas bimestrais. Graças a Deus, acabam dia 22. Mas esse FdS não tem aula de novo.&lt;br /&gt;&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-1864150274104783809?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/1864150274104783809/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/outra-semana-sem-materias.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1864150274104783809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1864150274104783809'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/outra-semana-sem-materias.html' title='Outra semana sem matérias'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-3583142707076248841</id><published>2011-06-14T16:27:00.007-03:00</published><updated>2011-06-14T16:40:36.489-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DuvidasMMF2'/><title type='text'>Dúvidas MMF2</title><content type='html'>Andei pensando e é realmente chato tirar dúvidas por e-mail. Afinal, apenas o autor da dúvida em questão saberia a resposta depois. Então, decidi criar um post para vocês deixarem suas dúvidas :). Assim, qualquer um que tenha a mesma dúvida pode obter a resposta!&lt;br /&gt;&lt;br /&gt;Fica avisado que não sou profissional algum; muitas dúvidas não saberei responder, talvez. Mas se souber, responderei. E, claro, caso saibam responder a dúvida de um colega, podem muito bem fazer isso, e ficarei bastante agradecido!&lt;br /&gt;&lt;br /&gt;Eu só peço duas coisas...&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;•&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Escrevam com ortografia correta&lt;/span&gt;, pois dói os olhos ler um texto do tipo "&lt;span style="font-style: italic;"&gt;eo kriah kivs mim insinansse a fasê iço pq naum cnsegi entao pf rspnda!&lt;/span&gt;". Não estou pedindo que escrevam usando a norma culta e tal, mas &lt;span style="font-weight: bold;"&gt;pontuação&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;letra maiúscula/minúscula diferenciadas&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;pouco internetês&lt;/span&gt;... sempre bom, né?&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;•&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;Expliquem direito a dúvida.&lt;/span&gt; Por exemplo, no lugar de "&lt;span style="font-style: italic;"&gt;Como faço um jogo de Mario?&lt;/span&gt;", pergunte: "&lt;span style="font-style: italic;"&gt;Gostaria de saber como fazer um sistema de evoluir ao pegar cogumelos, mapa-mundo e habilidades extras conforme o item pêgo.&lt;/span&gt;". Bem melhor assim, não?&lt;br /&gt;&lt;br /&gt;Dúvidas que não seguirem as diretrizes acima serão excluídas &lt;span style="font-weight: bold;"&gt;sem aviso&lt;/span&gt;. Comentários ofensivos também serão excluídos. Vamos todos tentar fazer algo bacana e organizado, por favor :). Procurarei responder as dúvidas semanalmente, mas, sinceramente, não prometo nada.&lt;br /&gt;&lt;br /&gt;Bem, é isso aí!&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Deixem suas dúvidas abaixo, nos comentários.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-3583142707076248841?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/3583142707076248841/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/duvidas-mmf2.html#comment-form' title='19 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/3583142707076248841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/3583142707076248841'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/duvidas-mmf2.html' title='Dúvidas MMF2'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-868341133003536143</id><published>2011-06-10T19:56:00.002-03:00</published><updated>2011-06-10T19:57:08.548-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Phew...</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;E o filho da puuuura mulher brasileira do Artur não entrou. Me deixou ON na porra do MSN o dia todo esperando ele pra não entrar. Eu mato aquele portador de gigantismo --'.&lt;br /&gt;&lt;br /&gt;E estou em época de provas bimestrais, nem venham cobrar novos tutos que provavelmente não sai. Tenho de estudar...&lt;br /&gt;&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-868341133003536143?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/868341133003536143/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/phew.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/868341133003536143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/868341133003536143'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/phew.html' title='Phew...'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-3281634316720037157</id><published>2011-06-05T19:38:00.002-03:00</published><updated>2011-06-05T19:39:22.919-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Como prometido</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Rá. E aí está,  finzinho de domingo, como prometido, uma matéria nova. Acabou sendo do  nível Intermediário (apesar de não ter nada de intermediário nela, senão  utilizar conceitos básicos ensinados no primeiro nível), e não do  Básico como eu disse, mas enfim, tá feita.&lt;br /&gt;&lt;br /&gt;Perdão pela demora com  a cobaia. Passou-se uma semana e nem falamos nisso. Amanhã acho que não  dá, mas sexta que vem converso com ele, para tentar ajudar a alma a  conseguir instalar (isso aí, ele não conseguiu nem instalar; se aprender  a criar jogos, classificarei minhas aulas como excelentes) o programa.  Bem, gente fina o cara... pena não manjar muito de PC, pelo jeito.&lt;br /&gt;&lt;br /&gt;E antes que me esqueça... comecei uma matéria bem básica sobre Lógica de Programação, para iniciantes (* cof cof e alguns intermediários também cof cof *). Não sei quando vou terminá-la, mas fica o aviso ;D&lt;br /&gt;&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-3281634316720037157?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/3281634316720037157/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/como-prometido_05.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/3281634316720037157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/3281634316720037157'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/como-prometido_05.html' title='Como prometido'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-7900537951999190483</id><published>2011-06-05T19:35:00.002-03:00</published><updated>2011-06-05T19:38:03.403-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Extensões'/><title type='text'>Ini++</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Excelente extensão que permite manipular arquivos INI no MMF2. Extremamente superior a extensão padrão do MMF2 que tem esse objetivo. Essencial para qualquer usuário de MMF2 que quer fazer um jogo decente, com configurações, saves e muito mais!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Download (264KB):&lt;/span&gt; &lt;a href="http://dl.dropbox.com/u/3919627/Extens%C3%B5es/Ini%2B%2B.zip" target="_blank"&gt;Link Direto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-7900537951999190483?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/7900537951999190483/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/ini.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7900537951999190483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7900537951999190483'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/ini.html' title='Ini++'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-8726112751419475814</id><published>2011-06-05T00:36:00.070-03:00</published><updated>2011-06-05T19:29:26.684-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Armazenando dados em arquivos INI</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Introdução:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Podemos, de várias formas, manipular valores e expressões de texto em arquivos externos, tanto em MMF2 como em programas similares. Podemos armazenar tais dados em arquivos de texto, DATs, e, principalmente, em &lt;span style="font-style: italic;"&gt;arquivos INI&lt;/span&gt;. Para explicar melhor, utilizarei a definição &lt;a style="font-weight: bold;" href="http://www.macoratti.net/arq_ini.htm" target="_blank"&gt;DESTE&lt;/a&gt; site:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;font-size:85%;"&gt;"&lt;i style="font-style: italic;"&gt;Um arquivo INI é um arquivo texto usado para &lt;/i&gt;armazenar/fornecer&lt;span style="font-style: italic;"&gt; configurações pessoais para &lt;/span&gt;sistemas/usuários&lt;/span&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;Isso significa que podemos "gravar" ou "receber" dados em tais arquivos. Tais dados podem ser tanto valores (1, 5, 10 etc) como conjuntos de caracteres ("Tiago", "armazenar dados em arquivos INI" etc). Tais configurações pessoais podem ser alteradas tanto por um programa (no nosso caso, MMF2), quanto pelo usuário. Ou seja, ou um programa modifica/recebe tais dados automaticamente, ou um usuário pode modificar tais valores à bel-prazer.&lt;br /&gt;&lt;br /&gt;"Mas para quê isto nos serve na criação de jogos?", você me pergunta. Armazenar dados em arquivos externos serve-nos para que não perdamos tais dados ao fechar ou reiniciar o programa/jogo. No caso do MMF2, manda-se armazenar os dados no INI em determinada condição, e receber tais dados em outra. Podemos utilizar isto para gravar posições, valores, vidas etc. Ou seja, fazer um Sistema de Salvar (Save Game).&lt;br /&gt;&lt;br /&gt;Segue este exemplo. Estou fazendo um jogo de labirinto. Coloco um botão de salvar no topo do Frame, e programo para que, se o jogador clicar no botão, armazenar as posições X e Y do herói em um arquivo INI. Então, coloco para que assim que começar o Frame, definir as posições X e Y do herói para as que estão armazenadas no INI. Assim, se eu salvar, quando posteriormente abrir o jogo, o personagem estará nas posições anteriores.&lt;br /&gt;&lt;br /&gt;Só existe um problema: o usuário (no caso, o jogador) pode editar manualmente os dados de um INI. O que significa que ele pode simplesmente abrir o INI e modificar seus valores, a fim de trapacear. É algo que pode ser contornado, claro, mas fica o aviso, para que não deixe arquivos INIs importantes do jogo (quantidade de dinheiro do jogador, HP etc) rolando pela pasta dele. Assim, o jogador concluiria o jogo facilmente.&lt;br /&gt;&lt;br /&gt;Existe uma solução simples: "mascarar" o INI, colocando nele outra extensão, como (*.dat), (*.lua), (*.sav), ou até mesmo extensões mais incomuns como (*.dll) e (*.arquivo_INI_camuflado_do_meu_jogo). Ou seja, fazer um arquivo de texto, com a estrutura de um INI, só que salvando com outra extensão. Nada de outro mundo. A extensão que será utilizada para mascarar o INI realmente não importa... a não ser que você seja estúpido o suficiente para usar o último exemplo. Podemos, também, criptografar o INI: assim, você nem precisa dar-se ao trabalho de mascará-lo, pois o jogador não conseguirá modificar seus valores. ;)&lt;br /&gt;&lt;br /&gt;Perdoem-me pela grande introdução, mas acredito que seja importante não apenas dar-lhes o conceito de INI, mas falar sobre eles na criação de jogos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Estrutura de um arquivo INI:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Para fazer um arquivo INI, basta abrir o Bloco de Notas, criá-lo, e salvar como &lt;span style="font-weight: bold;"&gt;nome_do_arquivo.ini&lt;/span&gt;, com a opção &lt;span style="font-style: italic;"&gt;Todos os arquivos&lt;/span&gt; em vez de &lt;span style="font-style: italic;"&gt;Documentos de texto (*.txt)&lt;/span&gt;. A estrutura de um INI é a seguinte:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;GRUPO&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;ITEM&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153); font-weight: bold;"&gt;=&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;DADO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Os &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;[ ]&lt;/span&gt; (colchetes) declaram um &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;GRUPO&lt;/span&gt;. Todo INI deve possuir no mínimo um. Você pode armazenar todos os valores em um único grupo, mas por uma questão de organização, isso não é aconselhável. Os itens compreendidos entre a próxima linha depois da declaração de um grupo &lt;span style="font-style: italic;"&gt;X&lt;/span&gt; e uma linha antes da declaração de um grupo &lt;span style="font-style: italic;"&gt;Y&lt;/span&gt;, pertencem grupo &lt;span style="font-style: italic;"&gt;X&lt;/span&gt;. Grupos devem ser separados de &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;ITENS&lt;/span&gt; ou de outros &lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;GRUPOS&lt;/span&gt; por linhas. Um &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;GRUPO&lt;/span&gt; pode possuir tanto caracteres normais, quanto especiais (sinais e acentos), espaços e números. Mas cuidado, pois tais caracteres fazem &lt;span style="font-weight: bold;"&gt;sim&lt;/span&gt; a diferença (o grupo Herói é diferente de Heroi).&lt;br /&gt;&lt;br /&gt;Cada &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;ITEM&lt;/span&gt; armazena um dado, que pode ser um valor ou conjunto de caracteres (se fôssemos usar o INI acima do jeito que está, o valor do item &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;ITEM&lt;/span&gt; seria o conjunto de caracteres &lt;span style="font-weight: bold;"&gt;DADO&lt;/span&gt;). Itens devem ser separados por linhas. Cada linha deve conter um &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;GRUPO&lt;/span&gt; ou um &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;ITEM&lt;/span&gt;. E cada &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;GRUPO&lt;/span&gt; ou &lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;ITEM&lt;/span&gt; deve ser expresso em uma única linha. Ao saltar uma linha, você não estará mais trabalhando com aquele &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;GRUPO&lt;/span&gt; ou&lt;span style="color: rgb(0, 153, 0);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;ITEM&lt;/span&gt;. Um &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;ITEM&lt;/span&gt; pode possuir tanto caracteres normais, quanto especiais (sinais e acentos), espaços e números. Mas cuidado, pois tais caracteres fazem &lt;span style="font-weight: bold;"&gt;sim&lt;/span&gt; a diferença (o item Mangas é diferente do item Mangás).&lt;br /&gt;&lt;br /&gt;O sinal de &lt;span style="color: rgb(153, 51, 153); font-weight: bold;"&gt;=&lt;/span&gt; (igual) define o valor de um &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;ITEM&lt;/span&gt; para o que vier depois dele naquela linha.&lt;br /&gt;&lt;br /&gt;O que vem depois de um sinal de &lt;span style="font-weight: bold; color: rgb(153, 51, 153);"&gt;=&lt;/span&gt; em uma linha é o &lt;span style="font-weight: bold;"&gt;DADO&lt;/span&gt; de um determinado &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;ITEM&lt;/span&gt;. Um &lt;span style="font-weight: bold;"&gt;DADO&lt;/span&gt; pode ser um valor numérico (&lt;span style="font-style: italic;"&gt;value&lt;/span&gt;) ou um conjunto de caracteres (&lt;span style="font-style: italic;"&gt;string&lt;/span&gt;). Não há diferença alguma entre tais dados, levando em consideração a declaração deles. Se o &lt;span style="font-weight: bold;"&gt;DADO&lt;/span&gt; possuir apenas caracteres numéricos após o sinal de igual, ele será um &lt;span style="font-style: italic;"&gt;value&lt;/span&gt;; já se ele possuir também caracteres não-numéricos (espaços, letras e sinais), ou apenas estes tipos de caracteres, ele será uma &lt;span style="font-style: italic;"&gt;string&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;GRUPOS&lt;/span&gt; e &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;ITENS&lt;/span&gt; não fazem diferença em relação à letras minúsculas e maiúsculas; &lt;span style="font-weight: bold;"&gt;DADOS&lt;/span&gt;, porém, fazem.&lt;br /&gt;&lt;br /&gt;Aqui vai um exemplo de INI, agora, com mais de um grupo/itens:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[Personagem]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;posX=286&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;posY=242&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[Inimigo]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;posX=491&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;posY=493&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Este arquivo armazena as posições X e Y (cada uma determinada por um &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;ITEM&lt;/span&gt;) do personagem e de seu inimigo. Perceba que eu posso utilizar dois itens com o mesmo nome, se estiverem em grupos diferentes. Caso eu use dois ou mais &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;ITENS&lt;/span&gt; com o mesmo nome em um mesmo grupo, ele considerará o último a aparecer (mais recente, do ponto de vista do arquivo). E se eu usar dois ou mais &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;GRUPOS&lt;/span&gt; com o mesmo nome, o programa "mesclará" os grupos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Ini++:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Agora que já conhecemos a estrutura de um arquivo INI e como criá-los, veremos como armazenar e receber dados em um programa de MMF2 com tais arquivos. Para isto, utilizaremos a extensão &lt;span style="font-weight: bold;"&gt;Ini++&lt;/span&gt;, desenvolvida por Jack Webster.&lt;br /&gt;&lt;br /&gt;Nas propriedades desta extensão, encontramos logo de cara uma opção &lt;span style="font-weight: bold;"&gt;Default file&lt;/span&gt;, para utilizar um arquivo INI padrão: isto significa que será o primeiro arquivo INI procurado pela extensão. Se desmarcar esta caixa, você precisará carregar o INI manualmente; se deixar marcada, ele o carregará de imediato.&lt;br /&gt;&lt;br /&gt;A opção &lt;span style="font-weight: bold;"&gt;Read only&lt;/span&gt; impede que o programa mude os valores do INI padrão; o que significa que ele apenas poderá receber os valores desse INI. Isto serve para que o usuário possa alterar dados pelo INI, e, estes dados, seriam carregados pelo programa. Opção desnecessária, eu diria.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Base folder&lt;/span&gt; é o diretório onde se encontra o arquivo INI padrão. Você pode optar, principalmente, entre a pasta raíz do programa e a pasta WINDOWS, que se encontra no Disco local C:\.&lt;br /&gt;&lt;br /&gt;E essas são todas as opções realmente relevantes. Perceba que, se o INI padrão ainda não existir, a extensão há de criá-lo. Nesse caso, os valores definidos pelos eventos criarão no INI os grupos e itens. Se o INI já existir, ele simplesmente o carregará. Prefiro definir logo os valores que quero usar, então, sempre crio o INI antes. Em relação à ordem, não faz diferença, quando mandamos o programa armazenar valores, ele organiza os itens em ordem alfabética.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Armazenando/recebendo dados no MMF2:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Uma vez que a extensão esteja configurada como desejar, vamos aprender a armazenar e receber valores de arquivos INI no MMF2.&lt;br /&gt;&lt;br /&gt;Antes de aprender a receber, vejamos como armazenar dados em um INI. Utilizamos ações diferentes para armazenar valores e strings. Para armazenar um &lt;span style="font-weight: bold;"&gt;valor&lt;/span&gt;, na ação do evento desejado, vá na classe da extensão, entre em &lt;span style="font-weight: bold;"&gt;Setting Items&lt;/span&gt;, e escolha &lt;span style="font-weight: bold;"&gt;Set Value&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;A primeira coisa que ele irá pedir é o &lt;span style="font-style: italic;"&gt;grupo&lt;/span&gt; que contém o item no qual o dado será armazenado. Entre aspas, digite o nome do grupo e dê &lt;span style="font-weight: bold;"&gt;OK&lt;/span&gt;.&lt;br /&gt;&lt;img style="width: 453px; height: 189px;" src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/group.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Grupo &lt;/span&gt;Herói&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Então, ele pedirá o &lt;span style="font-style: italic;"&gt;item&lt;/span&gt; no qual o dado será armazenado. Novamente entre aspas, escreva o nome do item e dê &lt;span style="font-weight: bold;"&gt;OK&lt;/span&gt;.&lt;br /&gt;&lt;img style="width: 453px; height: 189px;" src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/item.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Item &lt;/span&gt;posX&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora, ele quer saber se o valor a ser armazenado é &lt;span style="font-style: italic;"&gt;inteiro&lt;/span&gt; ou &lt;span style="font-style: italic;"&gt;racional&lt;/span&gt;. Se for um número inteiro, deixe como &lt;span style="font-weight: bold;"&gt;0&lt;/span&gt;. Se for um número racional, coloque &lt;span style="font-weight: bold;"&gt;1&lt;/span&gt;. Os números racionais também englobam números inteiros; isso significa que se você colocar 1, ele armazenará tanto valores inteiros quanto racionais no item, apesar do contrário não ser verdade (colocando 0, ele apenas armazenará números inteiros). Acredito que tal divisão sirva para, no primeiro caso, ocupar menos &lt;span style="font-style: italic;"&gt;bytes&lt;/span&gt; na memória do PC. Mas não sei explicar-lhes com certeza. É assim no C/C++, não sei se isto se aplica aqui. Enfim, após escolher o tipo de valor, dê &lt;span style="font-weight: bold;"&gt;OK&lt;/span&gt;.&lt;br /&gt;&lt;img style="width: 453px; height: 189px;" src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/type.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Armazenar valor inteiro.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Por fim, ele quer saber qual o &lt;span style="font-style: italic;"&gt;valor&lt;/span&gt; a ser armazenado. Tal valor pode ser fixo ou recebido de outro objeto (alterable values, global values etc). No exemplo, o valor armazenado deverá ser a posição X do personagem.&lt;br /&gt;&lt;img style="width: 453px; height: 189px;" src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/value.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Receber posição X do Herói.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;E, assim, armazena-se um valor. Vamos, então, aprender a armazenar uma string. É basicamente a mesma coisa, não fosse o fato de ser mais rápido, pois não existem strings inteiras ou racionais. Para armazenar uma &lt;span style="font-weight: bold;"&gt;string&lt;/span&gt;, na ação do evento desejado, vá na classe da extensão e entre em &lt;span style="font-weight: bold;"&gt;Setting Items&lt;/span&gt;, e escolha &lt;span style="font-weight: bold;"&gt;Set String&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Novamente, ele primeiro pede o &lt;span style="font-style: italic;"&gt;grupo&lt;/span&gt; que contém o item no qual o dado (dessa vez uma string) será armazenado. Escreva entre aspas, e dê &lt;span style="font-weight: bold;"&gt;OK&lt;/span&gt;.&lt;br /&gt;&lt;img style="width: 453px; height: 189px;" src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/groups.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Grupo &lt;/span&gt;Herói&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Aqui, ele pede o &lt;span style="font-style: italic;"&gt;item&lt;/span&gt; no qual a string será armazenada. Escreva entre aspas e dê &lt;span style="font-weight: bold;"&gt;OK&lt;/span&gt;.&lt;br /&gt;&lt;img style="width: 453px; height: 189px;" src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/items.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Item &lt;/span&gt;nome&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Por fim, aqui, ele pede a &lt;span style="font-style: italic;"&gt;string&lt;/span&gt; a ser armazenada. Uma string, tal como um valor, pode ser fixa ou recebida de outro objeto. Na imagem, a string armazenada será recebida do texto contido na EditBox.&lt;br /&gt;&lt;img style="width: 453px; height: 189px;" src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/strings.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Armazenar como string o texto da EditBox.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;E isso é o básico sobre armazenar dados. Vamos, agora, aprender a receber dados.&lt;br /&gt;&lt;br /&gt;--//--&lt;br /&gt;&lt;br /&gt;Na ação, defina o valor/string desejado como definiria normalmente (por exemplo, se for para definir o valor de um Counter, vá em &lt;span style="font-style: italic;"&gt;Set Counter&lt;/span&gt;). Quando ele pedir o valor, vá em &lt;span style="font-weight: bold;"&gt;Retrieve data from an object&lt;/span&gt;. Dependendo do tipo de dado (valor ou string), selecione &lt;span style="font-weight: bold;"&gt;Get Item Value (group, item, default value)&lt;/span&gt; ou &lt;span style="font-weight: bold;"&gt;Get Item String (group, item, default string)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Se o dado for um &lt;span style="font-weight: bold;"&gt;valor&lt;/span&gt;, dê um duplo clique sobre a extensão e escolha &lt;span style="font-weight: bold;"&gt;Get Item Value (group, item, default value)&lt;/span&gt;. Deve aparecer a seguinte expressão:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;GetItemValue&lt;/span&gt;( &lt;span style="color: rgb(153, 51, 153);"&gt;"Ini++"&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;&amp;gt; Enter string here &amp;lt;&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;&amp;gt; Enter string here &amp;lt;&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;&amp;gt; Enter value here &amp;lt;&lt;/span&gt;)&lt;br /&gt;&lt;img style="width: 453px; height: 189px;" src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/getvalue2.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Expressão que deve aparecer.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Substitua o primeiro &lt;span style="font-weight: bold;"&gt;&amp;gt; Enter string here &amp;lt;&lt;/span&gt; pelo nome do &lt;span style="font-weight: bold;"&gt;grupo&lt;/span&gt; (entre aspas), que contém o item no qual o valor a ser recebido está. O segundo &lt;span style="font-weight: bold;"&gt;&amp;gt; Enter string here &amp;lt;&lt;/span&gt;, substitua, também entre aspas, pelo nome do &lt;span style="font-weight: bold;"&gt;item&lt;/span&gt; no qual o valor em questão está. E, por fim, você deve substituir o terceiro &lt;span style="font-weight: bold;"&gt;&amp;gt; Enter string here &amp;lt;&lt;/span&gt; por um valor padrão, que o programa utilizará, caso ele não encontre o item em questão; seja por não existir, ou por ainda não ter sido criado (caso seja o programa que vá criá-lo posteriormente).&lt;br /&gt;&lt;img style="width: 453px; height: 189px;" src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/getvalue3.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Receber o valor do item &lt;/span&gt;posX&lt;span style="font-style: italic;"&gt;, que está no grupo &lt;/span&gt;Herói&lt;span style="font-style: italic;"&gt;. Caso o item não seja encontrado, adota-se o valor &lt;/span&gt;0&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Já se o dado for uma &lt;span style="font-weight: bold;"&gt;string&lt;/span&gt;, dê um duplo clique sobre a extensão e escolha a opção &lt;span style="font-weight: bold;"&gt;Get Item String (group, item, default string)&lt;/span&gt;. A expressão que deve aparecer agora é esta:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;GetItemString$&lt;/span&gt;( &lt;span style="color: rgb(153, 51, 153);"&gt;"Ini++"&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;&amp;gt; Enter string here &amp;lt;&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;&amp;gt; Enter string here &amp;lt;&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;&amp;gt; Enter string here &amp;lt;&lt;/span&gt;)&lt;br /&gt;&lt;img style="width: 453px; height: 189px;" src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/getstring2.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Expressão que deverá aparecer.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Substitua o primeiro &lt;span style="font-weight: bold;"&gt;&amp;gt; Enter string here &amp;lt;&lt;/span&gt; pelo nome do &lt;span style="font-weight: bold;"&gt;grupo&lt;/span&gt; (entre aspas) que contém o item no qual a string em questão está armazenada. O segundo &lt;span style="font-weight: bold;"&gt;&amp;gt; Enter string here &amp;lt;&lt;/span&gt;, você deve substituir pelo nome do &lt;span style="font-weight: bold;"&gt;item&lt;/span&gt; (também entre aspas) no qual a string a ser recebida está armazenada. Por fim, o terceiro &lt;span style="font-weight: bold;"&gt;&amp;gt; Enter string here&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&amp;lt;&lt;/span&gt; nada mais é do que uma string padrão (que também deve ser escrita entre aspas) que o programa adotará caso o item não exista, ou ainda não tenha sido criado (no caso de o programa criá-lo apenas futuramente).&lt;br /&gt;&lt;img style="width: 453px; height: 189px;" src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/getstring3.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Receber a string do item &lt;/span&gt;nome&lt;span style="font-style: italic;"&gt;, que pertence ao grupo &lt;/span&gt;Herói&lt;span style="font-style: italic;"&gt;. Caso o item não seja encontrado, utilizar como valor padrão &lt;/span&gt;um texto vazio&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;--//--&lt;br /&gt;&lt;br /&gt;E isso é o básico sobre armazenar e receber dados de um arquivo INI ;). A extensão ainda possui algumas funções necessárias e úteis (como mudar o INI com o qual ela está trabalhando), mas não vou deixar a matéria muito extensa explicando-as. Você pode explorar o resto da extensão sozinho; não é difícil. Fica isso como lição de casa.&lt;br /&gt;&lt;br /&gt;Se quiser ver um exemplo que fiz para esta matéria, clique &lt;a href="http://dl.dropbox.com/u/3919627/ExemploINI.zip"&gt;&lt;span style="font-weight: bold;" target="_blank"&gt;AQUI&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Bom, é isso. Espero que tenham entendido :). Dúvidas, sabem meu e-mail.&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-8726112751419475814?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8726112751419475814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8726112751419475814'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/armazenando-dados-em-arquivos-ini.html' title='Armazenando dados em arquivos INI'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5810041702041757473</id><published>2011-06-02T20:27:00.002-03:00</published><updated>2011-06-02T20:31:24.945-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Aviso</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Olá, olá!&lt;br /&gt;&lt;br /&gt;Vejo que os votos positivos estão subindo, o que leva-me a concluir que os primeiros eram, de fato, trolls. Mas isso não muda o fato de que irei fazer a experiencia, e restringirei ou não o blog de acordo com o resultado.&lt;br /&gt;&lt;br /&gt;Mas mais uma vez fica avisado aos meus fieis e poucos leitores não-trolls: não se preocupem! Mandem-me um e-mail e adicionarei vocês na lista de leitores!&lt;br /&gt;&lt;br /&gt;Ah sim! Essa semana tem matéria nova ;P. Na sexta, passarei o dia fora (escola + trabalho + academia), então, não vou ter tempo. Sábado, vou sair. Mas no domingo deve sair algo ;D. Refarei a matéria sobre edições de imagens no MMF2, e, se der tempo, farei uma nova do nível iniciante.&lt;br /&gt;&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5810041702041757473?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/5810041702041757473/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/aviso.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5810041702041757473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5810041702041757473'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/06/aviso.html' title='Aviso'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-2764047033442960289</id><published>2011-05-31T20:53:00.019-03:00</published><updated>2011-10-28T23:23:43.875-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Lógica de Programação</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Introdução:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Parecia-me um grande erro começar este curso falando de outra coisa senão Lógica de Programação. Conhecida, em alguns casos, como Algorítimo, é a base para a criação de qualquer software ou jogo, seja em MMF2, Java, Flash ou C/C++. O nosso objetivo utilizando tais programas é dar vida a esse Algorítimo. Aplicá-lo no software, para que este cumpra o que promete.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;A Lógica:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Serei breve aqui. Utilizarei para explicar Lógica de Programação com uma situação do nosso cotidiano. Percebam: se quiséssemos fazer um jogo com uma situação assim, precisariamos reproduzir essa lógica no software.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/3919627/Imagens/algoritimo.gif" /&gt;&lt;br /&gt;&lt;br /&gt;O esquema acima representa uma situação e as possíveis formas de tal situação terminar. O que você vai fazer ao desenvolver um jogo é criar uma situação como essa e os rumos que ela pode tomar.&lt;br /&gt;&lt;br /&gt;Outro exemplo. &lt;span style="font-weight: bold;"&gt;Super Mario&lt;/span&gt; é um clássico no mundo dos jogos. Provavelmente muitos dos que estão lendo isso agora já o jogaram e sabem como o jogo funciona. No que diz respeito a como enfrentar os inimigos no jogo, é mais ou menos o seguinte:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mário encontra um inimigo...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;&amp;gt; Vai tentar enfrentá-lo?&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;&amp;gt; Sim&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;gt;&amp;gt; Colide com ele&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;&amp;gt;&amp;gt;&amp;gt; Pulou em cima dele?&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Sim&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Inimigo morre&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Não&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Mario morre&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;&amp;gt; Não&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;gt;&amp;gt; Passa por ele correndo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Vê? Se o jogador decide enfrentar o inimigo, ele deve pular em cima deste para matá-lo. Se o inimigo e o Mario colidirem enquanto Mario estiver no chão, quem morre é o Mario. Mas se Mario pular na cabeça do inimigo, é o inimigo quem morre. Aí está um Algorítimo usado diretamente em jogos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Concluindo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Bem, é só isso. Você só precisa ter noção de que é você quem cria o universo dentro do seu jogo/software. No começo, você pouco utilizará Algorítimo; será algo muito mecânico: apenas colocar os personagens e obstáculos na tela e fazer eles se mexerem. Porém, para criar coisas mais complexas futuramente, você terá que criar manualmente esse conjunto de possibilidades em uma situação.&lt;br /&gt;&lt;br /&gt;Mas não se preocupe com isso agora. Com o tempo você desenvolverá sua lógica e vai poder fazer o que quiser. É por isso que nas próximas aulas, focarei em ensiná-los as principais funções do programa.&lt;br /&gt;&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-2764047033442960289?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2764047033442960289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2764047033442960289'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/logica-de-programacao.html' title='Lógica de Programação'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-2086353720289011955</id><published>2011-05-31T19:34:00.002-03:00</published><updated>2011-05-31T19:36:44.519-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Nada de especial</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Não, relaxem, não é nada de especial. Só queria agradecer PELAS MILHARES E MILHARES DE OPINIÕES QUE VOCÊS DEIXARAM NESTE POST:&lt;br /&gt;http://mmfmakers.blogspot.com/2011/05/aula-2.html&lt;br /&gt;&lt;br /&gt;BRIGADÃO GALERA! AGORA EU SEI EXATAMENTE COMO ESTÁ A MATÉRIA! ¬¬&lt;br /&gt;&lt;br /&gt;Falando sério, façam a parte de vocês... colaborem pootz! Preciso saber se está boa, e preciso do ponto de vista de vocês! Artur está se mostrando um pouco desinteressado acerca do assunto, então, ainda nem tentou.&lt;br /&gt;&lt;br /&gt;Bem, se não for o Artur, tem o Diego.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-2086353720289011955?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/2086353720289011955/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/nada-de-especial.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2086353720289011955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2086353720289011955'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/nada-de-especial.html' title='Nada de especial'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-8851548411935289504</id><published>2011-05-29T21:44:00.001-03:00</published><updated>2011-05-29T21:48:32.630-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Aula 2 &amp; Engine</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Eaíii galeraaaa!!&lt;br /&gt;&lt;br /&gt;Refiz a aula 2. Gostaria que dessem uma lida e comentassem neste post se está melhor ou pior. Mas queria que fizessem isso mesmo... tenho de saber se a matéria tá boa ou não ;). Não to pedindo pra só darem uma olhada nas imagens e dizer: tá legal. Não, queria que lessem mesmo... ver se, do ponto de vista de um iniciante, está compreensível.&lt;br /&gt;&lt;br /&gt;Obrigado.&lt;br /&gt;&lt;br /&gt;--//--&lt;br /&gt;&lt;br /&gt;Além disso, trago pra vocês uma engine nova, de selecionar personagens em três slots, como no tal jogo Naruto Arena. Vocês podem conferi-la na seção de engines. Extremamente simples a lógica, vocês devem entender sem problemas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-8851548411935289504?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/8851548411935289504/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/aula-2.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8851548411935289504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8851548411935289504'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/aula-2.html' title='Aula 2 &amp; Engine'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-6980049197494344426</id><published>2011-05-29T21:35:00.001-03:00</published><updated>2011-05-29T21:47:33.290-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Engines MMF2'/><title type='text'>Seleção Tripla de Personagens</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Autor:&lt;/span&gt; Eskyz&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Descrição:&lt;/span&gt; No fórum, o tonico mandou uma dúvida, perguntando como fazer uma seleção tripla de personagens, como no jogo Naruto Arena. Dei uma olhada no jogo em questão, e desenvolvi um método para se fazer isso utilizando Global Strings.&lt;br /&gt;&lt;br /&gt;Os eventos são muitos, e variam dependendo do número de personagens do seu jogo, e da quantidade de slots que serão selecionáveis. Mas a essência é simples, e, nos eventos, o que mudam são detalhes. Ou seja, você faz um, e vai só copiando e colando, mudando o personagem. Então, não tem problema algum ;P.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Download:&lt;/span&gt; &lt;a href="http://dl.dropbox.com/u/3919627/%5BMMFM%5Dsele%C3%A7%C3%A3o_tripla_by_Eskyz.zip"&gt;Link Direto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-6980049197494344426?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6980049197494344426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6980049197494344426'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/selecao-tripla-de-personagens.html' title='Seleção Tripla de Personagens'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-1241470245468970231</id><published>2011-05-26T13:35:00.005-03:00</published><updated>2011-05-29T12:24:43.021-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Cobaia</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Olá pessoal!&lt;br /&gt;&lt;br /&gt;Já achei a cobaia! Após revisar a segunda aula, começaremos os testes. Minha cobaia será o nosso amigo João Artur. &lt;strike&gt;Ele é inteligente. O melhor seria uma pessoa mediana, mas ele serve com certeza.&lt;/strike&gt; Comecei a ficar em dúvida, já que ele achou difícil até instalar o programa...&lt;br /&gt;&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-1241470245468970231?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/1241470245468970231/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/cobaia.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1241470245468970231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1241470245468970231'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/cobaia.html' title='Cobaia'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-1804689367803872032</id><published>2011-05-25T17:28:00.004-03:00</published><updated>2011-05-25T17:36:52.286-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Eaí</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Eaí pessoal! Como disse, ainda não postei nenhuma matéria. Estou desenvolvendo um método de fazer full screen universal com Window Control (a FS padrão achata), e, quando conseguir, irei postar. E quando começo uma matéria, a termino.&lt;br /&gt;&lt;br /&gt;Está sendo muito complicado redimensionar o tamanho do display até um limite desejado por mim; não encontrei tal função em extensão alguma. Entretanto, um amigo meu que sabe C, e tem a SDK da Click, tentará desenvolver tal extensão, se necessário.&lt;br /&gt;&lt;br /&gt;Sobre a enquete, vi que em um voto Péssimo. Não sei se é trollagem ou não, mas, de qualquer forma, irei revisar todas as matérias. Depois, chamarei um amigo leigo, que nunca teve contato com criação de jogos, mas interessado, para tentar aprender a utilizar MMF2. Se ele conseguir, e eu descobrir que foi trollagem, vou ficar extremamente decepcionado: estou levando esta enquete a sério, e irei revisar todas as aulas de acordo com seu resultado. Se realmente está ruim, deixe. Mas se for trollagem, eu saberei, e, nesse caso, infelizmente, terei de selecionar meus leitores.&lt;br /&gt;&lt;br /&gt;Não preciso dizer que, apesar de não ser boa, a MMFM é a única comunidade que contêm realmente uma quantidade considerável de matérias sobre o assunto. O que significa que os trolls vão se fuder UAAUHAUHA. Mas quem não deve não teme; se for opinião sincera, saberei. E quem realmente tem vontade de aprender MMF2, certamente me mandará um e-mail solicitando ser convidado para ler o blog ^^. Se você for um leitor sério, não será prejudicado :).&lt;br /&gt;&lt;br /&gt;É isso aí. Tenho um amigo super interessado no colégio, e farei um teste. Eu detesto trolls, então, se você for um, serei obrigado a combater fogo com fogo. Ou melhor... trollagem com trollagem.&lt;br /&gt;&lt;img src="http://1.bp.blogspot.com/_KnYeTqzjl9g/TR9fU3uWvCI/AAAAAAAAAKI/mzpmpRDtYY4/s1600/troll-face.gif" /&gt;&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-1804689367803872032?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/1804689367803872032/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/eai_25.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1804689367803872032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1804689367803872032'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/eai_25.html' title='Eaí'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-9219932587881614017</id><published>2011-05-22T20:04:00.003-03:00</published><updated>2011-10-23T00:08:46.548-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ColunaGabriel'/><title type='text'>Space Max</title><content type='html'>&lt;img height="168" src="http://i47.tinypic.com/1zdr7cy.png" width="320" /&gt;&lt;br /&gt;&lt;div&gt;Meu 2º game╝╝ feito por mim, &lt;span style="color: red;"&gt;Space Max&lt;/span&gt;&lt;br /&gt;He, meu joguinho de nave quase sem graça mas não sei se vocês vão gostar!?○○○○&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Imagens: &lt;/strong&gt;&lt;br /&gt;&lt;img alt="" border="0" src="http://i54.tinypic.com/2zzuhjs.jpg" style="display: inline;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" src="http://i55.tinypic.com/9ld4pf.jpg" style="display: inline;" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" src="http://i53.tinypic.com/6p5apw.jpg" style="display: inline;" /&gt;&lt;br /&gt;&lt;br /&gt;Titulo: Space Max&lt;br /&gt;&lt;br /&gt;Versão:1.0&lt;br /&gt;&lt;br /&gt;Fases: 9/9 &lt;img alt="Smile" longdesc="2" src="http://illiweb.com/fa/i/smiles/icon_smile.gif" style="display: inline;" /&gt;&lt;br /&gt;&lt;br /&gt;Dificuldade: Média&lt;br /&gt;&lt;br /&gt;Download: &lt;a href="http://adf.ly/246619/http://www.4shared.com/file/KxD8t1Yn/SM_Install.html" rel="nofollow" target="_blank"&gt;4shared.com /file/KxD8t1Yn/SM_Install.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;O jogo é feito com poucos eventos mas ta bom.  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-9219932587881614017?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/9219932587881614017/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/meu-2-game-feito-por-mim-space-max-he.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/9219932587881614017'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/9219932587881614017'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/meu-2-game-feito-por-mim-space-max-he.html' title='Space Max'/><author><name>Gabriel</name><uri>http://www.blogger.com/profile/05189074358461496851</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-syooXSNPh0I/TbB7thZ5zEI/AAAAAAAAAII/p19jhzpcpfs/s220/images.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-7302589477875285020</id><published>2011-05-22T20:00:00.000-03:00</published><updated>2011-05-22T20:00:39.297-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ColunaGabriel'/><title type='text'>Sonic Island</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://i40.tinypic.com/2mebtiw.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="194" src="http://i40.tinypic.com/2mebtiw.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: darkblue;"&gt;História do Jogo&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://illiweb.com/fa/i/smiles/icon_wink.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img alt="Wink" border="0" class="resize_img" longdesc="15" src="http://illiweb.com/fa/i/smiles/icon_wink.gif" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sonic estava indo a Angel Island quando Dr.Robotinik ataca e Sonic é jogado no centro da Angel Island.&lt;br /&gt;Saia da Angel Island e acabe com o Dr.Robotinik.&lt;br /&gt;&lt;br /&gt;Criador: Gabriel Francisco &lt;br /&gt;&lt;br /&gt;Programa: MMF2 &lt;img alt="Surprised" class="resize_img" longdesc="4" src="http://illiweb.com/fa/i/smiles/icon_surprised.gif" /&gt;&lt;br /&gt;&lt;br /&gt;Download: &lt;a href="http://adf.ly/246619/http://www.4shared.com/file/_Yk2BXvr/Instalar.html" rel="nofollow" target="_blank"&gt;4shared.com /file/_Yk2BXvr/Instalar.html&lt;/a&gt; &lt;img alt="Very Happy" class="resize_img" longdesc="1" src="http://illiweb.com/fa/i/smiles/icon_biggrin.png" /&gt; &lt;img alt="Very Happy" class="resize_img" longdesc="1" src="http://illiweb.com/fa/i/smiles/icon_biggrin.png" /&gt; &lt;img alt="Very Happy" class="resize_img" longdesc="1" src="http://illiweb.com/fa/i/smiles/icon_biggrin.png" /&gt; &lt;img alt="Very Happy" class="resize_img" longdesc="1" src="http://illiweb.com/fa/i/smiles/icon_biggrin.png" /&gt;&lt;br /&gt;&lt;br /&gt;Imagens:      &lt;br /&gt;&lt;img alt="" border="0" class="resize_img" src="http://i42.tinypic.com/1z5t3s1.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="resize_img" src="http://i44.tinypic.com/ac3cdi.png" /&gt;&lt;br /&gt;&lt;br /&gt;Joguinho paresido com o Sonic Angel Island.Hihi e Sonic Spike.&lt;br /&gt;&lt;br /&gt;Ta feito o game!&lt;br /&gt;&lt;br /&gt;Pra quem não está conseguindo baixar, copie o link e cole no navegador: &lt;i&gt;h&lt;strong&gt;&lt;/strong&gt;tt&lt;strong&gt;&lt;/strong&gt;p:&lt;strong&gt;&lt;/strong&gt;/&lt;strong&gt;&lt;/strong&gt;/w&lt;strong&gt;&lt;/strong&gt;ww.&lt;strong&gt;&lt;/strong&gt;4sh&lt;strong&gt;&lt;/strong&gt;ared&lt;strong&gt;&lt;/strong&gt;.&lt;strong&gt;&lt;/strong&gt;com/fi&lt;strong&gt;&lt;/strong&gt;le/_Yk2BXvr/Instalar.&lt;strong&gt;&lt;/strong&gt;html&lt;/i&gt;&lt;span class="gensmall"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-7302589477875285020?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/7302589477875285020/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/sonic-island.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7302589477875285020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7302589477875285020'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/sonic-island.html' title='Sonic Island'/><author><name>Gabriel</name><uri>http://www.blogger.com/profile/05189074358461496851</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-syooXSNPh0I/TbB7thZ5zEI/AAAAAAAAAII/p19jhzpcpfs/s220/images.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-2536819470164986328</id><published>2011-05-22T19:42:00.000-03:00</published><updated>2011-05-22T19:42:38.857-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ColunaGabriel'/><title type='text'>Space Invaders Customizado</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;div&gt;Acho que essa matéria é um mini tutorial mas vamos lá. Só que sem a droga do Movimento Pré-Definido Space Invaders.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Objetos:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;3 Detectores&lt;br /&gt;Naves inimígas[apenas uma na parte cinza].&lt;br /&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="1" class="spoiler"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="cursor: pointer;"&gt;&lt;span class="genmed"&gt;&lt;b&gt;Spoiler:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="spoiler_closed"&gt;&amp;nbsp;&lt;/td&gt;&lt;td class="spoiler_content hidden"&gt;&lt;br /&gt;&lt;span class="resizebox gensmall clearfix" style="width: 580.211px;"&gt;&lt;span class="resize_border clearfix"&gt;&lt;span class="resize_content clearfix"&gt;&lt;a class="enlarge" href="http://mmfmakersforum.ace.st/t204-space-invaders-customizado#"&gt;Expandir esta imagem&lt;/a&gt;&lt;a class="resize" href="http://mmfmakersforum.ace.st/t204-space-invaders-customizado#"&gt;Reduzir esta imagem&lt;/a&gt;&lt;span class="resize_filler"&gt; &lt;/span&gt;&lt;a class="fullsize" href="http://mmfmakersforum.ace.st/t204-space-invaders-customizado#"&gt;Ver em tamanho real&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;img alt="" border="0" class="resize_img" src="http://i53.tinypic.com/2nusub5.jpg" width="580" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="postbody"&gt;&lt;br /&gt;&lt;br /&gt;Crie mais dois detectores com movimento Boucing Ball,&lt;br /&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="1" class="spoiler"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="cursor: pointer;"&gt;&lt;span class="genmed"&gt;&lt;b&gt;Spoiler:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="spoiler_closed"&gt;&amp;nbsp;&lt;/td&gt;&lt;td class="spoiler_content hidden"&gt;&lt;br /&gt;&lt;span class="resizebox gensmall clearfix" style="width: 640px;"&gt;&lt;span class="resize_border clearfix"&gt;&lt;span class="resize_content clearfix"&gt;&lt;a class="enlarge" href="http://mmfmakersforum.ace.st/t204-space-invaders-customizado#"&gt;Expandir esta imagem&lt;/a&gt;&lt;a class="resize" href="http://mmfmakersforum.ace.st/t204-space-invaders-customizado#"&gt;Reduzir esta imagem&lt;/a&gt;&lt;span class="resize_filler"&gt; &lt;/span&gt;&lt;a class="fullsize" href="http://mmfmakersforum.ace.st/t204-space-invaders-customizado#"&gt;Ver em tamanho real&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;img alt="" border="0" class="resize_img" src="http://i56.tinypic.com/21aeidk.jpg" width="640" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="postbody"&gt;&lt;br /&gt;&lt;br /&gt;só que indo para a esquerda e altere a velocidade. &lt;br /&gt;No meu caso, a velocidade e 10 mas bote o que você achar melhor.&lt;br /&gt;Mas não muito rápido.&lt;br /&gt;&lt;br /&gt;Vocês sabem que detectores sempre devem estar invisíveis.&lt;br /&gt;&lt;br /&gt;Quando os dois detectores colidirem com outro detector vermelho,&lt;br /&gt;faça as criações das naves com o Create Object&lt;br /&gt;&lt;img alt="" border="0" class="" src="http://i56.tinypic.com/2hzon4k.jpg" style="display: inline;" /&gt;&lt;br /&gt;&lt;br /&gt;Quando os dois detectores colidirem no outro lado do frame faça os seguintes eventos:&lt;br /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="" src="http://i52.tinypic.com/5d1img.jpg" style="display: inline;" /&gt;&lt;br /&gt;&lt;img alt="" border="0" class="" src="http://i51.tinypic.com/2hdqt7p.jpg" style="display: inline;" /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: darkblue;"&gt;Leaves the play area on the bottom, top or left&amp;gt; Wrap around play area.&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: green;"&gt;Ta Feito!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="Very Happy" class="" longdesc="1" src="http://illiweb.com/fa/i/smiles/icon_biggrin.png" style="display: inline;" title="Very Happy" /&gt; &lt;img alt="Very Happy" class="" longdesc="1" src="http://illiweb.com/fa/i/smiles/icon_biggrin.png" style="display: inline;" title="Very Happy" /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-2536819470164986328?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/2536819470164986328/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/space-invaders-customizado.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2536819470164986328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2536819470164986328'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/space-invaders-customizado.html' title='Space Invaders Customizado'/><author><name>Gabriel</name><uri>http://www.blogger.com/profile/05189074358461496851</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-syooXSNPh0I/TbB7thZ5zEI/AAAAAAAAAII/p19jhzpcpfs/s220/images.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-89143400951719644</id><published>2011-05-22T19:38:00.000-03:00</published><updated>2011-05-22T19:38:57.244-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ColunaGabriel'/><title type='text'>Funções do Backdrop</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;Bem gente, pra quem não sabe, Backdrop ou Background é um tipo de plano de fundo de uma area.&lt;br /&gt;&lt;span style="color: blue;"&gt;&lt;strong&gt;Exemplo:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;img alt="" border="0" class="resize_img" height="480" src="http://i43.tinypic.com/zvyjd0.png" width="640" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 18px; line-height: normal;"&gt;&lt;span style="color: blue;"&gt;&lt;strong&gt;Varias maneiras de utilizar:&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue;"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Existem varias maneiras de utilizar o Backdrop como uma plataforma, uma escada ou um obstaculo qualquer ou até mesmo nada.&lt;br /&gt;As duas principais funções do Backdrop é de Plataforma e de não fazer nada (modo plano de fundo)&lt;br /&gt;&lt;br /&gt;Plataforma:&lt;br /&gt;&lt;br /&gt;Alguns iniciantes devem falar:&lt;br /&gt;"Por que o personagem não colidiu no Backdrop se eu fiz o evento de colisão nele?"&lt;br /&gt;Se algum iniciante fez essa reclamação eu resolvo isso.&lt;br /&gt;Para colidir, selecione o backdrop e vá nas propriedades do backdrop e clique em &lt;img alt="" border="0" class="resize_img" src="http://i40.tinypic.com/161gl8n.jpg" /&gt;&lt;br /&gt;Depois disto faça isto:&lt;br /&gt;&lt;img alt="" border="0" class="resize_img" src="http://i41.tinypic.com/oj076v.png" /&gt;&lt;br /&gt;&lt;br /&gt;Facil né &lt;img alt="Very Happy" class="resize_img" longdesc="1" src="http://illiweb.com/fa/i/smiles/icon_biggrin.png" title="Very Happy" /&gt; &lt;br /&gt;&lt;br /&gt;Para fazer as outras funções como escada faça o mesmo com a função de programar para plataforma.&lt;br /&gt;Em vez de botar "Platform" bote "Ladder"&lt;br /&gt;Para fazer a função de escada encoste no backdrop programado para escada e aperte cima e baixo para decer e subir.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: red;"&gt;Atenção:  Para fazer as colisões de obstaculo e plataforma bote o evento:  "(Objeto) collides with the background" e a função é "Bounce" ou se  preferir "Stop"&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Tudo feito!!! &lt;img alt="Cool" class="resize_img" longdesc="6" src="http://illiweb.com/fa/i/smiles/icon_cool.gif" title="Cool" /&gt; &lt;br /&gt;&lt;br /&gt;Espero que tenho ajudado bastantes iniciantes desse planeta. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-89143400951719644?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/89143400951719644/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/funcoes-do-backdrop.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/89143400951719644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/89143400951719644'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/funcoes-do-backdrop.html' title='Funções do Backdrop'/><author><name>Gabriel</name><uri>http://www.blogger.com/profile/05189074358461496851</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-syooXSNPh0I/TbB7thZ5zEI/AAAAAAAAAII/p19jhzpcpfs/s220/images.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-4888192910159255269</id><published>2011-05-21T16:58:00.003-03:00</published><updated>2011-05-21T17:15:33.392-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Parte 3 da matéria</title><content type='html'>&lt;img src="http://dl.dropbox.com/u/3919627/Imagens/eskyz.png" /&gt;&lt;br /&gt;&lt;br /&gt;Só escrevendo pra dizer que pode ser que demore um pouco para eu postar a terceira parte da matéria. Alguns dias talvez, to um pouco apertado.&lt;br /&gt;&lt;br /&gt;Ah sim, por favor, votem na enquete ao lado. É muito importante, já que estou fazendo a revisão das matérias. Mas, por favor, sem trollagens. Votem sério. Se curtiram, em Muito boas ou boas... se não curtiram, votem em Ruins ou Péssimas. Se acharam que só servem para complementar, cliquem em Razoável. Mas votem na moral, por favor.&lt;br /&gt;&lt;br /&gt;Flw&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-4888192910159255269?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/4888192910159255269/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/parte-3-da-materia.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4888192910159255269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4888192910159255269'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/parte-3-da-materia.html' title='Parte 3 da matéria'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-4111894486590477549</id><published>2011-05-20T18:51:00.002-03:00</published><updated>2011-05-20T18:56:22.467-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Parte 2 do MPFL</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;A parte 2 já foi postada, e já pode ser conferida na seção Apostila MMF2.&lt;br /&gt;&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-4111894486590477549?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/4111894486590477549/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/parte-2-do-mpfl.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4111894486590477549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4111894486590477549'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/parte-2-do-mpfl.html' title='Parte 2 do MPFL'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-13842901524288791</id><published>2011-05-20T15:33:00.038-03:00</published><updated>2011-05-20T18:50:48.439-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Movimento Personalizado de Fast Loops - Parte 2</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(51, 102, 255);font-size:180%;" &gt;Parte 2: Gravidade e Pulo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Introdução:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Aula passada, entendemos a essência do Movimento Personalizado de Fast Loops. Mas para fazer-se um movimento de plataforma, precisaremos criar eventos de gravidade. E, se o programador desejar, o que normalmente deseja, eventos de pulo. Normalmente? Sim, pois devemos observar que em certos tipos de jogos, não há como pular. Se bem que, nesse caso, um pré-definido bastaria.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Preparando o Terreno:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Aqui, criemos os seguintes objetos: alguns backdrops (chão, paredes e teto); uma Máscara de Colisão (novamente usemos &lt;span style="font-style: italic;"&gt;32x32&lt;/span&gt;, e chamemos-a de MC) com o hotspot na parte inferior-central; e um Detector de Colisão, com &lt;span style="font-style: italic;"&gt;1px&lt;/span&gt; de altura e a mesma largura da Máscara de Colisão, seu Hotspot posicionado na parte central-central.&lt;br /&gt;&lt;img style="width: 472px; height: 354px;" src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/frameplat.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Frame montado. Um chão, duas paredes e um teto, sem falar na Máscara de Colisão. Repare também no pequeno detector logo abaixo da Máscara de Colisão.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Se prestou atenção na aula anterior, deve estar se perguntando o porquê do detector, já que as colisões são reconhecidas pela Máscara de Colisão. Respondo em uma palavra: pulo. É verdade que existem outras formas de se fazer o pulo (através de uma flag, por exemplo), mas estou adotando essa não apenas por ser mais prática, como também para tentar ser fiel ao movimento original de David.&lt;br /&gt;&lt;br /&gt;Em princípio (e em eventos também), é bastante simples: o detector deve sempre ficar 1px abaixo do personagem. Logo, podemos dizer que quando o detector está sobrepondo um obstáculo, a Máscara de Colisão está no chão. E se o personagem estiver no chão e o jogador pressionar o botão de pulo... o personagem pula.&lt;br /&gt;&lt;br /&gt;Mas ainda não acabamos de preparar nosso terreno: ainda precisamos nomear as variáveis, exatamente como fizemos na aula anterior.&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/movxmovy.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Variáveis nomeadas.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora sim, aos eventos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Programando o movimento:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Acho desnecessário repetir toda a longa explicação sobre Movimentos Horizontais, já que vocês já devem dominá-los bem a essa altura. Afinal, já a fizeram em ambos os eixos apenas neste tipo de movimento; já trabalhamos com posições X e Y faz algum tempo.&lt;br /&gt;&lt;br /&gt;Só devo acrescentar um pequeno detalhe aos eventos desta vez, que diz respeito ao nosso detector. Em todos os eventos em que ocorre de fato uma movimentação (são aqueles em que alteramos a posição da Máscara de Colisão, no caso, a posição X), adicione a seguinte ação:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Set position at (0,1) from ("MC")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Isto é, todas as condições que causam uma movimentação na Máscara de Colisão, devem causar uma movimentação também no detector. Entretanto, o movimento do detector não precisa ser específico; basta colocar-se para que movimente-se para baixo da Máscara de Colisão.&lt;br /&gt;&lt;img style="width: 482px; height: 143px;" src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/posicionard.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Deve ficar desse jeito. Esses dois eventos são os que fazem a Máscara de Colisão de fato se movimentar, pois mudam sua posição X.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Vamos programar, então, a gravidade e o pulo!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;A) Manipulação de Variáveis&lt;/span&gt;&lt;br /&gt;Antes de manipular as variáveis, tenha isto em mente: a variável MovY representa a gravidade.&lt;br /&gt;&lt;br /&gt;Vamos definir a aceleração gravitacional. Faça o seguinte evento:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;MovY of ("MC") &amp;lt; &lt;span style="font-style: italic;"&gt;10&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Set MovY to &lt;span style="font-style: italic;"&gt;MovY("MC")+0.5&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tal evento significa que, enquanto a gravidade for menor que &lt;span style="font-style: italic;"&gt;10&lt;/span&gt;, adicionaremos &lt;span style="font-style: italic;"&gt;0.5&lt;/span&gt; a ela, para que chegue, gradualmente, a &lt;span style="font-style: italic;"&gt;10&lt;/span&gt;. Quando chegar em &lt;span style="font-style: italic;"&gt;10&lt;/span&gt;, ela para; isso serve para que quando o personagem pule de determinadas altitudes, a velocidade de queda seja limitada, para que ele não caia muito rápido. Logo, a cada centésimo de segundo, a velocidade varia em &lt;span style="font-style: italic;"&gt;0.5px&lt;/span&gt; a favor da trajetória (ela é orientada para baixo). Isso significa que &lt;span style="font-style: italic;"&gt;0.5&lt;/span&gt; é a aceleração.&lt;br /&gt;&lt;br /&gt;Você pode fazer com que a gravidade seja menor de duas formas: a primeira, é diminuindo a aceleração (0.5). A segunda, adicionando uma condição &lt;span style="font-style: italic;"&gt;Every&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Pois bem. Vamos, então, ao pulo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;("Jogador 1") Pressed fire 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;("Detector") is overlapping a background&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Set MovY to &lt;span style="font-style: italic;"&gt;-10&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Esse evento diz que, se o detector estiver sobrepondo um obstáculo (o que significa que o personagem está no chão) e o jogador pressionar a tecla de fogo 1, a variável da gravidade será definida para &lt;span style="font-style: italic;"&gt;-10&lt;/span&gt;. Neste ponto, talvez, você não entenda o que isso significa. Mas é o que fará com que a Máscara de Colisão pule. E quanto menor o valor (pois é negativo), mais alto a Máscara de Colisão pulará. Em breve, entenderemos por que.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;B) Loops de Movimentação&lt;/span&gt;&lt;br /&gt;É aqui que é feito o movimento propriamente dito. Precisamos, antes de mais nada, definir a quantidade de vezes que o loop irá acontecer, de acordo com o valor da variável, assim, causando o movimento.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;MovY of ("MC") &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt; 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Start loop "MovY" &lt;span style="font-style: italic;"&gt;Abs(MovY( "MC" ))&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ou seja, se a gravidade for diferente de 0, iniciará-se um loop. Tal loop será o "motor" para movimentação em si. A quantidade de vezes que o loop será executado é expressa pelo módulo da variável MovY. Isso porque não se pode executar um loop um número negativo de vezes =P.&lt;br /&gt;&lt;br /&gt;Agora, começa a movimentação. Faremos com que o personagem se mova a favor da trajetória. Ou seja, caia.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;On loop "MovY"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;MovY of ("MC") &amp;gt; 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(MC) Set Y position to &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt;Y( "MC" )+1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(DP) Set position at (0, 1) from ("MC")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ou seja, enquanto o loop estiver sendo executado, se a gravidade for maior que 0 (valores positivos equivalem ao sentido para baixo, pois esta é a orientação da trajetória), define-se a posição Y da Máscara de Colisão para sua própria posição, adicionada a &lt;span style="font-style: italic;"&gt;1&lt;/span&gt;(px). Isso significa que enquanto o loop estiver sendo executado e a gravidade for positiva, a Máscara de Colisão irá cair. E o detector será posicionado em seu devido lugar, já que ele deve se mover sempre que a Máscara de Colisão se mover.&lt;br /&gt;&lt;br /&gt;Faremos, agora, o inverso: que a Máscara de Colisão mova-se contra a trajetória. Isso significa... subir!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;On loop&lt;span style="font-style: italic;"&gt; &lt;/span&gt;"MovY"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;MovY of ("MC") &amp;lt; 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(MC) Set Y position to &lt;span style="font-style: italic;"&gt;Y("MC")-1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(DP) Set position at (0, 1) from ("MC")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Enquanto o loop estiver sendo executado, se a gravidade for menor que 0 (valores negativos equivalem ao sentido para cima, pois este é o sentido oposto ao da trajetória), define-se a posição Y da Máscara de Colisão para a sua própria posição, subtraída de &lt;span style="font-style: italic;"&gt;1&lt;/span&gt;(px).  Isso significa que enquanto a gravidade for negativa, o personagem irá subir. Por isso que no evento do pulo, definimos a variável para um valor negativo!&lt;br /&gt;&lt;br /&gt;Entretanto, ele não ficará para sempre no ar, pois o primeiro evento que fizemos irá tratar de fazer a Máscara de Colisão descer. Se a gravidade é negativa, é menor que 10; logo, pelo primeiro evento que fizemos, ele irá adicionando 0.5 à gravidade, fazendo com que, gradualmente, o valor vá crescendo, até que a gravidade volte a ser positiva, e a Máscara de Colisão volte a cair.&lt;br /&gt;&lt;br /&gt;Vamos fazer as colisões. Primeiro, vamos fazer com que a Máscara de Colisão colida com o teto:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;On loop "MovY"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;MovY of ("MC") &amp;lt; &lt;span style="font-style: italic;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;("MC") is overlapping a backdrop&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Stop loop &lt;span style="font-style: italic;"&gt;"MovY"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(MC) Set Y position to &lt;span style="font-style: italic;"&gt;Y("MC")+1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Set MovY to &lt;span style="font-style: italic;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(DP) Set position at (0, 1) from ("MC")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ou seja, se enquanto o loop estiver sendo executado e a gravidade for menor que 0 (ou seja, a Máscara de Colisão estiver pulando), a Máscara de Colisão sobrepor um obstáculo, isso significa que ele é teto. Logo, devemos fazê-la descer, para que ela não atravesse o teto. Para isso, somamos 1 à sua posição (o que anula a subida), paramos o loop, e definimos o valor da variável MovY para 0. Estes dois últimos, como já expliquei, servem para que a Máscara de Colisão não "trave" no obstáculo ao colidir. Ah, claro, e posicionamos o detector também, para que ele se ajuste novamente.&lt;br /&gt;&lt;br /&gt;Agora, colidir com o chão:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;On loop "MovY"&lt;/span&gt;&lt;br /&gt; &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;MovY of ("MC") &amp;gt; &lt;span style="font-style: italic;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;("MC") is overlapping a backdrop&lt;/span&gt;&lt;br /&gt; &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Stop loop &lt;span style="font-style: italic;"&gt;"MovY"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(MC) Set Y position to &lt;span style="font-style: italic;"&gt;Y("MC")-1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Set MovY to &lt;span style="font-style: italic;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(DP) Set position at (0, 1) from ("MC")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O princípio é o mesmo. Anulamos o movimento somando um valor oposto, definimos a variável para 0, paramos o loop e posicionamos o detector. Só o que mudou agora, foi o sentido. Já que MovY é maior que 0, o personagem logicamente estará caindo, e o obstáculo que ele encontrará será o chão. Para que ele não atravesse o chão, fazemos com que ele suba 1px, ao mesmo tempo que desce 1px. Os dois, então, se anulam, e a Máscara de Colisão entra em repouso. Ao mesmo tempo, fazemos com que o loop pare e a gravidade (MovY) seja definida para 0.&lt;br /&gt;&lt;br /&gt;--//--&lt;br /&gt;&lt;br /&gt;E aí está! Um movimento de plataforma perfeito, sem bug algum, e completamente customizável. Agora, tente personalizá-lo ainda mais. Cria molas, pulos duplos, plataformas móveis, tudo o que puder imaginar! Vá testando sua imaginação, vendo se consegue fazer algo sozinho. Caso não tenha entendido algo, dê uma conferida &lt;a href="http://dl.dropbox.com/u/3919627/Mov.%20Fast%20Loops%20-%20Plataforma.mfa"&gt;neste&lt;/a&gt; exemplo, para ver onde errou.&lt;br /&gt;&lt;br /&gt;Mas calma lá, ainda não acabamos... na próxima parte, ensinarei a fazer Slope e a configurar as animações. Para quem não sabe, Slope é a capacidade de andar em terrenos irregulares, como ladeiras. As animações... bem, vocês já deveriam saber fazer, mas ensinarei assim mesmo.&lt;br /&gt;&lt;br /&gt;Bom aprendizado ;)&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-13842901524288791?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/13842901524288791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/13842901524288791'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/movimento-personalizado-de-fast-loops_20.html' title='Movimento Personalizado de Fast Loops - Parte 2'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-4669139812049341588</id><published>2011-05-20T15:31:00.002-03:00</published><updated>2011-05-20T15:32:45.181-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Parte II da matéria</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Eaí comunidade mmfmakiana! Antes de mais nada, gostaria de pedir desculpas pelo atraso de uma explicação. Estava até hoje sem net, percebam; estava de mudança, e só agora vim arranjar meu pc completo e um modem com uma net de 1mb, pra continuar a matéria.&lt;br /&gt;&lt;br /&gt;Mas agora mesmo farei a parte II.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-4669139812049341588?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/4669139812049341588/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/parte-ii-da-materia.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4669139812049341588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4669139812049341588'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/parte-ii-da-materia.html' title='Parte II da matéria'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-3172299170586718665</id><published>2011-05-13T20:13:00.001-03:00</published><updated>2011-05-13T20:14:31.179-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Matéria nova: postada</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Como prometido a algumas horas atrás, fiz a primeira parte da matéria acerca do Movimento Personalizado de Fast Loops. Quem quiser dar uma conferida, segue link:&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2011/05/movimento-personalizado-de-fast-loops_13.html"&gt;http://mmfmakers.blogspot.com/2011/05/movimento-personalizado-de-fast-loops_13.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-3172299170586718665?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/3172299170586718665/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/materia-nova-postada.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/3172299170586718665'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/3172299170586718665'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/materia-nova-postada.html' title='Matéria nova: postada'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-4204774999062784474</id><published>2011-05-13T16:41:00.084-03:00</published><updated>2011-05-20T16:58:42.560-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Movimento Personalizado de Fast Loops - Parte 1</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(51, 102, 255);font-size:180%;" &gt;Parte 1: Movimento de Oito Direções&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Introdução:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Nesta aula, vamos falar sobre uma forma especial de se fazer um Movimento Personalizado: utilizando Fast Loops. Apesar de ser uma das últimas aulas do nível intermediário, não significa realmente que seja difícil. Não, não é. Mas as fórmulas usadas (sim, vamos usar fórmulas) são um pouco chatas de se entender, e você precisará captar a essência dela. O que isso significa? Significa que você precisa realmente entender para o quê ela serve, a fim de poder usá-la novamente depois, sem ter de recorrer à anotações.&lt;br /&gt;&lt;br /&gt;Até agora, já fizemos isso com fórmulas simples (&lt;span style="font-style: italic;"&gt;X("Active)+2 etc&lt;/span&gt;). Já trabalhamos bastante expressões no MMF2. Não acho que vocês terão problemas para fazer esse movimento.&lt;br /&gt;&lt;br /&gt;O método foi desenvolvido por &lt;span style="font-style: italic;"&gt;David Newton&lt;/span&gt;, e disponibilizado no site oficial da ClickTeam. Deixo aqui meus sinceros agradecimentos a ele. Agradeço também ao Hazael, que me falou sobre esse tipo movimento.&lt;br /&gt;&lt;br /&gt;Começaremos com um modelo em 8 direções, a fim de entender a base dele. Então, partiremos, na aula seguinte, para a movimentação em plataforma propriamente dita. O que não significa que você não possa utilizá-lo para um jogo de RPG.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Preparando o Terreno:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Durante esta aula, iremos precisar dos seguintes objetos: um Active Object totalmente preenchido por uma única cor (de qualquer tamanho, mas vamos adotar, para essa aula, &lt;span style="font-style: italic;"&gt;32x32&lt;/span&gt;), o qual chamaremos de MC, e atuará como uma &lt;span style="font-style: italic;"&gt;Máscara de Colisão&lt;/span&gt; (ou &lt;span style="font-style: italic;"&gt;Collision Mask&lt;/span&gt;, explicarei daqui a pouco); alguns obstáculos, posicionados aleatoriamente no Frame, para testar as colisões.&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 389px; height: 291px;" src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/terreno.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Frame com alguns obstáculos e um Active Object totalmente preenchido por uma única cor.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Vá nas propriedades do MC (o Active totalmente preenchido com uma única cor), e vá para a aba &lt;span style="font-style: italic;"&gt;Values&lt;/span&gt;. Aqui, iremos nomear os dois primeiros Alterable Values, por questão de organização. Clique duas vezes no botão &lt;span style="font-weight: bold;"&gt;New&lt;/span&gt;, embaixo de &lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Alterable Values&lt;/span&gt;. Dê um duplo clique sobre &lt;span style="font-style: italic;"&gt;Alterable Value A&lt;/span&gt;, e renomeie para &lt;span style="font-style: italic;"&gt;MovX&lt;/span&gt;, depois, dando OK. Faça o mesmo com o &lt;span style="font-style: italic;"&gt;Alterable Value B&lt;/span&gt;, mas, dessa vez, renomeie para &lt;span style="font-style: italic;"&gt;MovY&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/movxmovy.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Variáveis nomeadas.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;A) Máscara de Colisão&lt;/span&gt;:&lt;br /&gt;Ainda há pouco, falei para vocês sobre uma tal Máscara de Colisão, certo? Bem, uma Máscara de Colisão é um objeto (Active, no caso de MMF2) responsável por detectar onde o personagem à ela relativo deve colidir.&lt;br /&gt;&lt;br /&gt;O que isso significa? Significa que não programaremos o movimento do personagem em si, e sim, de um Active totalmente preenchido por uma única cor. Daí, usaremos um outro objeto para as animações do personagem, programaremos as animações e faremos com que sempre fique no mesmo lugar da Máscara, ao mesmo tempo que a deixamos invisível. Ou seja, o personagem controlado será formado por dois objetos: a Máscara de Colisão e as Animações.&lt;br /&gt;&lt;br /&gt;Com isso, concluímos que, quando formos fazer um jogo pra valer, a Máscara de Colisão deve cobrir a área em que o personagem deve colidir.&lt;br /&gt;&lt;img src="http://dl.dropbox.com/u/3919627/Imagens/Tutoriais%20da%20MMFM/collisionmasks.PNG" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Dois exemplos de Máscaras de Colisão. Perceba que no exemplo da direita, a Máscara de Colisão do Zero não o cobre totalmente.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tenha em mente que o tamanho das animações mudam; o da Máscara de Colisão, não. Sendo assim, pode ser que, se você tomar como base a animação principal (personagem parado), pode ser que, em algumas animações, talvez pareça que ele "atravesse" um pouco os obstáculos. E, dependendo da forma com que você posiciona as animações, isso também pode acontecer.&lt;br /&gt;&lt;br /&gt;Por isso, fique ligado no HotSpot. Lembre-se que o posicionamento leva em consideração o HotSpot; ou seja, ao colocar um Active 2 sempre se posicionando na posição 0 em relação ao X, e 0 em relação ao Y, ambos em relação a um Active 1, isso significa que o lugar onde está o HotSpot do Active 2 ficará em cima do lugar onde está o HotSpot do Active 1. Ou seja, se você colocar o Hotspot da Máscara de Colisão na extremidade inferior central, deverá colocar o HotSpot das animações no pé do personagem, sempre. A não ser que você queria que o personagem fique enterrado no chão até o peitoral. Ou flutue, se colocar muito embaixo.&lt;br /&gt;&lt;br /&gt;Particularmente, acho que isso dá um efeito legal no jogo (obviamente, apenas um pouco, não faço com que o personagem fique enterrado até o peitoral como acabei de falar), então, muitas vezes, faço intencionalmente.&lt;br /&gt;&lt;br /&gt;Basicamente, a Máscara de Colisão no Movimento Personalizado de Fast Loops é o que seriam os Detectores de Colisão no Movimento Personalizado Tradicional.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Programando o Movimento:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Chegou a hora! Vamos programá-lo com aceleração mesmo. No ponto onde estamos, isso não será problema. Considerarei que todos aqui tenham uma versão antiga do MMF2. Entretanto, que não chegue a ser arcaica; pelo menos tenha Fast Loops. Apesar de não ter certeza, ouvi dizer que em versões muito antigas, o MMF2 não tinha Fast Loops embutido nele. Acredito que a build 248 do programa sirva.&lt;br /&gt;&lt;br /&gt;O nosso movimento é dividido tanto na movimentação horizonta, quanto na vertical, em duas partes: &lt;span style="font-style: italic;"&gt;Manipulação de Variáveis&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;Loops de Movimentação&lt;/span&gt;. Acho que isso é tudo. Agora, vamos aos eventos!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;A) Movimento Horizontal&lt;/span&gt;:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Aa) Manipulação de Variáveis&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;Como o movimento é horizontal, iremos definir valores para o eixo X. O eixo X será definido através da variável MovX. Logo, aqui, manipularemos essa variável. Façamos, então, a aceleração:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Repeat while ("Player 1") Moved right&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat while ("Player 1") Moved left&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;MovX of ("MC") &amp;lt; &lt;span style="font-style: italic;"&gt;3&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Set MovX to &lt;span style="font-style: italic;"&gt;MovX("MC")+0.25&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Repeat while ("Player 1") Moved left&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat while ("Player 1") Moved right&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt; MovX of ("MC") &amp;gt; &lt;span style="font-style: italic;"&gt;-3&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;Set MovX to &lt;span style="font-style: italic;"&gt;MovX("MC")-0.25&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Aceleração. No ponto onde estamos, você já deve saber interpretar tal evento corretamente. Se não &lt;span style="font-style: italic;"&gt;souber&lt;/span&gt;, é bom dar uma lida de novo nas aulas passadas. Mas vou dar uma colher de chá, e explicar cada evento.&lt;br /&gt;&lt;br /&gt;No primeiro, se o jogador 1 estiver pressionando para a direita, não estiver pressionando para a esquerda (a fim de evitar conflitos ao apertar as duas teclas simultâneamente) e a variável for menor que &lt;span style="font-style: italic;"&gt;3&lt;/span&gt;, adicionaremos &lt;span style="font-style: italic;"&gt;0.25&lt;/span&gt; à variável, fazendo com que ela vá atingindo o valor da velocidade do nosso movimento gradualmente. O valor &lt;span style="font-style: italic;"&gt;0.25&lt;/span&gt; é a aceleração (variação de velocidade, ou seja, quanto a velocidade irá variar no decorrer do tempo). Isso significa que, quanto menor o valor, mais o móvel vai demorar para atingir a velocidade &lt;span style="font-style: italic;"&gt;3&lt;/span&gt;. Você pode retardar essa meta também adicionando uma condição &lt;span style="font-style: italic;"&gt;Every&lt;/span&gt;, e especificando uma certa quantidade de centésimos de segundo. Nesse caso, você estará apenas fazendo com que a velocidade varie de forma mais lenta. Mas o resultado será o mesmo.&lt;br /&gt;&lt;br /&gt;No segundo evento, a mesma coisa, só que para a esquerda. Perceba que, aqui, subtraíremos &lt;span style="font-style: italic;"&gt;0.25&lt;/span&gt; da variável se o jogador estiver pressionando para a esquerda, e o valor dela for MAIOR que &lt;span style="font-style: italic;"&gt;-3&lt;/span&gt;. Eixo X negativo = movimento para a esquerda, como já vimos inúmeras vezes.&lt;br /&gt;&lt;br /&gt;Aliás, lembra que eu disse que iria tomar medidas para que os com a versão mais antiga de MMF2 não fossem prejudicados? Pois é. Vocês devem ter notado (se não notaram, ou são muito desatentos, ou realmente não interpretaram a formula corretamente, e acredito que, nesse segundo caso, não estejam preparados para ver esse movimento) que eu adicionei e subtraí os valores da variável com a ação &lt;span style="font-style: italic;"&gt;Set&lt;/span&gt;. Mais uma vez, me disseram que em versões mais antigas do MMF2, não existiam as funções &lt;span style="font-style: italic;"&gt;Add&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;Subtract&lt;/span&gt;. Mas para quem tem o MMF2 com essas funções, podem usar, não há diferença alguma.&lt;br /&gt;&lt;br /&gt;Agora, vamos para a desaceleração:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat while ("Jogador 1") Moved right&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat while ("Jogador 1") Moved left&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;MovX of ("MC") &amp;gt; &lt;span style="font-style: italic;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Set MovX to &lt;span style="font-style: italic;"&gt;MovX("MC")-0.25&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat while ("Jogador 1") Moved right&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat while ("Jogador 1") Moved left&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;MovX of ("MC") &amp;lt; &lt;span style="font-style: italic;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;Set MovX to &lt;span style="font-style: italic;"&gt;MovX("MC")+0.25&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Existe outra forma, mais rápida, de se fazer desaceleração, mas por ser mais complexa (usa uma fórmula que não é difícil, mas é chata pra entender) e obrigar o programador a utilizar o mesmo valor para a desaceleração dos dois lados (o que é o normal, mas talvez, por circunstâncias especiais, o jogo precise que o personagem desacelere com velocidades diferentes para cada lado), eu preferi utilizar a forma padrão. Quem quiser dar uma olhada, adicionei dentro de um grupo desativado no exemplo. A ideia é bem simples, vocês vão entender só de olhar.&lt;br /&gt;&lt;br /&gt;Mas voltando ao assunto... no primeiro caso, se o jogador não estiver pressionando para a direita, nem para a esquerda, e a variável estiver maior que 0 (ou seja, andando para a direita), iremos diminuir 0.25 da variável gradualmente, fazendo com que ela volte a ser 0, e o móvel fique em repouso.&lt;br /&gt;&lt;br /&gt;No segundo caso, é o oposto: se o jogador não estiver pressionando para a direita, nem para a esquerda, e a variável estiver MENOR que 0 (ou seja, andando para a esquerda), iremos ADICIONAR 0.25 da variável gradualmente, fazendo com que ela volte a ser 0, e, então, o móvel fique em repouso.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Ab) Loops de Movimentação:&lt;/span&gt;&lt;br /&gt;Terminamos de manipular as variáveis do eixo X. Agora, é que a coisa começa a esquentar. Faremos o personagem movimentar-se através de loops, de acordo com o valor da variável. Vamos fazer os eventos, e eu explico.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;MovX of ("MC") &amp;lt;&amp;gt; &lt;span style="font-style: italic;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Start loop "MovX" &lt;span style="font-style: italic;"&gt;Abs(MovX("MC"))&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Aqui, iniciaremos um loop, chamado &lt;span style="font-style: italic;"&gt;MovX&lt;/span&gt; (o nome do loop deve ficar entre aspas no MMF2), e ele será repetido na mesma quantidade do módulo da variável. A função &lt;span style="font-style: italic;"&gt;Abs()&lt;/span&gt; faz com que o programa utilize o módulo do valor expresso entre os parênteses (no caso, a variável). Isso porque um número de repetições não pode ser negativo. xD&lt;br /&gt;&lt;br /&gt;Por que iniciamos um loop? Você entenderá agora. Faça o seguinte evento:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;On loop "MovX"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(MC) Set X position to &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt;X( "MC" )+(MovX( "MC" )/Abs(MovX( "MC" )))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ou seja, enquanto o loop estiver sendo executado, a posição X da Máscara de Colisão será mudada para o valor expresso pela fórmula. Antes de eu explicar o que ela faz, tentem interpretá-la sozinhos. Então, prossiga a leitura. Essa fórmula faz com que ele adicione +1 ou -1 à posição X atual da Máscara de Colisão, dependendo do valor atual da variável. Veja bem, ele divide o valor da variável pelo seu módulo. Assim obtemos 1, de acordo com o sinal da variável.&lt;br /&gt;Exemplos:&lt;br /&gt;• Se a variável for 2: (+2)/(+2) = +1.&lt;br /&gt;• Se a variável for -2: (-2)/(+2) = -1.&lt;br /&gt;Dessa forma, ele descobre se a variável deve fazer o personagem andar para a direita ou para a esquerda, e o movimenta de acordo com ela.&lt;br /&gt;&lt;br /&gt;O movimento em si já está pronto. Você pode testar seu projeto, e ver que a Máscara de Colisão já se move na horizontal. Mas ela ainda não colide... vamos, então, para o evento das colisões:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;On loop "MovX"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;("MC") is overlapping a backdrop&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(MC) Set X position to &lt;span style="font-style: italic;"&gt;X( "MC" )+((MovX( "MC" )/Abs(MovX( "MC" )))*(-1))&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Set MovX to &lt;span style="font-style: italic;"&gt;0&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Stop loop &lt;span style="font-style: italic;"&gt;"MovX"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Interpretemos o evento, então. Se enquanto o loop &lt;span style="font-style: italic;"&gt;MovX&lt;/span&gt; estiver sendo executado, a Máscara de Colisão estiver sobrepondo um obstáculo, a posição dela será definida para o valor expresso pela fórmula, a variável será definida para 0, e o loop será interrompido. Para os mais atentos, a fórmula é extremamente parecida com a do evento anterior. Ela expressa nada mais, nada menos, do que o oposto da divisão entre o valor da variável e seu módulo. Usem a cabeça... se essa divisão expressa o valor que deve ser adicionado à posição X para que o corpo se mova no sentido correto, o que seu oposto expressa...? Isso mesmo, o sentido oposto! Ou seja, enquanto o móvel estiver tentando se mover contra um obstáculo, ele irá anular o evento anterior, entrando em repouso.&lt;br /&gt;&lt;br /&gt;Por exemplo, considere que a variável fosse +3. Sabemos que conforme o loop vai se repetindo (no caso, 3 vezes, pois o módulo de +3 é 3), vai sendo adicionado +1 à posição do móvel (pois programamos para que a posição fosse adicionada de acordo com o sinal da variável, e, nesse caso, a variável é positiva). Enquanto este móvel estiver colidindo com um obstáculo, ele irá adicionar à posição o oposto do que programamos anteriormente. Ou seja, -1. Agora, calculem: (+1)+(-1) =&amp;gt; 1-1 = 0. O corpo entra em repouso.&lt;br /&gt;&lt;br /&gt;Estas três ações juntas são responsáveis pela colisão. A principal é a de mudar a posição para o valor expresso pela fórmula, mas definir a variável para 0 e interromper o loop, evita que o personagem "trave" ao colidir.&lt;br /&gt;&lt;br /&gt;Teste seu projeto agora. Se você fez tudo certo, ele deve estar colidindo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;B) Movimento Vertical:&lt;/span&gt;&lt;br /&gt;É a mesma lógica dos movimentos horizontais. Mas lembre-se que, aqui, a trajetória é orientada para baixo, diferentemente de um Plano Cartesiano matemático normal. Ou seja, o eixo Y é invertido: valores positivos fazem o corpo ir para baixo, e, valores negativos, ir para cima.&lt;br /&gt;&lt;br /&gt;Trabalharemos, agora, com o eixo Y; consequentemente, com a variável &lt;span style="font-style: italic;"&gt;MovY&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Ba) Manipulação de Variáveis:&lt;/span&gt;&lt;br /&gt;Vamos fazer a aceleração:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Repeat while ("Jogador 1") Moved down&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat while ("Jogador 1") Moved top&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;MovY of ("MC") &amp;lt; &lt;span style="font-style: italic;"&gt;3&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Set MovY to &lt;span style="font-style: italic;"&gt;MovY("MC")+0.25&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Repeat while ("Jogador 1") Moved top&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat while ("Jogador 1") Moved down&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt; MovY of ("MC") &amp;gt; &lt;span style="font-style: italic;"&gt;-3&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Set MovY to &lt;span style="font-style: italic;"&gt;MovY("MC")-0.25&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Não vou me demorar muito aqui. Mas perceba que no primeiro, para descer, verificamos se a variável é menor que 3, e somamos, pois como eu já disse, a trajetória é orientada para baixo. E no segundo, verificamos se a variável é maior que -3, e diminuímos.&lt;br /&gt;&lt;br /&gt;Desaceleração:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat while ("Jogador 1") Moved top&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat while ("Jogador 1") Moved down&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;("MC") MovY &amp;gt; &lt;span style="font-style: italic;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Set MovY to &lt;span style="font-style: italic;"&gt;MovY("MC")-0.25&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat while ("Jogador 1") Moved top&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat while ("Jogador 1") Moved down&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt; ("MC") MovY &amp;lt; &lt;span style="font-style: italic;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;Set MovY to &lt;span style="font-style: italic;"&gt;MovY("MC")+0.25&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Na desaceleração, fazemos com que a variável volte gradualmente a 0, de acordo com o sentido da trajetória (para baixo se a variável for positiva e para cima se for negativa), caso o jogador não esteja pressionando nem para cima nem para baixo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Bb) Loops de Movimentação:&lt;/span&gt;&lt;br /&gt;Vamos fazer os loops:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;MovY of ("MC") &amp;lt;&amp;gt; &lt;span style="font-style: italic;"&gt;0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Start loop "MovY" &lt;span style="font-style: italic;"&gt;Abs(MovY("MC"))&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Se a variável for diferente de 0, o loop se iniciará, repetindo-se na mesma quantidade do módulo da variável.&lt;br /&gt;&lt;br /&gt;Agora, movimentação:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;On loop "MovY"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Set Y position to &lt;span style="font-style: italic;"&gt;Y( "MC" )+(MovY( "MC" )/Abs(MovY( "MC" )))&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Enquanto o loop estiver sendo executado, ele irá mover a Máscara de Colisão de acordo com o sentido proposto pela variável MovY.&lt;br /&gt;&lt;br /&gt;Por fim, colisões do Movimento Vertical:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;On loop "MovY"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;("MC") is overlapping a backdrop&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Set Y position to &lt;span style="font-style: italic;"&gt;Y( "MC" )+((MovY( "MC" )/Abs(MovY( "MC" )))*(-1))&lt;br /&gt;&lt;/span&gt;Set MovY to&lt;span style="font-style: italic;"&gt; 0&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;&lt;span&gt;Stop loop &lt;span style="font-style: italic;"&gt;"MovY"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;--//--&lt;br /&gt;&lt;br /&gt;E... pronto! Fizemos um Movimento Personalizado de Fast Loops, de oito direções! O movimento é perfeito; pelo menos, eu não encontrei bug algum. Com as minhas explicações colossais, e até desnecessárias, o tutorial ficou bem extenso. Mas, na verdade, esse tipo de movimento é mais curto que o tradicional. E, depois que você pega o jeito, fica bem fácil; e bem mais rápido. Na próxima aula, veremos o movimento de plataforma, que é ainda mais rápido que este.&lt;br /&gt;&lt;br /&gt;Caso tenha alguma dúvida, ou não conseguiu fazer algo corretamente, dê uma olhada &lt;a href="http://dl.dropbox.com/u/3919627/Mov.%20Fast%20Loops%20-%208Dir.mfa" target="_blank"&gt;&lt;span style="font-weight: bold;"&gt;neste&lt;/span&gt;&lt;/a&gt; exemplo.&lt;br /&gt;&lt;br /&gt;Bom aprendizado. ;)&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-4204774999062784474?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4204774999062784474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4204774999062784474'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/movimento-personalizado-de-fast-loops_13.html' title='Movimento Personalizado de Fast Loops - Parte 1'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-914268002561156041</id><published>2011-05-13T16:33:00.002-03:00</published><updated>2011-05-13T16:38:16.443-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Eaí</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Eaí poucos leitores remanescentes da MMFM, tudo na paz?&lt;br /&gt;&lt;br /&gt;Passando aqui pra dizer que irei dar uma revisada nos tutos de MMF2. Então, irei escrever um pouco acerca da parte intermediária. Quero iniciar as matérias sobre Movimento Customizado de Fast Loops. Se der, peço pro Matheus fazer o do tradicional; não o domino muito bem, sempre tem um bug aqui ou ali no meu tradicional (posicionamento de detectores imperfeitos, programação ruim, não sei dizer).&lt;br /&gt;&lt;br /&gt;Mas relaxem: o Mov. de Fast Loops, apesar de mais "complexo" (sim, ele começa a usar umas fórmulas chatinhas) é mais rápido, mais fácil (se você o dominar) e mais funcional que o tradicional.&lt;br /&gt;&lt;br /&gt;Enfim, é isso aí. Não se preocupem, &lt;span style="font-style: italic;"&gt;dessa vez&lt;/span&gt; irei cumprir minha palavra ;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-914268002561156041?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/914268002561156041/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/eai.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/914268002561156041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/914268002561156041'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/05/eai.html' title='Eaí'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5731002736787297136</id><published>2011-04-21T15:44:00.001-03:00</published><updated>2011-05-13T20:15:13.047-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ColunaGabriel'/><title type='text'>Fenômeno de Chuva</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 12px; line-height: 18px;"&gt;Gente, se querem saber como se faz chover no MMF2, leia com atenção.&lt;br /&gt;Então vamos lá:&lt;br /&gt;&lt;br /&gt;1)Crie um Active Object com o desenho de um pingo de&amp;nbsp;&lt;b class="coloradmin" style="color: darkorange;"&gt;chuva&lt;/b&gt;&amp;nbsp;qualquer e um gramado ou um chão.&lt;br /&gt;2)Para fazer chover crie um objeto de pingo e a parte Vertical precisamos de programar a posição Horizontal, para mudar para vertical presisamos de&amp;nbsp;&lt;strong&gt;Random(640)&lt;/strong&gt;&amp;nbsp;e do&amp;nbsp;&lt;strong&gt;"Frame Width"&lt;/strong&gt;&amp;nbsp;que é como o "Frame Height" que retorna para posição vertical.&lt;br /&gt;Crie um objeto:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 12px; line-height: 18px;"&gt;&lt;img src="http://i41.tinypic.com/102k093.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i44.tinypic.com/rssorn.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Depois de criado faça o evento do "Frame Width":&lt;br /&gt;&lt;img src="http://i40.tinypic.com/2chxn2t.png" /&gt;&lt;br /&gt;Copíe o código:&lt;/span&gt;&lt;br /&gt;&lt;table align="center" border="0" cellpadding="0" cellspacing="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="font-family: Verdana, Arial, Helvetica, sans-serif;"&gt;&lt;span class="genmed" style="color: black; font-size: 11px;"&gt;&lt;b&gt;Código:&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="code" style="background-color: #e5e6fc; border-bottom-color: rgb(209, 215, 220); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(209, 215, 220); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(209, 215, 220); border-right-style: solid; border-right-width: 1px; border-style: initial; border-top-color: rgb(209, 215, 220); border-top-style: solid; border-top-width: 1px; border-width: initial; color: #06c206; font-family: Courier, CourierNew, sans-serif; font-size: 11px;"&gt;&lt;div class="cont_code" collapsed="true" curpos="0" increment="10" maxpos="0" pageincrement="480" style="max-height: 200px; overflow-x: auto; overflow-y: auto;"&gt;Random(Frame Width+(Frame Width/2))&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="postbody" style="font-size: 12px; line-height: 18px;"&gt;&lt;br /&gt;&lt;br /&gt;Depois disto faça este outro evento de movimento:&lt;br /&gt;&lt;img src="http://i41.tinypic.com/2s1kxld.jpg" /&gt;&lt;br /&gt;&lt;br /&gt;Para colidir e desaparecer no Background faça os eventos de colisão no Backdrop e bote&lt;strong&gt;"Destroy".&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="color: blue;"&gt;Ver no Tópico de Funções de Backdrop&lt;/span&gt;&lt;/strong&gt;.&lt;br /&gt;Se si confundirem com este tópico ou de como fazer mande um email pra mim:&lt;a href="mailto:sonicbieel@gmail.com" style="color: black;"&gt;sonicbieel@gmail.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pronto gurisada e gentalha.&lt;br /&gt;Ta pronto.&lt;br /&gt;Se não souberem disso ou se não deu certo mande um email viu.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5731002736787297136?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/5731002736787297136/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/04/fenomeno-de-chuva.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5731002736787297136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5731002736787297136'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/04/fenomeno-de-chuva.html' title='Fenômeno de Chuva'/><author><name>Gabriel</name><uri>http://www.blogger.com/profile/05189074358461496851</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-syooXSNPh0I/TbB7thZ5zEI/AAAAAAAAAII/p19jhzpcpfs/s220/images.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i41.tinypic.com/102k093_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-8965926318680877123</id><published>2011-04-21T15:36:00.000-03:00</published><updated>2011-04-21T15:36:43.900-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Gabriel</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;Me apresento aqui. Eu sou do&amp;nbsp;fórum. Mas não posso cuidar daqui como colunista muito tempo. Tenho escola e um curso. Tem bastante trabalho pra fazer e não tenho muito tempo, mas as vezes arrumo um tempinho. Não significa que vou sair do&amp;nbsp;Blog, só não tenho tempo pra postar. Também não tenho muita matéria pra postar. Fora disso, vou fazer o máximo aqui! Espero que um tempo eu tenha ajudado muito. Até makers!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-8965926318680877123?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/8965926318680877123/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/04/gabriel.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8965926318680877123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8965926318680877123'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/04/gabriel.html' title='Gabriel'/><author><name>Gabriel</name><uri>http://www.blogger.com/profile/05189074358461496851</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/-syooXSNPh0I/TbB7thZ5zEI/AAAAAAAAAII/p19jhzpcpfs/s220/images.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-4390778689537685092</id><published>2011-04-03T11:03:00.001-03:00</published><updated>2011-04-03T11:03:45.065-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Extensões'/><title type='text'>Extensões.</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Super Pacote de Extensões do MMF2.&lt;br /&gt;&lt;br /&gt;Acredito que tenha 368 extensões.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.megaupload.com/?d=A342C8Y8"&gt;Download&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Antes que eu esqueça, versão 250 +&lt;br /&gt;&lt;br /&gt;Fui.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-4390778689537685092?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/4390778689537685092/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/04/extensoes.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4390778689537685092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4390778689537685092'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/04/extensoes.html' title='Extensões.'/><author><name>DragonSky</name><uri>http://www.blogger.com/profile/12177791602621724155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-1190664724164006846</id><published>2011-03-08T19:22:00.001-03:00</published><updated>2011-03-08T19:24:35.154-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sprites'/><title type='text'>Sprite - Todas as Fontes do Sonic.</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: left;"&gt;Olá como estão vocês?&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Bem eu sei que não apareço muito, mas enfim tem a lista de fontes bacanas usadas em todos os jogos do Sonic. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Acho que vale a pena conferir :D&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://www.spriters-resource.com/genesis/snk/fontpack.png"&gt;Acesse o Link :D&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Fui.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;PS: Fonte embutida no Link. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-1190664724164006846?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/1190664724164006846/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/03/sprite-todas-as-fontes-do-sonic.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1190664724164006846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1190664724164006846'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/03/sprite-todas-as-fontes-do-sonic.html' title='Sprite - Todas as Fontes do Sonic.'/><author><name>DragonSky</name><uri>http://www.blogger.com/profile/12177791602621724155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-1152911607365482135</id><published>2011-01-20T01:04:00.002-02:00</published><updated>2011-01-20T01:07:28.852-02:00</updated><title type='text'>Desculpem aí!</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Pessoal, desculpem aí por não ter postado nada ultimamente!&lt;br /&gt;Nem mesmo eu estou pegando em MMF esses tempos... Dizer que tá meio parado é pouco =p&lt;br /&gt;Bom, essa semana, ainda sai outra matéria. Espero. Enfim, fiquem ligados ;D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-1152911607365482135?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/1152911607365482135/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2011/01/desculpem-ai.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1152911607365482135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1152911607365482135'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2011/01/desculpem-ai.html' title='Desculpem aí!'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5176154158866288732</id><published>2010-12-27T19:00:00.000-02:00</published><updated>2010-12-27T19:01:00.915-02:00</updated><title type='text'>Behaviors, Qualifiers e Global Events</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;Acabei de fazer uma nova matéria! Podem conferir na seção de tutoriais de MMF2 =D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5176154158866288732?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/5176154158866288732/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/12/behaviors-qualifiers-e-global-events_27.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5176154158866288732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5176154158866288732'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/12/behaviors-qualifiers-e-global-events_27.html' title='Behaviors, Qualifiers e Global Events'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5694204665980998581</id><published>2010-12-27T17:49:00.023-02:00</published><updated>2010-12-27T18:58:36.470-02:00</updated><title type='text'>Behaviors, Qualifiers e Global Events</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Introdução:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Hoje, irei ensinar sobre três funções, não digo úteis, mas que agilizam bastante um trabalho: Behaviors, Qualifiers e Global Events.&lt;br /&gt;&lt;br /&gt;Behaviors são eventos internos de um Active Object (não apenas Active Objects, mas eles principalmente). Isso aí, os eventos ficam dentro dele! Se, por exemplo, você deletá-lo, os eventos somem juntos... Mas, afinal, em que isso vai ajudar? Vamos supor que você programe um Movimento Personalizado dentro dele... daí, é só ficar copiando ele e os colisores (ou Collision Mask) para o próximo Frame. CLAROOO, ainda estamos começando a usar MMF2, e ainda não sabemos fazer um Movimento Personalizado! Entretanto, mas pra frente, isso vai te ajudar pra caramba! A única desvantagem desse recurso, ao meu ver, é que não podemos ativar ou desativar Grupos de Eventos em um Behavior (coloco no singular porque um mesmo Active Object pode ter vários Behaviors, cada um com seus eventos... isso serve para organização mesmo). Mas nada é perfeito...&lt;br /&gt;&lt;br /&gt;Qualifiers são grupos de objetos. Servem para que você não precise repetir um mesmo evento para mil objetos diferentes. Por exemplo... você faz um evento para matar o inimigo pulando na cabeça dele. Em vez de fazer eventos para cada inimigo, você simplesmente põe os inimigos em determinado Qualifier e faz os eventos com esse Qualifier. O único problema dos Qualifiers - e que nem é tão grave - é que eles já existem, e são limitados. O que significa que você não pode criar mil Qualifiers, nem colocar o nome que quiser neles. Você vai ter de se contentar com os que já tem... e colocar os "inimigos" num grupo com um nome nada a ver ("Doors", por exemplo, que singifica "Portas").&lt;br /&gt;&lt;br /&gt;Global Events, para finalizar, são eventos que valem para &lt;span style="font-weight: bold;"&gt;TODOS&lt;/span&gt; os Frames, sem exceção. Serve para colocar um evento de, por exemplo, ao apertar ESC, sair do jogo. Preciso explicar mais alguma coisa?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Behaviors:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Para acessar os Behaviors, clique no objeto para ver suas propriedades. Então, vá na aba &lt;span style="font-weight: bold;"&gt;Events&lt;/span&gt; (aquela, com o mesmo símbolo do Event Editor). Você poderá gerenciar seus Behaviors abaixo da palavra azul de mesmo nome na janela das propriedades do objeto.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;•&lt;/span&gt; Dando um duplo-clique sobre o nome do Behavior, você pode renomeá-lo.&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;•&lt;/span&gt; Clicando nas reticências de um Behavior X, irá aparecer um botão chamado &lt;span style="font-weight: bold;"&gt;Edit&lt;/span&gt;. Clicando nesse botão, você poderá programar os eventos daquele Behavior.&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;•&lt;/span&gt; Clicando no botão &lt;span style="font-weight: bold;"&gt;New&lt;/span&gt;, você pode criar um novo Behavior.&lt;br /&gt;&lt;br /&gt;Não se tem muito o que explicar sobre essa função. Sabendo essas 4 coisas, você já sabe tudo sobre ela.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i55.tinypic.com/2n8zmz5.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Qualifiers:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Você gerencia os Qualifiers de um objeto numa determinada janela. Para acessá-la, vá novamente na aba &lt;span style="font-weight: bold;"&gt;Events&lt;/span&gt;, nas propriedades do objeto, e clique no espaço em branco ao lado da palavra &lt;span style="font-weight: bold;"&gt;Qualifier(s)&lt;/span&gt;. Um botão &lt;span style="font-weight: bold;"&gt;Edit&lt;/span&gt;, então, irá aparecer. Clique nele e a janela se abrirá.&lt;br /&gt;&lt;img src="http://i52.tinypic.com/wqvhhj.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;•&lt;/span&gt; No botão &lt;span style="font-weight: bold;"&gt;Add&lt;/span&gt;, você adiciona um Qualifier ao objeto. Ou seja, você o inclui em um grupo.&lt;br /&gt;&lt;img src="http://i52.tinypic.com/23m3gpx.png" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(Clicando em OK, você adiciona o Qualifier ao objeto. Clicando em Cancel, você cancela a operação)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;•&lt;/span&gt; No botão &lt;span style="font-weight: bold;"&gt;Delete&lt;/span&gt;, você deleta o Qualifier selecionado. Ou seja, você retira o objeto daquele grupo.&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;•&lt;/span&gt; Em &lt;span style="font-weight: bold;"&gt;OK&lt;/span&gt;, você salva as alterações feitas.&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;•&lt;/span&gt; Em &lt;span style="font-weight: bold;"&gt;Cancel&lt;/span&gt;, você cancela as alterações feitas.&lt;br /&gt;&lt;br /&gt;Note que, quando você adiciona um Qualifier a um objeto, o espaço branco do lado da palavra &lt;span style="font-weight: bold;"&gt;Qualifier(s)&lt;/span&gt; nas propriedades deste objeto, deixa de ser branco, e passa a ter o símbolo dos grupos os quais o objeto participa.&lt;br /&gt;&lt;br /&gt;Quando você adiciona um Qualifier a um objeto, esse Qualifier passa a aparecer no Event Editor. Daí, é só programar com ele, em vez de programar mil vezes a mesma coisa para objetos diferentes!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Global Events:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Essa é, com certeza, a parte mais besta da matéria. Como já expliquei, Global Events são eventos que valem para &lt;span style="font-weight: bold;"&gt;TODOS&lt;/span&gt; os frames. Para programar eventos nos Global Events, simplesmente vá nas propriedades da aplicação, entre, novamente, na aba &lt;span style="font-weight: bold;"&gt;Events&lt;/span&gt;, e clique no botão &lt;span style="font-weight: bold;"&gt;Edit&lt;/span&gt; do lado de &lt;span style="font-style: italic;"&gt;Global Events&lt;/span&gt;. Pronto, você está na tela de programação dos Global Events!&lt;br /&gt;&lt;img src="http://i54.tinypic.com/9k9n2c.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Finalizando:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Bom, como vocês podem ver, são três funções super simples, que vão poupar muita dor de cabeça!&lt;br /&gt;Isso é tudo, pessoal! (Pernalonga)&lt;br /&gt;&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5694204665980998581?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5694204665980998581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5694204665980998581'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/12/behaviors-qualifiers-e-global-events.html' title='Behaviors, Qualifiers e Global Events'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5881724153461337858</id><published>2010-12-04T21:43:00.001-02:00</published><updated>2010-12-04T21:44:25.670-02:00</updated><title type='text'>Béqui</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Olá meus caros makers,&lt;br /&gt;Estou de volta, e de férias! Na verdade, já estou com o PC há um tempo. Hoje tive um sonho bem chato... As aulas tinham voltado, pouco depois de eu entrar de férias o.O&lt;br /&gt;&lt;br /&gt;Bom, logo logo estarei escrevendo novos tutos. Só preciso relembrar como mecher no MMF ._.&lt;br /&gt;&lt;br /&gt;Flw!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5881724153461337858?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/5881724153461337858/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/12/bequi.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5881724153461337858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5881724153461337858'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/12/bequi.html' title='Béqui'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5782546560071645154</id><published>2010-11-21T16:40:00.001-02:00</published><updated>2010-11-21T16:41:09.656-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sprites'/><title type='text'>Avoy - Quero dizer Sprites...</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Olá, a quanto tempo que não venho por aqui também... Vou tentar aparecer mais certo xD&lt;br /&gt;&lt;br /&gt;Trago Sprites de&amp;nbsp;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; font-family: Verdana;"&gt;&lt;a href="http://www.spriters-resource.com/genesis/woi/" style="color: black;"&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;World of Illusion starring Mickey Mouse and Donald Duck&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&lt;u&gt;&amp;nbsp;- Donald Duck,&lt;/u&gt; espero que gostem xD&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; font-family: Verdana;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; font-family: Verdana;"&gt;&lt;a href="http://www.spriters-resource.com/genesis/woi/sheet/22981"&gt;http://www.spriters-resource.com/genesis/woi/sheet/22981&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Créditos a&amp;nbsp;&lt;a href="http://www.spriters-resource.com/"&gt;http://www.spriters-resource.com/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5782546560071645154?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/5782546560071645154/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/11/avoy-quero-dizer-sprites.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5782546560071645154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5782546560071645154'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/11/avoy-quero-dizer-sprites.html' title='Avoy - Quero dizer Sprites...'/><author><name>DragonSky</name><uri>http://www.blogger.com/profile/12177791602621724155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5175521483669597157</id><published>2010-11-17T15:58:00.002-02:00</published><updated>2010-11-17T16:02:21.375-02:00</updated><title type='text'>Sinal de Vida</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Eaí makers o/&lt;br /&gt;Estou acessando o PC por meio da LAN, e vim dar uma notícia que, ao meu ver, é boa... as férias estão chegando eu meu pai já mandou o PC pro conserto. Agora, ele só vai me devolver o PC depois da última prova, de Geografia e Química (dia 23 de novembro). Não pretendo fazer um big update ou algo do tipo, mas pretendo terminar o nível básico, e, se sobrar tempo, iniciar o intermediário.&lt;br /&gt;&lt;br /&gt;Mas aviso logo que não vou me dedicar 100% ao blog. Tenho outras coisas pra fazer; não tem como ficar 24H no PC. Pelo contrário, não pretendo usar muito.&lt;br /&gt;&lt;br /&gt;É isso.&lt;br /&gt;Flw ae o/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5175521483669597157?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/5175521483669597157/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/11/sinal-de-vida.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5175521483669597157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5175521483669597157'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/11/sinal-de-vida.html' title='Sinal de Vida'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-8500739719914548262</id><published>2010-10-08T23:56:00.000-03:00</published><updated>2010-10-08T23:57:39.226-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Desculpas</title><content type='html'>Olá. Bom, gostaria de pedir desculpas pela minha ausência no blog; é que meu computador deu problema, e meu pai acha que sou um vagabundo, então disse que só vai mandar pro conserto nas férias (pior que nem sou, tiro 7,5; 8,0; vez ou outra um 6, mas, mais frequentemente, 8 mesmo).&lt;br /&gt;&lt;br /&gt;Então, não vou postar nesse treco durante um tempo.&lt;br /&gt;É isso.&lt;br /&gt;Tchau.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-8500739719914548262?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/8500739719914548262/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/10/desculpas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8500739719914548262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8500739719914548262'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/10/desculpas.html' title='Desculpas'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-6251613798052677318</id><published>2010-08-27T22:45:00.002-03:00</published><updated>2010-08-27T22:46:31.141-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Nova matéria!</title><content type='html'>Então, terminei outra matéria o/&lt;br /&gt;&lt;br /&gt;Mas acabei adicionando outra no planejamento t-t&lt;br /&gt;&lt;br /&gt;É isso! Amanhã e depois de amanhã, ashoq trago mais matérias. Pra compensar as três semanas sem matéria hehe.&lt;br /&gt;&lt;br /&gt;Falow o/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-6251613798052677318?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/6251613798052677318/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/08/nova-materia.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6251613798052677318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6251613798052677318'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/08/nova-materia.html' title='Nova matéria!'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-7015374932264338797</id><published>2010-08-27T22:06:00.007-03:00</published><updated>2010-08-27T22:44:21.695-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Alterable Strings e Global Strings</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Introdução&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Alterable Strings&lt;/span&gt; são uma espécie de variáveis internas de um Active Object que armazenam textos, e não valores. O uso é bem parecido com o dos Alterable Values, só tendo essa diferença. Eu posso, por exemplo, criar uma placa, e, nela, mandar exibir o texto de uma de suas Alterable String. Então, dependendo do que eu fizesse, o texto da placa (ou seja, da Alterable String) mudaria: se o número de moedas for 0, a placa exibiria o texto &lt;span style="font-style: italic;"&gt;Noob&lt;/span&gt;. Já se o número de moedas fosse maior que 0, a placa exibir o texto &lt;span style="font-style: italic;"&gt;Não-Noob&lt;/span&gt;. Diferentemente dos Alterable Values que 26 são nomeados, apenas 10 Alterable Strings são nomeadas. As outras variáveis de texto são representadas com números, da mesma forma que os Alterable Values.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Global Strings&lt;/span&gt; estão para Alterable Strings assim como Global Values estão para Alterable Values. Global Strings nada mais são do que variáveis de texto globais, que valem para a aplicação inteira. Quanto à nomenclatura, é a mesma coisa dos Alterable Strings, exceto pelo fato de que 26 são nomeadas, e não apenas 10. Fácil, não é?&lt;br /&gt;&lt;br /&gt;Bem, na verdade, eu não consigo imaginar um uso realmente útil para esses dois recursos. Mas como eles existem, irei explicá-los.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Alterable Strings&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Então, como já expliquei, Alterable Strings são variáveis de texto. Agora, vamos aprender a utilizar as condições e eventos desse recurso.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Condições:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Para ver as condições relacionadas à esse recurso, dê um duplo clique sobre o Active Object que contém as variáveis de texto e vá no menu Alterable Values.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Compare to one of the alterable strings&lt;/span&gt; - Essa condição compara o valor de uma variável de texto. Como aqui não são valores, mas sim textos, a coisa muda um pouco. Em &lt;span style="font-style: italic;"&gt;Choose Value&lt;/span&gt;, você ainda escolhe a variável a ser comparada. Já em &lt;span style="font-style: italic;"&gt;Choose comparison method&lt;/span&gt;, a coisa muda um pouco. Aqui, &lt;span style="font-style: italic;"&gt;Equal&lt;/span&gt; (Igual) significa &lt;span style="font-style: italic;"&gt;se o texto da variável for igual à expressão que será comparada a ela&lt;/span&gt;. Exemplo: Se o texto da Alterable String A for igual a qualquercoisa... puff, acontece algo. &lt;span style="font-style: italic;"&gt;Different&lt;/span&gt; (Diferente), é o contrário: significa &lt;span style="font-style: italic;"&gt;se o texto da variável for diferente da expressão que será comparada a ela&lt;/span&gt;. Ou seja... Se o texto da Alterable String A não for qualquercoisa, for outro (como outracoisa ou qualqueroutracoisa, por exemplo), algo irá acontecer. Até aí, nenhum mistério né? Mas OK. Agora que as coisas começam a mudar. O &lt;span style="font-style: italic;"&gt;Lower or equal&lt;/span&gt; (Menor ou igual) já se refere ao número de caracteres da expressão que será comparada, no caso, se o número de caracteres for menor. Por exemplo: se o número de caracteres do texto da Alterable String A for menor ou igual ao número de caracteres da expressão... algo vai acontecer. &lt;span style="font-style: italic;"&gt;Lower&lt;/span&gt; (Menor), quase a mesma coisa, só que, nesse caso, igual não entra, só se o número de caracteres da variável de texto for menor que o da expressão mesmo. E &lt;span style="font-style: italic;"&gt;Greater or equal&lt;/span&gt; (Maior ou igual) seria justamente o contrário da Lower or equal, isto é, se o número de caracteres do texto da variável for MAIOR ou igual ao da expressão. E &lt;span style="font-style: italic;"&gt;Greater&lt;/span&gt;, também quase a mesma coisa, só que não contando com o mesmo número de caracteres, ou seja, só se o número de caracteres da variável de texto for maior do que o da expressão, igual não conta. E por fim, em &lt;span style="font-style: italic;"&gt;Enter Expression&lt;/span&gt; é onde fica a expressão a qual a variável será comparada. Caso seja um texto fixo (como qualquercoisa, por exemplo), deve ficar entre aspas. Já se for "pegar" essa expressão de algum objeto (como uma EditBox), você pode, e deve, não utilizar as aspas.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ações:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;As ações relacionadas a Alterable Strings se encontram no menu Alterable Strings (duh?) do Active Object que contém as variáveis de texto.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Set&lt;/span&gt; - Define o texto da variável para um de sua escolha. Usuários com certa experiência no MMF2 podem transformar isso até mesmo numa espécie de "Add" ou "Subtract" de textos. Mas não se preocupe com isso agora.&lt;br /&gt;&lt;br /&gt;E essas são as condições e ações das Alterable Strings.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Global Strings&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Global Strings, como expliquei no início da matéria, são variáveis de texto globais, isto é, que servem para toda a aplicação. Agora, vamos ver como utilizá-las.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Condições:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Para acessar as condições relacionadas a Global Strings, dê um duplo clique sobre o "objeto" Special (dois computadores).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Compare to a global string&lt;/span&gt; - A mesma coisa do &lt;span style="font-style: italic;"&gt;Compare to one of alterable value&lt;/span&gt;, só que para variáveis de texto globais.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ações:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;As ações relacionadas a Global Strings se encontram nas ações do "objeto" Special (dois computadores)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Set global string&lt;/span&gt; - Define o texto de uma variável global para um de sua escolha. Assim como a dos Alterable Strings, com certa experiência é possível fazer uma espécie de "Add" ou "Subtract" através do Set.&lt;br /&gt;&lt;br /&gt;Bom povo, e é isso!&lt;br /&gt;Espero que tenham entendido!&lt;br /&gt;&lt;br /&gt;Falow o/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-7015374932264338797?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7015374932264338797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7015374932264338797'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/08/alterable-strings-e-global-strings.html' title='Alterable Strings e Global Strings'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5328663779818568690</id><published>2010-08-24T21:39:00.002-03:00</published><updated>2010-08-26T15:07:46.152-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sprites'/><title type='text'>Maple Story</title><content type='html'>&lt;div style="text-align: center;"&gt;Vamos com Sprites de Maple Story O/&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Green Robo &lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://www.spriters-resource.com/pc_computer/maplestory/greenrobo.png"&gt;http://www.spriters-resource.com/pc_computer/maplestory/greenrobo.png&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;King Cro &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://www.spriters-resource.com/pc_computer/maplestory/kingcro.png"&gt;http://www.spriters-resource.com/pc_computer/maplestory/kingcro.png&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Robot&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://www.spriters-resource.com/pc_computer/maplestory/robot.png"&gt;http://www.spriters-resource.com/pc_computer/maplestory/robot.png&lt;/a&gt;&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Samiho&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://www.spriters-resource.com/pc_computer/maplestory/samiho.png"&gt;http://www.spriters-resource.com/pc_computer/maplestory/samiho.png &lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Como são muitos irei postando aos poucos.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.spriters-resource.com/"&gt;Créditos a Spriters-Resource &lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5328663779818568690?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/5328663779818568690/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/08/maple-story.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5328663779818568690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5328663779818568690'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/08/maple-story.html' title='Maple Story'/><author><name>DragonSky</name><uri>http://www.blogger.com/profile/12177791602621724155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-4249178547202807799</id><published>2010-08-18T18:41:00.000-03:00</published><updated>2010-08-18T18:42:27.802-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Matéria?</title><content type='html'>Desculpem, semana passada não teve matéria.&lt;br /&gt;Essa terá 2 ^^&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-4249178547202807799?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/4249178547202807799/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/08/materia.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4249178547202807799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4249178547202807799'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/08/materia.html' title='Matéria?'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-2549399683951684075</id><published>2010-08-17T23:59:00.000-03:00</published><updated>2010-08-17T23:59:12.534-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Extensões'/><title type='text'>Nova Extensão - Lacewing</title><content type='html'>Uma extensão parecida com MOOClick, MooGame e Afins, permite conexão para Jogos Online...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://lacewing.aquadasoft.com/Lacewing.zip"&gt; Lacewing&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Em breve tutoriais sobre isso...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-2549399683951684075?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/2549399683951684075/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/08/nova-extensao-lacewing.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2549399683951684075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2549399683951684075'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/08/nova-extensao-lacewing.html' title='Nova Extensão - Lacewing'/><author><name>DragonSky</name><uri>http://www.blogger.com/profile/12177791602621724155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-2740734513626668149</id><published>2010-08-17T23:21:00.000-03:00</published><updated>2010-08-17T23:21:41.745-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sprites'/><title type='text'>Chuck Rock - Sprites</title><content type='html'>E agora vamos com Chuck Rock!!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.spriters-resource.com/genesis/chuckrock/chuck.png"&gt;http://www.spriters-resource.com/genesis/chuckrock/chuck.png&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.panelmonkey.org/gs/chuckrock.gif"&gt;http://www.panelmonkey.org/gs/chuckrock.gif&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-2740734513626668149?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/2740734513626668149/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/08/chuck-rock-sprites.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2740734513626668149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2740734513626668149'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/08/chuck-rock-sprites.html' title='Chuck Rock - Sprites'/><author><name>DragonSky</name><uri>http://www.blogger.com/profile/12177791602621724155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-8426086864665365262</id><published>2010-08-17T21:50:00.000-03:00</published><updated>2010-08-17T21:50:05.470-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sprites'/><title type='text'>New Super Mario Bros - Sprites</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;E aí pessoas, lembram de mim?&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Então, trago Sprites de New Super Mario Bros.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Espero que gostem ^^ &lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://img.photobucket.com/albums/v623/Dalent/Mario/NewSupermarioBros.png"&gt;New Super Mario Bros - Sprites&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-8426086864665365262?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/8426086864665365262/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/08/new-super-mario-bros-sprites.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8426086864665365262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8426086864665365262'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/08/new-super-mario-bros-sprites.html' title='New Super Mario Bros - Sprites'/><author><name>DragonSky</name><uri>http://www.blogger.com/profile/12177791602621724155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5421740410914531080</id><published>2010-08-07T17:09:00.001-03:00</published><updated>2010-08-07T17:10:27.470-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Matéria da Semana</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Postada matéria da semana. Fala sobre Alterable Values e Global Values. Podem conferir na lista de tutoriais de MMF2.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5421740410914531080?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/5421740410914531080/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/08/materia-da-semana.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5421740410914531080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5421740410914531080'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/08/materia-da-semana.html' title='Matéria da Semana'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5992435846018171549</id><published>2010-07-31T16:46:00.000-03:00</published><updated>2010-07-31T16:47:55.874-03:00</updated><title type='text'>Próxima Matéria</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Quanto vão sair mais matérias? Sinceramente, não sei dizer x.x'. Amanhã tentarei terminar uma matéria sobre Alterable Values que comecei a fazer, mas não sei se vou mesmo terminá-la amanhã. Não vou dizer que é por falta de tempo ou algo assim, é realmente preguiça. Quem nunca sentiu? O pior é que segunda, minhas aulas volta, e só poderei entrar nos finais de semana. Bem, tentarei escrever uma matéria por fim de semana, mas não prometo nada...&lt;br /&gt;&lt;br /&gt;É isso.&lt;br /&gt;Falow o/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5992435846018171549?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/5992435846018171549/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/07/proxima-materia.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5992435846018171549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5992435846018171549'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/07/proxima-materia.html' title='Próxima Matéria'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-8430770311993661801</id><published>2010-07-30T01:10:00.000-03:00</published><updated>2010-07-30T01:12:30.244-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Novo Layout o/</title><content type='html'>Finalmente fiz alguma coisa pelo blog, depois de tanto tempo e.e! Fiz um novo layout para o blog. Demorou algum tempo (apesar de que eu dei pausas de um dia mesmo xD) mas saiu. E aí, o que acharam? Melhor que outro pelo menos está né?&lt;br /&gt;&lt;br /&gt;Ah sim, a propósito, terminei a matéria do FireSoul sobre MovCustom TileBased. Leiam direitinho! Espero que entendam tudo o/&lt;br /&gt;&lt;br /&gt;Bom aprendizado!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-8430770311993661801?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/8430770311993661801/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/07/novo-layout-o.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8430770311993661801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8430770311993661801'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/07/novo-layout-o.html' title='Novo Layout o/'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-3583719977556629105</id><published>2010-07-29T14:03:00.003-03:00</published><updated>2010-08-27T22:42:24.920-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Alterable Values e Global Values</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" &gt;Introdução&lt;/span&gt;&lt;br /&gt;No MMF2, uma coisa que utilizamos bastante são &lt;span style="font-style: italic;"&gt;Alterable Values&lt;/span&gt; (Valores Alteráveis, ou variáveis). Alterable Values são variáveis internas de um &lt;span style="font-style: italic;"&gt;Active Object&lt;/span&gt;. São como &lt;span style="font-style: italic;"&gt;Counters&lt;/span&gt;, mas não podemos delimitar os limites via &lt;span style="font-style: italic;"&gt;Frame Editor&lt;/span&gt;, apenas por eventos. Ao contrário do que muitos pensam, existem infinitos Alterable Values, mas só os do 01 ao 26 são nomeados, e, esses, recebem uma determinada letra do alfabeto para indentificá-los (Alterable Value A, Alterable Value B etc). Você pode e deve mudar esses nomes, para não se confundir. As outras variáveis são indentificados por números, e não podem receber um nome especial. Quando o &lt;span style="font-style: italic;"&gt;Frame&lt;/span&gt; recomeça, as variáveis retornam aos seus valores iniciais.&lt;br /&gt;&lt;br /&gt;Em contrapartida, &lt;span style="font-style: italic;"&gt;Global Values&lt;/span&gt; são variáveis globais, isto é, funcionam para todo o jogo. Diferentemente dos Alterable Values, não importa se um Frame muda ou reinicia, o valor só mudara se você programar para que ele mude. Pode ser utilizado para diversos fins, como gravar a Posição Atual de um jogador ou até mesmo criar um Sistema Monetário! Assim como os Alterable Values, existem infinitos, mas só 26 são nomeados, também com letras do alfabeto (Global Value A, Global Value B etc). E, assim como os Alterable Values, você pode e deve mudar esses nomes, a fim de não se confundir.&lt;br /&gt;&lt;br /&gt;Lembra das aulas chatas de &lt;span style="font-style: italic;"&gt;Matemática&lt;/span&gt;, que você dormia o tempo todo?  Espero que não, porque agora é hora de você colocar em prática. Para  mexer com variáveis é bom ter certo conhecimento em &lt;span style="font-style: italic;"&gt;Polinômios&lt;/span&gt;. Então, vamos a matéria!&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Alterable Values&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Como já expliquei, Alterable Values são variáveis internas de um Active Object. Conhecendo-os e sabendo utilizá-los você poderá fazer grandes coisas! E vou ajudar vocês a conhecê-los. O resto, é com o cérebro de vocês ^^.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Condições:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Para ver as condições relacionadas aos Alterable Values, dê um duplo clique sobre o Active Object que os contém, e vá no menu Alterable Values.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Compare to one of the alterable values&lt;/span&gt; - É a única condição relacionada de fato aos Alterable Values no menu Alterable Values hehe. Bem, ela compara o valor de um Alterable Value. Ainda que seja só uma, tem tudo o que você vai precisar. Em &lt;span style="font-style: italic;"&gt;Choose Value&lt;/span&gt;, você seleciona a variável que se quer comparar. Em &lt;span style="font-style: italic;"&gt;Choose comparison method&lt;/span&gt;, você seleciona o que quer comparar. Exemplo: A variável está IGUAL ao valor tal? Ou então, A variável está DIFERENTE ao valor tal? As opções são: &lt;span style="font-style: italic;"&gt;Equal&lt;/span&gt; (Igual), &lt;span style="font-style: italic;"&gt;Different&lt;/span&gt; (Diferente), &lt;span style="font-style: italic;"&gt;Lower or equal&lt;/span&gt; (Menor ou igual), &lt;span style="font-style: italic;"&gt;Lower&lt;/span&gt; (Menor), &lt;span style="font-style: italic;"&gt;Greater or equal&lt;/span&gt; (Maior ou igual) e &lt;span style="font-style: italic;"&gt;Greater&lt;/span&gt; (Maior). E em &lt;span style="font-style: italic;"&gt;Enter expression&lt;/span&gt; é a expressão a qual a variável será comparada. Ela não precisa ser necessariamente um número: pode ser também uma expressão, o valor de algum outro objeto. Então, depois de mexer em tudo, aqui vai um exemplo: se em Choose Value, coloco o Alterable Value E, em Choose comparison method, coloco menor e em Enter expression coloco 10, a condição será a seguinte: Se o &lt;span style="font-style: italic;"&gt;Alterable Value E for menor do que 10...&lt;/span&gt; e então, a ação.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ações:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;As ações relacionadas a Alterable Values se encontram no menu Alterable Values do Active Object que contém as variáveis.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Set&lt;/span&gt; - Define o valor de uma variável para um valor de sua escolha.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Add to&lt;/span&gt; - Adiciona um determinado valor a uma variável.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Subtract from&lt;/span&gt; - Subtrai um determinado valor de uma variável.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Spread value&lt;/span&gt; - Hehe, até hoje não entendi o que seria essa função. Matheus, Ails, vários já me explicaram, mas cadê que eu entendi? Desculpem x.x. Quando descobrir, coloco aqui.&lt;br /&gt;&lt;br /&gt;E é isso! Essas são as condições e ações de Alterable Values!&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Global Values&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;As condições e ações são realmente bem parecidas com a dos Alterable Values. Mas vamos lá.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Condições:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Para ver as condições relacionadas aos Global Values, dê um duplo clique sobre o "objeto" Special (dois computadores).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Compare to a global value&lt;/span&gt; - Compara o valor de um Global Value. A estrutura é idêntica a dos Alterable Values (fora o fato de serem Global Values, não Alterable Values), por isso, não irei explicar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ações:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;As ações relacionadas a Global Values se encontram no menu "Change a global value" do objeto Special.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Set&lt;/span&gt; - Define o valor de uma variável global para um valor de sua escolha.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Add to&lt;/span&gt; - Adiciona um valor a uma variável global&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Subtract from&lt;/span&gt; - Subtrai um valor de uma variável global&lt;br /&gt;&lt;br /&gt;E pronto! Essas são as condições e ações de Global Values! Agora é só usar seu cérebro e combiná-las com outras ações e condições, fazendo coisas maneiras no MMF2!&lt;br /&gt;Falow o/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-3583719977556629105?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/3583719977556629105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/3583719977556629105'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/07/alterable-values-e-global-values.html' title='Alterable Values e Global Values'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-268434411952007101</id><published>2010-07-28T23:39:00.004-03:00</published><updated>2011-02-03T20:58:47.741-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Movimento Custom TileBased - Parte II: Colisões</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;Movimento Custom TileBased&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Parte II: Colisões&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Introdução:&lt;/span&gt;&lt;br /&gt;Olá pessoal o/. O FireSoul acabou não postando a segunda parte do tutorial ¬¬. Brincadeira, já agradeço a ele por ter feito a parte 1 ^^. Então, eu mesmo vou postar! Ayuupi!! Quêê?! Como assim não me querem como professor? Dane-se, eu que vou ensinar assim mesmo e.e.&lt;br /&gt;&lt;br /&gt;Nessa parte do tutorial vamos aprender a fazer colisões. E depois disso, você já vai poder estar criando seus jogos de RPG! Tá bom, nem tanto, um jogo de RPG não é só isso hehe. Mas já é um começo não é? Então, bora parar de faladeira e ir ao que interessa o/&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Criando os Detectores:&lt;/span&gt;&lt;br /&gt;Antes de programar, temos de criar os detectores de colisão. É eles que vão... err... é algo bem complicado... como posso explicar? Detectar as colisões! Tcharaaaam! Cada detector vai precisar ter a mesma largura e altura dos tiles, e ser preenchido com uma cor diferente. Além disso, é importante nomear cada um, para saber qual é qual, porque saber só pelas cores é difícil o.O. Se você não sabe o que é um detector... O QUE VOCÊ TÁ FAZENDO AQUI?! VOLTA PRO NÍVEL BÁSICO CARAMBA!&lt;br /&gt;&lt;br /&gt;Ajuste o HotSpot do Personagem para bem no meio, tanto na horizontal quanto na vertical (use QuickMove, é bem mais prático). O Hotspot do Detector Cima deve ficar em baixo (em relação à vertical) e no meio (em relação à horizontal). O do Detector Baixo deve ficar em cima (em relação à vertical) e no meio (em relação à horizontal). O do Detector Direito tem de ficar no meio (em relação à vertical) e na parte esquerda (em relação à horizontal). E o do Detector Esquerdo, por fim, tem de ficar no meio (em relação à vertical) e na parte direita (em relação à horizontal).&lt;br /&gt;&lt;br /&gt;Agora vá no personagem. Conte quantos pixels ele tem do centro para a parte de cima. Aqui deu 8px. O Detector Cima deve ficar 1px acima dele, então, o Detector Cima deve ficar 9px acima do referencial (HotSpot) do personagem (no MEU caso), pois 8+1=9. Mas como no Plano Computacional para cima são valores negativos, não deve ficar 9px e sim &lt;span style="font-weight: bold;"&gt;-9px&lt;/span&gt;. Agora, conte quantos pixel ele tem do centro para baixo. Aqui deu 7px. Como o detector deve ficar 1px abaixo dele, então adiciono 1, ficando &lt;span style="font-weight: bold;"&gt;8px&lt;/span&gt;. Então, conte quanto tem do meio para a esquerda. Aqui deu 8px, somando um... 9px. Para a esquerda, assim como para cima, também são valores negativos. Então, não deve ficar 9px, e sim &lt;span style="font-weight: bold;"&gt;-9px&lt;/span&gt;. E pra terminar, conte quanto tem do meio para a direita. Aqui deu 7px, somando 1px, fica &lt;span style="font-weight: bold;"&gt;8px&lt;/span&gt;.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cima: -9px&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Baixo: 8px&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Esquerda: -9px&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Direita: 8px&lt;/span&gt;&lt;br /&gt;Pronto, anotei os valores que vou precisar. Lembre-se, esses valores dependem do tamanho dos Tiles que você está utilizando! Esses que peguei servem para 16x16, que são os que EU estou usando! Vamos utilizar esses valores para posicionar os detectores ;P.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Programando os Eventos:&lt;/span&gt;&lt;br /&gt;Ok, agora está tudo preparado para começarmos a programar. Vamos começar posicionando os detectores. Faça o seguinte evento:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Start of Frame&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;(Detector Cima) Set position at (0,-9) from ("Personagem")&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;(Detector Baixo) Set position at (0,8) from ("Personagem")&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;(Detector Esquerda) Set position at (-9,0) from ("Personagem")&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;(Detector Direita) Set position at (8,0) from ("Personagem")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Beleza! Isso vai fazer com que quando começar o Frame, os detectores vão para os seus devidos lugares, não importando onde estão! Agora, vamos criar um loop para ficar posicionando os detectores sempre. Vamos chamar esse loop de &lt;span style="font-style: italic;"&gt;Detectores&lt;/span&gt;. Crie o seguinte evento, repetindo as ações do evento anterior e mudando apenas a condição:&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;On loop "Detectores"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;(Detector Cima) Set position at (0,-9) from ("Personagem")&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;(Detector Baixo) Set position at (0,8) from ("Personagem")&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;(Detector Esquerda) Set position at (-9,0) from ("Personagem")&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;(Detector Direita) Set position at (8,0) from ("Personagem")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Repetimos o que fizemos no Start of Frame. A diferença é que, enquanto lá, era pra posicionar assim que o Frame começar, aqui, é pra manter esse posicionamento constante. Muito bem. Agora, vamos usar este loop.&lt;br /&gt;&lt;br /&gt;Lembram destas condições, da aula passada?&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Alterable Value A of ("Personagem") &amp;lt; 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Alterable Value A of ("Personagem") &amp;gt; 0&lt;br /&gt;Alterable Value B of ("Personagem") &amp;lt; 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Alterable Value B of ("Personagem") &amp;gt; 0&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;Adicione a cada uma delas o seguinte evento:&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Start Loop "Detectores" X times&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;X é o número de vezes que a repetição será feita. Coloque o mesmo número do tamanho dos tiles. No meu caso seria, então, 16 vezes, pois o tamanho dos meus tiles é 16x16.&lt;br /&gt;&lt;br /&gt;Ok, agora lembra daquelas condições de movimento?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved right&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; Repeat while ("Player 1") Moved left&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Alterable Value A = 0&lt;br /&gt;Alterable Value B = 0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved left&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved right&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt; Alterable Value A = 0&lt;br /&gt;Alterable Value B = 0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved top&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved bottom&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt; Alterable Value B = 0&lt;br /&gt;Alterable Value A = 0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved bottom&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved top&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt; Alterable Value B = 0&lt;br /&gt;Alterable Value A = 0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Então, adicione a todas elas a seguinte condição também:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;X&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;(Respectivo Detector) is overlapping a backdrop&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Escolhendo o Detector Direito para o movimento para a direita, o Detector Esquerdo para o movimento para a esquerda, o Detector Cima para o movimento para cima e o Detector Baixo para o evento para baixo! Ficando, respectivamente, assim:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved right&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; Repeat while ("Player 1") Moved left&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;X&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;(Detector Direita) is overlapping a backdrop&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Alterable Value A = 0&lt;br /&gt;Alterable Value B = 0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved left&lt;br /&gt;           &lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved right&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;X&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;(Detector Esquerda) is overlapping a backdrop&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt; Alterable Value A = 0&lt;br /&gt;Alterable Value B = 0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved top&lt;br /&gt;           &lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved bottom&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;X&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;(Detector Cima) is overlapping a backdrop&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt; Alterable Value B = 0&lt;br /&gt;Alterable Value A = 0&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved bottom&lt;br /&gt;           &lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved top&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;X&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;(Detector Baixo) is overlapping a backdrop&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt; Alterable Value B = 0&lt;br /&gt;Alterable Value A = 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Isso fará com que ele só ande se o detector não estiver detectando um obstáculo! E... pronto! Terminamos! Agora ele já colide! Só falta deixar os Detectores Invisíveis... Seria &lt;span style="font-style: italic;"&gt;super&lt;/span&gt; estranho vários quadrados coloridos ao redor do personagem =P.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Always&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(Detector Cima) Make Invisible&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(Detector Baixo) Make Invisible&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(Detector Esquerda) Make Invisible&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;(Detector Direita) Make Invisible&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Agora sim! Seu movimento está pronto! Agora é só começar a criar seus jogos em RPG! Só uma observação, antes de você sair por aí criando jogos de RPG... Particularmente, sempre uso esse Active Object, o qual programamos o movimento, como uma &lt;span style="font-style: italic;"&gt;Máscara de Colisão&lt;/span&gt; (também conhecida como &lt;span style="font-style: italic;"&gt;Collision Mask&lt;/span&gt;), a fim de evitar bugs.&lt;br /&gt;&lt;br /&gt;Máscara de Colisão é um objeto que controla o movimento, e as animações ficam em outro Active Object, á parte. Ou seja, eu crio outro Active Object, com as animações, e posiciono-o em cima da Máscara de Colisão. Daí, programo as animações nesse novo Active Object.&lt;br /&gt;&lt;br /&gt;Pode parecer bobagem, mas fica a dica. Claro, não estou dizendo que você não pode fazer as animações direto no Active que o movimento está programado, mas, na minha humilde opinião, Máscaras de Colisão são bem melhores. Não vou explicar nesse tutorial como programar as animações, porque, nesse ponto, vocês &lt;span style="font-style: italic;"&gt;já devem&lt;/span&gt; saber fazer isso sozinhos. Se não sabe, recomendo você dar outras lidas nas aulas...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Falow o/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Download do Exemplo:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;a href="http://sites.google.com/site/cnbups/programas-cnb/MovCustom_TileBased2.mfa?attredirects=0&amp;amp;d=1" target="_blank"&gt;Link Direto&lt;/a&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;/&lt;/span&gt; &lt;a href="http://www.mediafire.com/?9ibgi9d1q5zj6gf" target="_blank"&gt;MediaFire&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;&lt;span style="font-style: italic;"&gt;Nota:  Nos exemplos, pode-se andar em diagonais, e em dois sentidos "ao mesmo  tempo", o que pode ocasionar alguns bugs. Além disso, nessa parte 2, substitui um método pré-histórico de posicionamento que eu usava por Fast Loops. Isso significa que os exemplos servem  apenas para você ter uma base, e que não deve se espelhar totalmente  neles. Entretanto, se você seguir o tutorial, obterá sucesso, com  certeza.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-268434411952007101?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/268434411952007101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/268434411952007101'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/07/movimento-custom-tilebased-parte-ii.html' title='Movimento Custom TileBased - Parte II: Colisões'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-8378884091455293198</id><published>2010-07-11T17:41:00.000-03:00</published><updated>2010-07-11T18:07:42.501-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sprites'/><title type='text'>Sprites - Sonic 1 Dr. Robotinik</title><content type='html'>Só Atualizando. Sprites Sonic1 Dr. Robotinik.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_-LUZzGdUdCc/TDoylKWKsGI/AAAAAAAAAAM/eTiKzalIET4/s1600/Egg+Man+01+copy.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/_-LUZzGdUdCc/TDoylKWKsGI/AAAAAAAAAAM/eTiKzalIET4/s320/Egg+Man+01+copy.gif" width="193" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;É isso aí.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-8378884091455293198?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/8378884091455293198/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/07/sprites-sonic-1-dr-robotinik.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8378884091455293198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8378884091455293198'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/07/sprites-sonic-1-dr-robotinik.html' title='Sprites - Sonic 1 Dr. Robotinik'/><author><name>DragonSky</name><uri>http://www.blogger.com/profile/12177791602621724155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-LUZzGdUdCc/TDoylKWKsGI/AAAAAAAAAAM/eTiKzalIET4/s72-c/Egg+Man+01+copy.gif' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-6597315728085217500</id><published>2010-05-20T21:35:00.003-03:00</published><updated>2011-02-03T18:10:11.304-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Movimento Custom TileBased - Parte I: Movimentação</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;M&lt;/span&gt;ovimento &lt;span style="color: rgb(0, 0, 0);"&gt;C&lt;/span&gt;ustom &lt;span style="color: rgb(0, 0, 0);"&gt;T&lt;/span&gt;ile&lt;span style="color: rgb(0, 0, 0);"&gt;B&lt;/span&gt;ased&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;P&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;arte &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;I: Movimentação&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;FireSoul falando o/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;Vou mostrar pra vocês como criar um movimento personalizado baseado em Tiles.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-family:courier new;" &gt;O que é um movimento baseado em Tiles?&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Movimento baseado em Tiles é um movimento "quadriculado". Por exemplo, se os Tiles forem 32x32 e eu mover o personagem para direita, ele vai andar para direita até completar 32 pixels, e vai parar.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Resumindo, é um movimento estilo RPG.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Agora, vamos em frente com o tutorial. Primeiro, crie um objeto e escolha um tamanho para os Tiles. Eu vou usar Tiles de 16x16 como exemplo. Os eventos serão bem básicos.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:180%;"  &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;M&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;ovimentos&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;H&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;orizontais&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Faça o seguinte evento:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Repeat  While ("Player 1") Moved right&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;X &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat  While ("Player 1") Moved left&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Alterable Value A  ("Personagem") = 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Alterable Value B  ("Personagem") = 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Set Alterable Value A  ("Personagem") to 16&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;Explicando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Este evento faz com que enquanto o jogador estiver pressionando para a direita, e a variável A for 0, mudar o valor da variável A para 16.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Modificamos  o valor da variável A para 16 porque é o valor da variável A que vai  determinar o movimento horizontal. E, como o tamanho dos tiles é 16x16, o  personagem irá andar de 16 em 16 pixels. Logo, se o tamanho dos tiles  fossem 32x32, deveríamos definir esse valor para 32. Se fossem 48x48,  deveríamos definir esse valor para 48, e assim por diante.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Verificar se a variável B é igual a 0 serve para que o personagem não ande em diagonal. Isso pode ocasionar bugs mais tarde. E &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;a condição negada, serve para que seja impossível andar para os dois lados ao mesmo tempo.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Agora, o próximo evento:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Repeat  While ("Player 1") Moved left&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat  While ("Player 1") Moved right&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Alterable value A ("Personagem") = 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Alterable value B ("Personagem") = 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Set alterable value A ("Personagem")  to -16&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;font-family:courier new;" &gt;Explicando:&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;Quase a mesma coisa do evento  anterior. Contudo, como queremos que ele ande para a esquerda, devemos definir  a variável A para &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;-&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;16, um  valor negativo. Como você sabe, no Plano Computacional, no eixo X  (horizontal), a direção para a direita é representada por números positivos, e  a direção para a esquerda, é representada por números negativos. Logo, 16  fará o personagem andar 16 pixels para a direita, e -16, fará o personagem  andar 16 pixels para a esquerda.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Verificar se a variável B é igual a 0 , mais uma vez, serve para que o personagem não ande em diagonal, pelo mesmo motivo já citado. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;Novamente, a condição negada é para que ele não ande para os dois lados.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;Pronto, terminamos os Movimentos Horizontais. Note que, mesmo que tenhamos feito os Movimentos Horizontais, o personagem ainda não se move quando teclamos no jogo. Isso iremos&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; resolver no final do tutorial, pois precisamos programar também o movimento em si.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;M&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;ovimentos&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;V&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;erticais&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ok, beleza, quase a mesma lógica dos Movimentos Horizontais, mas vou explicar tudo de novo. Comece fazendo o seguinte evento:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Repeat While ("Player 1") Moved down&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;X &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat While ("Player 1") Moved top&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Alterable value B ("Personagem") = 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Alterable value A ("Personagem") = 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Set Alterable Value B ("Personagem") to 16&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;Explicando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Este evento faz com que enquanto o jogador estiver apertando para baixo e a variável B do personagem for 0, mudar o valor da variável para 16.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;O &lt;span style="font-weight: bold;"&gt;Alterable Value B = 0&lt;/span&gt; só vai deixar com que o evento aconteça se o valor alterável B do personagem seja 0. Isso serve para que o movimento não saia do padrão.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Modificamos o valor da variável B para 16 porque é o valor da variável B que vai determinar o movimento vertical. E, como o tamanho dos tiles é 16x16, o personagem irá andar de 16 em 16 pixels. Logo, se o tamanho dos tiles fossem 32x32, deveríamos definir esse valor para 32. Se fossem 48x48, deveríamos definir esse valor para 48, e assim por diante.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Desta vez, é o contrário. O que faz o personagem não andar em diagonal, é o fato de verificarmos, agora, se a variável &lt;span style="font-weight: bold;"&gt;A&lt;/span&gt; (dos movimentos horizontais), e não mais a &lt;span style="font-weight: bold;"&gt;B&lt;/span&gt;, é igual a 0.  Isso porque estamos trabalhando agora com a variável &lt;span style="font-weight: bold;"&gt;B&lt;/span&gt; como movimento, ou seja, a "intrusa" é a &lt;span style="font-weight: bold;"&gt;A&lt;/span&gt;. A intrusa a qual me refiro, é a cujo movimento é iniciado depois, sendo que a &lt;span style="font-weight: bold;"&gt;A&lt;/span&gt; representa os horizontais, e a &lt;span style="font-weight: bold;"&gt;B&lt;/span&gt;,&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;os verticais. Isso significa que se o movimento horizontal já tiver sido iniciado, o vertical (intruso) não pode acontecer, e vice-versa. Já a condição negada, é para que ele não ande para cima e para baixo ao mesmo tempo.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Agora, vamos ao próximo evento:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Repeat  While ("Player 1") Moved top&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat  While ("Player 1") Moved down&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Alterable value B ("Personagem") = 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Alterable value A ("Personagem") = 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Set Alterable Value B ("Personagem")  to -16&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;Explicando:&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;Quase a mesma coisa do evento anterior. Contudo, como queremos que ele ande para cima, devemos definir a variável B para &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;-&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;16, um valor negativo. Como você sabe, no Plano Computacional, no eixo Y (vertical), a direção para baixo é representada por números positivos, e a direção para cima, é representada por números negativos. Logo, 16 fará o personagem andar 16 pixels para baixo, e -16, fará o personagem andar 16 pixels para cima.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Novamente, verificamos se a variável &lt;span style="font-weight: bold;"&gt;A&lt;/span&gt; é igual a 0 a fim de impedir o movimento diagonal. A explicação é a mesma dos eventos anteriores. A Condição negada, mais uma vez, é para que ele não ande para cima e para baixo ao mesmo tempo.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Com isso, terminamos o Movimento Vertical.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;O&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;M&lt;/span&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;ovimento em &lt;span style="color: rgb(51, 51, 255);"&gt;S&lt;/span&gt;i&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Agora, iremos fazer o movimento em si. O que fizemos antes foi para criar as direções do movimento, mas isso não fará o personagem se movimentar de fato. Então, vamos lá. Faça o seguinte evento:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Alterable Value A &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;("Personagem") &amp;gt; 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;Set position X &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;("Personagem")&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; to &lt;span style="font-style: italic;"&gt;X&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;("Personagem")&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold; font-style: italic;"&gt;+1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Sub 1 from Alterable Value A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;Explicando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Agora, se a variável A for maior do que 0 (ou seja, se apertar para DIREITA), vai mudar a posição X do personagem para a sua própria posição X, mais um, ou seja, irá aumentar a posição X do personagem em 1. Ao mesmo tempo, precisamos fazer com que a variável A fique voltando a 0 conforme o personagem anda, para ele parar o movimento (porque senão, ele fica andando pra sempre =P). Como aqui o valor é positivo, para fazermos ele voltar a ser 0, devemos &lt;span style="font-weight: bold;"&gt;subtrair&lt;/span&gt; 1 dele.&lt;/span&gt; Assim, a cada pixel que o personagem anda, 1 é subtraído da variável A, logo, quando ele tiver andado 16 pixels, já terá subtraído 16, e a variável terá voltado a ser 0. Então, ele irá parar.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Os valores que adicionamos na posição e subtraímos na variável tem de serem iguais, e, esse valor, é a &lt;span style="font-weight: bold;"&gt;velocidade&lt;/span&gt; do movimento. A velocidade tem de ser divisível pelo tamanho dos Tiles. 1 é divisível por todos os números, logo, sempre poderá ser utilizado. 2 é divisível por 16, logo, poderia ser utilizado. 3 não é divisível por 16, logo, não poderia ser utilizado.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Outro evento:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;font-family:courier new;" &gt;Alterable Value A &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;("Personagem") &amp;lt; 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Set position X&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;("Personagem")&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;to &lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;X&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;("Personagem")-1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Add 1  to Alterable Value A&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;Explicando:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;A mesma lógica do evento anterior, só que para andar para a esquerda. Quando a variável for menor que 0, diminuiremos 1 da posição X (lembre que, a direção esquerda é representada por números negativos). Ao mesmo tempo, faremos a variável A voltar a ser 0. Como aqui o número é negativo, para a variável voltar a ser 0, devemos &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;adicionar&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; 1 à variável. Daí, quando o valor voltar a ser 0, o personagem vai parar de andar, e isso vai ser exatamente quando ele tiver chegado ao fim do Tile.&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;O &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;normal&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; é que a velocidade das quatro direções sejam iguais. Mas se quiser fazê-las diferentes, faça. E lembre-se que a velocidade (no caso, o valor que deve ser subtraído na posição e adicionado na variável) deve ser divisível pelo tamanho dos Tiles.&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;Então, vamos ao próximo evento:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;font-family:courier new;" &gt;Alterable Value B &lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;("Personagem") &amp;gt; 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Set position Y ("Personagem")&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; to&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;Y&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;("Personagem")&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;+1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Sub 1 from Alterable Value B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;Explicando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;A mesma coisa, mas com a posição vertical. Como está "&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;&lt;span style="font-weight: bold;"&gt;Quando o valor for &lt;span style="font-style: italic;"&gt;MAIOR&lt;/span&gt; que 0...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;", então o evento irá acontecer quando apertar BAIXO.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;font-family:courier new;" &gt;Alterable Value B &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;("Personagem") &amp;lt; 0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Set position Y&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;("Personagem")&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;to Y&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;("Personagem")&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-1&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;font-family:courier new;" &gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Add 1 to Alterable Value B&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;font-family:courier new;" &gt;Explicando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;Agora estamos fazendo exatamente o oposto do evento anterior. Esse evento é para quando o jogador apertar para cima, afinal, a variável B está "&lt;span style="font-weight: bold;"&gt;Quando o valor for &lt;span style="font-style: italic;"&gt;MENOR&lt;/span&gt; que 0...&lt;/span&gt;".&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;Ei, não tente fazer seu jogo agora, na próxima parte do tutorial irei explicar colisões, para seu personagem não atravessar a parede!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;EXTRA!&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;Antes de terminar, vou ensinar como criar uma grade para posicionar corretamente seu personagem e os obstáculos! Isso é muito importante, pois se eles forem posicionados de forma errada, pode ocorrer algum bug no seu jogo. A grade ajuda a alinhar o personagem e os objetos corretamente!&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;O primeiro passo é abrir seu Paint. Vá em &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;Imagem &gt; Atributos&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;. Coloque a largura e a altura dos tiles que serão utilizados no seu jogo em Pixels nos seus respectivos campos. No meu caso, 16 de largura e 16 de altura. Então, pinte de cinza a imagem toda. Daí, volte em &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;Imagem &gt; Atributos&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;, e, dessa vez, dobre a largura. Como a largura dos meus tiles é de 16px, dobrando, fica 32 (16x2=32). Dê Ok. Agora vá em &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;Editar &gt; Selecionar Tudo&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; e depois em &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;Editar &gt; Copiar&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;. Vá novamente em &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;Imagem &gt; Atributos&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;, mas dessa vez dobre a altura. Como a altura dos meus tiles também é de 16px, dobrando fica 32 de novo. Agora, clique na Lupa e selecione &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;8x&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;, a fim de aumentar a imagem para ver melhor. Então, vá em &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;Editar &gt; Colar&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;. Clique com o botão direito do mouse nessa nova parte da imagem, e clique em &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;Iverter / girar&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;. &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;Escolha&lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt; Inverter horizontalmente&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; e clique em Ok. Depois, arraste a nova parte da imagem para abaixo da antiga e salve sua imagem como (*.PNG)! Daí é só adicionar no MMF2 como &lt;/span&gt;&lt;span style="font-style: italic;font-family:courier new;" &gt;QuickBackdrop Object&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; e utilizar como base! Note que para encaixar direitinho com o tamanho do frame, a largura do frame deve ser divisível pela largura do tile e a altura do frame também deve ser divisível pela altura do tile!&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;Bom, é isso!&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;That's all for now, Folks!&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;&lt;span style="font-weight: bold;"&gt;Download do Exemplo:&lt;/span&gt; &lt;a href="http://sites.google.com/site/cnbups/Home/arquivos-cnb/MovCustom_TileBased.mfa?attredirects=0&amp;amp;d=1" target="_blank"&gt;Link Direto&lt;/a&gt; / &lt;a href="http://www.mediafire.com/?zztv125912y4723" target="_blank"&gt;MediaFire&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;&lt;span style="font-style: italic;"&gt;Nota: Nos exemplos, pode-se andar em diagonais, e em dois sentidos "ao mesmo tempo", o que pode ocasionar alguns bugs. Isso significa que eles servem apenas para você ter uma base, e que não deve se espelhar totalmente neles. Entretanto, se você seguir o tutorial, obterá sucesso, com certeza.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-6597315728085217500?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6597315728085217500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6597315728085217500'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/05/criando-um-movimento-por-tiles-o-basico.html' title='Movimento Custom TileBased - Parte I: Movimentação'/><author><name>Hazael</name><uri>http://www.blogger.com/profile/06577035938790360698</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-6184060818198493974</id><published>2010-05-01T22:30:00.001-03:00</published><updated>2010-05-01T22:36:14.618-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Instalando Widgets - Bibliotecas de Eventos</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Introdução:&lt;/span&gt;&lt;br /&gt;Widgets são algo parecido com Libs. Tanto Widgets quanto Libs são Bibliotecas; a diferença é que enquanto Libs são Bibliotecas Gráficas, Widgets são Bibliotecas de Eventos. As Widgets contém objetos pré-programados, para você só arrastar para o Frame e editar. Os eventos são programados dentro dos Behaviors do objeto. Você pode baixar Widgets no fórum oficial da ClickTeam. O processo de instalação é igual ao das Libs.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1&lt;/span&gt; - Vá até a pasta do Multimedia Fusion 2.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2&lt;/span&gt; - Entre na pasta "&lt;span style="font-weight: bold;"&gt;Lib&lt;/span&gt;", e depois em "&lt;span style="font-weight: bold;"&gt;Object&lt;/span&gt;".&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3&lt;/span&gt; - Crie uma pasta chamada &lt;span style="font-weight: bold;"&gt;Widgets&lt;/span&gt;. Este passo não é obrigatório, mas é importante para ficar organizado e você não acabe se perdendo depois.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4&lt;/span&gt; - Nesta pasta, coloque todas as Widgets que baixar. Você pode também criar pastas dentro dessa pasta, para ficar ainda mais organizado.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5&lt;/span&gt; - Sempre que instalar uma ou mais novas Widgets, se seu Multimedia Fusion 2 estiver aberto, feche-o e abra-o novamente.&lt;br /&gt;&lt;br /&gt;Pronto! Agora é só curtir suas Widgets!&lt;br /&gt;Falow o/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-6184060818198493974?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6184060818198493974'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6184060818198493974'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/05/instalando-widgets-bibliotecas-de.html' title='Instalando Widgets - Bibliotecas de Eventos'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5308026628783798063</id><published>2010-05-01T20:49:00.002-03:00</published><updated>2011-06-06T13:51:12.863-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Os Movimentos</title><content type='html'>&lt;span style="color: rgb(51, 51, 255);font-family:verdana;font-size:180%;"  &gt;&lt;span style="color: rgb(0, 0, 153);"&gt;O&lt;/span&gt;s &lt;span style="color: rgb(0, 0, 153);"&gt;M&lt;/span&gt;ovimentos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Introdução:&lt;/span&gt;&lt;br /&gt;O Multimedia Fusion 2 vem com uma série de movimentos pré-definidos para serem aplicados a Active Objects. O problema é que a maioria desses movimentos são mal-feitos e, por isso, não são muito usados em jogos de nível intermediário ou superior. Com o tempo, você adquire a experiência necessária para fazer um Movimento Personalizado. Mas por ora, foque-se no Pré-definido; vamos deixar o Personalizado pra mais tarde. Nessa matéria, vamos aprender os movimentos pré-definidos mais simples: &lt;span style="font-weight: bold;"&gt;Static&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Bouncing Ball&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Path&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Mouse Controlled&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Eight Directions&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Race Car&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;Platform&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Static Movement:&lt;/span&gt;&lt;br /&gt;Não se tem o que falar sobre esse movimento. É estático, não se pode nem dizer que é um movimento. É utilizado quando se faz Movimento Personalizado, pois neste, é você que cria o Movimento por meio de eventos, e, por isso, o correto é não aplicar nenhum movimento no Objeto. Resumindo, Static é sem movimento. Pelo menos, sem Movimento Pré-definido.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Bouncing Ball Movement:&lt;/span&gt;&lt;br /&gt;Movimento de bola quicante. É utilizado para jogos de Pinball, por exemplo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Atributos:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Initial Direction:&lt;/span&gt; Direções iniciais que o Active Object pode assumir.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Speed:&lt;/span&gt; Velocidade de movimentação do Active Object.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Deceleration:&lt;/span&gt; Desaceleração do Active Object.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Moving at Start:&lt;/span&gt; Determina se o Active Object vai se mover ao começar o Frame ou não. Caso esteja marcada, vai se mover ao começar o Frame, caso esteja desmarcada, será necessário um evento para ativá-lo.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# of angles:&lt;/span&gt; Ângulos que o Active Object pode assumir.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Randomizer:&lt;/span&gt; Chance de quicar para outra direção.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i39.tinypic.com/2wmncbs.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Path Movement:&lt;/span&gt;&lt;br /&gt;Movimento de "Caminho". Nesse movimento, nós traçamos um caminho que o Active Object deve percorrer, uma "trilha". Por exemplo: João sai de sua casa. Depois vai ao banco. Quando sai do banco vai pra padaria. Da padaria, ele vai pra casa de novo. Para definir a trilha a ser seguida, clique no botão &lt;span style="font-weight: bold;"&gt;Edit&lt;/span&gt; nos atributos do Movimento, e você verá o editor. No Editor, ele mostra um campo onde pode-se alterar a velocidade. Mas este campo é defeituoso, e você tem que mudar a velocidade por eventos, com o evento &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Start of Frame&lt;/span&gt; &amp;gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Set speed to #&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;img style="width: 435px; height: 236px;" src="http://i40.tinypic.com/2jg6n1g.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i42.tinypic.com/11k8okm.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Mouse Controlled Movement:&lt;/span&gt;&lt;br /&gt;Movimento em que o Active Object é controlado pelo Mouse. É utilizado, por exemplo, em jogos de Tiro-ao-Alvo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Atributos:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Player:&lt;/span&gt; Determina qual o Jogador do Active Object em questão.&lt;br /&gt;&lt;br /&gt;Clicando no botão &lt;span style="font-weight: bold;"&gt;Edit&lt;/span&gt;, você delimita a área em que o Active Object pode se mover.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i40.tinypic.com/35n90tj.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Eight Directions Movement:&lt;/span&gt;&lt;br /&gt;Movimento em oito direções. É utilizado, por exemplo, em jogos de RPG, parecido com os do RPG Maker.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Atributos:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Player:&lt;/span&gt; Determina qual o Jogador do Active Object em questão.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Directions:&lt;/span&gt; Determina quais direções o Active Object pode assumir em seu movimento.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Initial direction:&lt;/span&gt; Determina quais podem ser as direções inicias do Active Object.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Speed:&lt;/span&gt; Velocidade do movimento.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Deceleration:&lt;/span&gt; Desaceleração do   movimento, ou seja, quanto ele vai perdendo velocidade ao parar de se  movimentar.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Acceleration:&lt;/span&gt;  Aceleração do  movimento, ou seja, quanto ele vai ganhando velocidade  ao começar a se movimentar.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Moving at start:&lt;/span&gt; Neste tipo de movimento, esta opção é inútil.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i44.tinypic.com/70g9zs.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Race Car Movement:&lt;/span&gt;&lt;br /&gt;Movimento de carro de corrida. Utilizado em jogos de corrida vistos de cima, por exemplo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Atributos:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Player:&lt;/span&gt; Determina qual o Jogador  do Active Object em questão.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Initial direction:&lt;/span&gt; Determina  quais podem ser as direções inicias do Active Object.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Speed:&lt;/span&gt; Velocidade do movimento.&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Acceleration:&lt;/span&gt; Aceleração do  movimento, ou seja, quanto ele vai ganhando velocidade ao começar a se movimentar.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Deceleration:&lt;/span&gt; Desaceleração do  movimento, ou seja, quanto ele vai perdendo velocidade ao parar de se movimentar.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Enable reverse:&lt;/span&gt; Não vou mentir, não sei o que é. Testei para ver o que seria, mas não vi nenhuma mudança. Favor, se alguém souber, mandar um e-mail.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Moving at start:&lt;/span&gt; Neste tipo de  movimento, esta opção é inútil.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# of angles:&lt;/span&gt; Ângulos em que o Active Object pode se movimentar.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Rotation Speed:&lt;/span&gt; Velocidade de rotação do carro, isto é, quando viramos para a esquerda ou para a direita.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i43.tinypic.com/11rg4d5.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Platform Movement:&lt;/span&gt;&lt;br /&gt;Movimento de plataforma. Aquele, que você sai pulando nas plataformas com o personagem. Um exemplo desse tipo de jogo é Sonic.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Atributos:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Player:&lt;/span&gt; Determina qual o Jogador   do Active Object em questão.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Initial  direction:&lt;/span&gt; Determina  quais podem ser as direções inicias do  Active Object.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Speed:&lt;/span&gt; Velocidade do movimento.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Acceleration:&lt;/span&gt;  Aceleração do  movimento, ou seja, quanto ele vai ganhando velocidade  ao começar a se movimentar.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Deceleration:&lt;/span&gt;  Desaceleração do  movimento, ou seja, quanto ele vai perdendo  velocidade ao parar de se movimentar.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Moving at start:&lt;/span&gt; Neste tipo de   movimento, esta opção é inútil.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Gravity:&lt;/span&gt; Gravidade do movimento.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Strenght:&lt;/span&gt; Força do pulo.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Control:&lt;/span&gt; Botão utilizado para pular.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i40.tinypic.com/hx64vn.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Multiple Movements:&lt;/span&gt;&lt;br /&gt;Um mesmo Active Object pode ter mais de um movimento. Para organizar os movimentos de um Active Object, clique sobre a opção do lado de &lt;span style="font-weight: bold;"&gt;Movement&lt;/span&gt;, e clique no botão &lt;span style="font-weight: bold;"&gt;+/-&lt;/span&gt;. Então, uma janela vai se abrir, onde você pode organizar os movimentos do Active Object. Uma vez que um Objeto tenha mais de um movimento, mais movimentos aparecerão no Atributo Movement, para que você possa mudar os atributos dos outros movimentos.&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 480px; height: 237px;" src="http://i40.tinypic.com/140gpkp.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i42.tinypic.com/nv4q5u.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Condições e Eventos de Movimento:&lt;/span&gt;&lt;br /&gt;Existem condições e eventos referentes aos movimentos, como já falei anteriormente. Se você não se lembra, foi quando eu estava falando sobre o &lt;span style="font-style: italic;"&gt;Path Movement&lt;/span&gt;, no começo da matéria. Vou falar sobre cada condição e cada evento referente aos movimentos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Condições:&lt;/span&gt;&lt;br /&gt;Podem ser acessadas no SubMenu "&lt;span style="font-weight: bold;"&gt;Movement&lt;/span&gt;".&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nota:&lt;/span&gt; Sempre que utilizar o símbolo &lt;span style="font-weight: bold;"&gt;#&lt;/span&gt;, significa que é um valor escolhido por você.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Is "Nome do Objeto" stopped?&lt;/span&gt; - Se o objeto estiver parado...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Is "Nome do Objeto" bouncing?&lt;/span&gt; -  Se o objeto estiver quicando...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Compare Speed of "Nome do Objeto" to a value&lt;/span&gt; - Se a velocidade do objeto for #...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Compare Acceleration of "Nome do Objeto" to a  value&lt;/span&gt; - Se a aceleração do objeto for #...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Compare Deceleration of "Nome do  Objeto" to a  value&lt;/span&gt; - Se a desaceleração do objeto for #...&lt;br /&gt;&lt;br /&gt;SubMenu "&lt;span style="font-weight: bold;"&gt;Path movement&lt;/span&gt;":&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Has "Nome do Objeto" reached a node in the path&lt;/span&gt; - Quando o objeto finalizar uma linha do trajeto...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Has "Nome do Objeto" reached the end of its path&lt;/span&gt; - Quando o objeto finalizar o trajeto...&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Path movement of "Nome do Objeto" has rechead a named node&lt;/span&gt; - Se o objeto tiver chegado a uma linha nomeada... (para nomear uma linha, você deve, no editor, clicar com o botão direito do mouse sobre ela e clicar em &lt;span style="font-weight: bold;"&gt;Set Name&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Eventos:&lt;/span&gt;&lt;br /&gt;Podem ser acessados no SubMenu "&lt;span style="font-weight: bold;"&gt;Movement&lt;/span&gt;".&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nota:&lt;/span&gt; Sempre que utilizar o  símbolo &lt;span style="font-weight: bold;"&gt;#&lt;/span&gt;, significa que é um  valor escolhido por você.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Stop&lt;/span&gt; - Parar o movimento. É utilizado para fazer colisões.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Start&lt;/span&gt; - Começar o movimento.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Bounce&lt;/span&gt; - Fazer o objeto quicar no movimento. Também pode ser utilizado para fazer colisões. Prefiro, aliás, fazer com Bounce do que com Stop.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reverse&lt;/span&gt; - Não vou mentir, não sei o que é. Testei para ver o que seria, mas não vi  nenhuma mudança. Favor, se alguém souber, mandar um e-mail.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Wrap Around Play Area&lt;/span&gt; - O objeto vai ser transportado para a margem oposta do Frame.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Set Speed...&lt;/span&gt; - Definir velocidade do movimento para #.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Set Maximum Speed...&lt;/span&gt; - Definir velocidade máxima do movimento para #.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Set acceleration...&lt;/span&gt; - Definir aceleração do movimento para #.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Set deceleration...&lt;/span&gt; - Definir desaceleração do movimento para #.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Set gravity...&lt;/span&gt; - Definir gravidade do movimento para #.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Set rotating speed ...&lt;/span&gt; - Definir velocidade de rotação do movimento para #.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Set authorised directions...&lt;/span&gt; - Definir direções autorizadas no movimento.&lt;br /&gt;&lt;br /&gt;SubMenu "&lt;span style="font-weight: bold;"&gt;Path movement&lt;/span&gt;":&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Goto node...&lt;/span&gt; - Ir para determinada linha (por nome).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Branch node...&lt;/span&gt; - Ramificar determinada linha (por nome).&lt;br /&gt;&lt;br /&gt;SubMenu "&lt;span style="font-weight: bold;"&gt;Multiple movements&lt;/span&gt;":&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Next movement&lt;/span&gt; - Próximo movimento do objeto.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Previous movement&lt;/span&gt; - Movimento anterior do objeto.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Select movement&lt;/span&gt; - Selecionar um movimento do objeto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;Finalizando:&lt;/span&gt;&lt;br /&gt;Você vai notar que quase todos esses movimentos tem pequenos bugs. Mas não se preocupe, o Movimento Pré-definido é só o começo. Como eu já falei, com o tempo, você vai adquirindo a exeriência necessária para fazer um Movimento Personalizado, que, se for programado corretamente, não tem erro nenhum.&lt;br /&gt;&lt;br /&gt;Falow o/&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5308026628783798063?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5308026628783798063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5308026628783798063'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/05/os-movimentos.html' title='Os Movimentos'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i39.tinypic.com/2wmncbs_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-1506080402873043224</id><published>2010-05-01T13:44:00.001-03:00</published><updated>2011-06-06T13:59:54.012-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Prioridades de um Objeto</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Introdução:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Assim como em um editor de imagens, os objetos no MMF2 tem uma prioridade: alguns ficam na frente, outros atrás... e nesse tutorial, vamos aprender a mudar essas prioridades, e algumas coisas que não podem ser mudadas. Assim como qualquer editor de imagens decente, o MMF2 tem uma &lt;span style="font-weight: bold;"&gt;Layer Toolbar&lt;/span&gt; (Janela de Camadas), que organiza os objetos em diferentes camadas, mas, infelizmente, essa ferramenta no Multimedia Fusion 2 é um pouco defeituosa.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Prioridades padrões:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Antes que possamos aprender a como mudar a prioridade dos objetos, ponham uma coisa na cabeça: muda-se mais a prioridade de objetos de um mesmo tipo (Active Objects, Backdrops, etc). Isso porque no MMF2, os objetos tem diferentes níveis de importância. Alguns objetos &lt;span style="font-weight: bold;"&gt;sempre&lt;/span&gt; ficam na frente de outros no MMF2 (alguns podem quebrar essa regra se forem colocados em uma layer, camada, superior). Alguns exemplos:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;•&lt;/span&gt; Active Objects sempre ficam na frente de Backdrops em uma mesma camada;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;•&lt;/span&gt; Active Objects sempre ficam na frente de Strings, não importando a camada;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;•&lt;/span&gt; VideoPro, DirectShow e SubApplication sempre ficam na frente de tudo, não importando a camada.&lt;br /&gt;&lt;br /&gt;Esses são &lt;span style="font-style: italic;"&gt;alguns &lt;/span&gt;exemplos de que me recordo agora. Com certeza, existem mais, muito mais. Mas isso você aprende com experiência, mechendo, testando, na marra. Foi assim que aprendi, e espero que você também o faça.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Mudando prioridades:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Existem quatro opções para você mudar a prioridade de um objeto em determinada camada. São elas: &lt;span style="font-style: italic;"&gt;To Front&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;To Back&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Forward One&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;Backward One&lt;/span&gt;. Elas podem ser acessadas quando se clica com o botão direito do mouse sobre o objeto em questão e entra-se no SubMenu "&lt;span style="font-weight: bold;"&gt;Order&lt;/span&gt;". Veja as funções de cada uma:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;• To Front:&lt;/span&gt; Move o objeto para a frente de todos os outros objetos de mesmo valor da camada. Quando usa-se isso em um Active Object, por exemplo, ele irá ficar na frente de todos os Active Objects. E quando usa-se em um Backdrop, ele ficará na frente de todos os Backdrops, mas não ficará na frente dos Active Objects, pois estes, tem um valor maior que o dele.&lt;br /&gt;&lt;img src="http://i44.tinypic.com/xduq86.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;• To Back:&lt;/span&gt; Move o objeto para trás de todos os outros objetos de mesmo valor da camada. Quase a mesma coisa do anterior, mas considere que, desta vez, se usássemos isso em um Active Object, esse Active Object iria para trás dos outros Active Objects, mas não iria para trás de Backdrops, pois o valor dos Backdrops é inferior ao dele, e ele nunca poderá ficar atrás de um Backdrop na mesma camada.&lt;br /&gt;&lt;img src="http://i39.tinypic.com/xc53xu.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;• Forward One:&lt;/span&gt; Faz o objeto subir um nível na lista de prioridade. Mas só um, ou seja, ele não ficará na frente de todos os objetos, mas apenas na frente do que logo em seguida ficava na frente dele na lista, o que estava um nível acima. Se existem três Active Objects, Active 1, Active 2 e Active 3, sendo que o Active 1 está lá atrás, o Active 2 na frente do Active 1 e atrás do Active 3, e o Active 3 na frente de todos, se eu uso &lt;span style="font-style: italic;"&gt;Forward One&lt;/span&gt; no Active 1, ele ficará na frente do Active 2, mas não do Active 3.&lt;br /&gt;&lt;img src="http://i44.tinypic.com/24glppi.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i44.tinypic.com/2dsfmtg.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;• Backward One:&lt;/span&gt; Faz o objeto descer um nível na lista de prioridade. Ele não ficará atrás de todos os outros de mesmo valor, como o To Back, apenas atrás do objeto que estava um nível antes na lista de prioridade. Se existem três Active Objects, Active 1, Active 2 e Active 3, sendo que o Active 1 está atrás de todos, o Active 2 na frente do Active 1 e atrás do Active 3, e o Active 3 na frente de todos, e eu uso &lt;span style="font-style: italic;"&gt;Backward One&lt;/span&gt; no Active 3, ele ficará atrás do Active 2, mas continuará na frente do Active 1.&lt;br /&gt;&lt;img src="http://i44.tinypic.com/285wmb.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i42.tinypic.com/1491qg5.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Layer Toolbar:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Indo em "&lt;span style="font-weight: bold;"&gt;View &amp;gt; Toolbars &amp;gt; Layer Toolbar&lt;/span&gt;" ou simplesmente apertando &lt;span style="font-weight: bold;"&gt;CTRL+K&lt;/span&gt;, o MMF2 abre uma janela chamada Layer Toolbar. A Layer Toolbar é onde você poderá organizar as camadas do Frame, determinar o que fica acima de quem, mesmo que tenha valor inferior (claro, existem exceções, como as Strings, que não importa em que camada estejam, sempre ficam atrás de Active Objects). Quem meche em programas de edição de imagens entende o que estou falando. Em cada camada você pode colocar determinados objetos, e quanto mais acima a camada estiver, maior é sua prioridade. Se você colocar um Backdrop na Camada 2, sendo que está está em cima da Camada 1, ainda que seja um Backdrop, ele ficará acima dos Active Objects. Veja:&lt;br /&gt;&lt;img src="http://i44.tinypic.com/nbf0nb.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Manipulando prioridades via eventos:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Apesar de não terem condições de prioridade, existem eventos, ações. Podem ser acessadas no SubMenu "&lt;span style="font-weight: bold;"&gt;Order&lt;/span&gt;", quando se vai escolher uma ação de um Active Object para determinada condição. Os eventos são:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;• Bring to front:&lt;/span&gt; Equivale ao To Front, só que por eventos.&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;• Brint to back:&lt;/span&gt; Equivale ao To Back, só que por eventos.&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;• Move behind object: &lt;/span&gt;Faz ficar atrás de determinado objeto.&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;• Move in front of object:&lt;/span&gt; Faz ficar na frente de determinado objeto.&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;• Move to layer:&lt;/span&gt; Muda para determinada layer (camada).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Finalizando:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Beleza, enrolei demais só pra ensinar a mudar a posição de objetos, mas acho que, pelo menos, agora vocês sabem fazer isso xD. Continuem lendo as matérias certinho :D.&lt;br /&gt;&lt;br /&gt;Flw.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-1506080402873043224?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1506080402873043224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1506080402873043224'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/05/prioridades-de-um-objeto.html' title='Prioridades de um Objeto'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i44.tinypic.com/xduq86_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-6011670730480324014</id><published>2010-03-28T12:22:00.000-03:00</published><updated>2010-03-28T12:27:18.276-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Atualizações</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Sei que estou devendo pra vocês muitas atualizações. Não vou usar a desculpa de que estou sem tempo, apesar de ser isso também, porque todo fim de semana estou aqui, no PC. É realmente por preguiça; ando tendo preguiça mesmo de escrever novos tutoriais. E peço desculpa por isso.&lt;br /&gt;&lt;br /&gt;É bem capaz que, ainda passemos algum tempo sem ter novas atualizações. Irei escrevendo-os a medida do possível, e pode, e vai demorar. Meu planejamento tem vários tutoriais novos, e levará tempo para escrevê-los. Vocês podem vê-los na página de tutoriais de MMF2; são aqueles que tem o título, mas não tem o link. São esses que pretendo escrever.&lt;br /&gt;&lt;br /&gt;Mais uma vez, peço desculpas. E só para vocês saberem, nunca, NUNCA vou abandonar o blog. Ainda que ele passe muito tempo sem atualizações, não significa que eu o abandonei. E, se um dia o fizer, o que não pretendo, deixarei uma mensagem de despedida na página principal, mas todo o conteúdo continuará aí para quem quiser aprender.&lt;br /&gt;&lt;br /&gt;Falow o/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-6011670730480324014?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/6011670730480324014/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/03/atualizacoes.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6011670730480324014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6011670730480324014'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/03/atualizacoes.html' title='Atualizações'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-4695102146804667585</id><published>2010-03-28T12:16:00.000-03:00</published><updated>2010-03-28T12:22:15.451-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Engines MMF2'/><title type='text'>Engine de Menu Rolante</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Autor:&lt;/span&gt; Eskyz&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Descrição:&lt;/span&gt; Depois de ver uma engine de menu apontado por setas do Sonic ZK, tive vontade de fazer algo parecido. Daí pensei em um menu rolante. O efeito é bem bonito, a bolinha vai deslizando até a opção. Nessa engine, não usamos Counters, apenas uma variável para fazer a bolinha rolar, e para selecionar a opção, utilizamos a sua posição Y.&lt;br /&gt;&lt;br /&gt;É bem fácil dar &lt;span style="font-weight: bold;"&gt;CTRL+C&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;CTRL+V&lt;/span&gt; e dizer que fez um jogo. Mas se você quer realmente aprender, se você quer mesmo ser um criador de jogos, e não só um noob que junta engines e diz que faz jogos, leia e releia os comentários, procure entender todos os eventos, e tente fazer sozinho. É mais trabalhoso, mas pelo menos, você que fez. Além do mais, uma vez que tenha entendido como funciona, poderá customizar como quiser.&lt;br /&gt;&lt;br /&gt;Independente de dar &lt;span style="font-weight: bold;"&gt;CTRL+C&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;CTRL+V&lt;/span&gt; ou ler a engine, por favor me dê créditos. Eu perdi tempo fazendo essa engine, perdi tempo programando, comentando, tempo que eu podia estar fazendo algo pra mim. Então peço que, por favor que, se usar, dê créditos. Apesar de que, sei que isso é inútil, afinal, a maioria das pessoas hoje é maior cara de pau :\. Olha, rimou =D.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Download:&lt;/span&gt; &lt;a href="http://www.mediafire.com/?mk2jytzakkd" target="_blank"&gt;MediaFire&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-4695102146804667585?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4695102146804667585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4695102146804667585'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/03/engine-de-menu-rolante.html' title='Engine de Menu Rolante'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-578774718506799980</id><published>2010-03-28T12:09:00.000-03:00</published><updated>2010-03-28T12:22:35.507-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Engines MMF2'/><title type='text'>SonicBiel Engines</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Descrição:&lt;/span&gt;&lt;br /&gt;Fiquei com preguiça de postar uma a uma hehe... Então, vamo lá!&lt;br /&gt;&lt;br /&gt;Esse é um pacote com seis engines feitas pelo nosso amigo do fórum Sonic Biel, ou Sonic ZK. Todas abordam o básico de funções importantíssimas para novatos no MMF2. Então, se você é novato, não deixe de baixar esse pacote hihi. E tenha ética, e se usar, dê créditos ao Sonic ZK. Olha, rimou. o.o&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Engines que o pacote contém:&lt;/span&gt;&lt;br /&gt;* System Tray Object&lt;br /&gt;* Grupos de Eventos&lt;br /&gt;* Engine de Save Game&lt;br /&gt;* Engine de PopUp Menu&lt;br /&gt;* Engine de Menu por Teclado&lt;br /&gt;* Engine de Global Values&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Download:&lt;/span&gt; &lt;a href="http://www.mediafire.com/?gmfag5hgmmk" target="_blank"&gt;MediaFire&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-578774718506799980?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/578774718506799980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/578774718506799980'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/03/sonicbiel-engines.html' title='SonicBiel Engines'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-8619064164946789735</id><published>2010-03-26T21:42:00.000-03:00</published><updated>2010-03-26T22:07:26.206-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Fórmulas Matemáticas</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Introdução:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;MMF2 é pura matemática e física. Para fazer algo decente no MMF2, você tem que trabalhar com matemática. É isso aí, se quer ser um bom programador, pode ir deixando de dormir durante a aula de matemática. Mentira, não dá pra dispensar a sonequinha né? Aula de matemática foi feita para se dormir mesmo. Aqui, vou estar dando de mão beijada algumas fórmulas matemáticas pra você aplicar nos seus jogos. E já sabe: se usar, dá créditos hem?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Barra em Active: - by Eskyz&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;(Always &gt; Set XScale ou Set YScale  to...)&lt;/span&gt;&lt;br /&gt;(((&lt;span style="color: rgb(51, 51, 255);"&gt;value&lt;/span&gt;( &lt;span style="color: rgb(153, 51, 153);"&gt;"Counter"&lt;/span&gt; )+&lt;span style="color: rgb(255, 0, 0);"&gt;0.0&lt;/span&gt;)/(&lt;span style="color: rgb(51, 51, 255);"&gt;maxvalue&lt;/span&gt;( &lt;span style="color: rgb(153, 51, 153);"&gt;"Counter"&lt;/span&gt; )+&lt;span style="color: rgb(255, 0, 0);"&gt;0.0&lt;/span&gt;))*&lt;span style="color: rgb(255, 0, 0);"&gt;100&lt;/span&gt;)/&lt;span style="color: rgb(255, 0, 0);"&gt;100&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Explicando: para achar-se o valor em porcentagem de um número, deve-se dividir o valor atual pelo valor total, e depois multiplicar o resultado por cem. Adicionamos 0.0 para quebrar os números; isso é coisa do MMF2. Então, dividimos o resultado dessa operação por 100, porque o tamanho normal da barra é 1. Ou seja, a escala vai de 0 a 1. Aliás, vai mais, mas se passar disso, ficará distorcido.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mostrar Porcentagem: - by Eskyz (Always &gt; Set Counter ou algo assim to...)&lt;/span&gt;&lt;br /&gt;((&lt;span style="color: rgb(51, 51, 255);"&gt;value&lt;/span&gt;( &lt;span style="color: rgb(153, 51, 153);"&gt;"Counter"&lt;/span&gt; )+&lt;span style="color: rgb(255, 0, 0);"&gt;0.0&lt;/span&gt;)/(&lt;span style="color: rgb(51, 51, 255);"&gt;maxvalue&lt;/span&gt;(  &lt;span style="color: rgb(153, 51, 153);"&gt;"Counter"&lt;/span&gt; ))+&lt;span style="color: rgb(255, 0, 0);"&gt;0.0&lt;/span&gt;)*&lt;span style="color: rgb(255, 0, 0);"&gt;100&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-style: italic;"&gt;Explicando: é a mesma lógica da barra em Active, só que, dessa vez, não dividimos por 100, porque queremos o valor em porcentagem (de 0 a 100, e não de 0 a 1).&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-8619064164946789735?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8619064164946789735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/8619064164946789735'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/03/formulas-matematicas.html' title='Fórmulas Matemáticas'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-3612886925859509142</id><published>2010-03-26T21:41:00.000-03:00</published><updated>2010-03-26T21:42:31.618-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sprites'/><title type='text'>Sprites de DBZ</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://i40.tinypic.com/23lfjwk.png" target="_blank"&gt;Vegetto&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-3612886925859509142?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/3612886925859509142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/3612886925859509142'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/03/sprites-de-dbz.html' title='Sprites de DBZ'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-7829601029214017953</id><published>2010-01-31T18:03:00.000-02:00</published><updated>2010-01-31T18:05:30.613-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>Blog Diário, Projeto de Verdade</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Éeh... Ok. A partir de hoje, esse blog vai ser só um diário de desenvolvimento. Esqueçam o fórum; ele não vai rolar. Só eu vou escrever por aqui. Porque é um "diário" meu. Conteúdo bom mesmo, vai ser no nosso novo projeto. A equipe vai ser a mesma, só que com um novo membro, o Skilo. Huhuh.&lt;br /&gt;&lt;br /&gt;É isso, depois posto o link. As postagens aqui vão continuar normal. Eu escrevo um tuto, eu posto. Só que esse não vai ser um projeto "sério".&lt;br /&gt;&lt;br /&gt;Falow o/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-7829601029214017953?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/7829601029214017953/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/blog-diario-projeto-de-verdade.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7829601029214017953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7829601029214017953'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/blog-diario-projeto-de-verdade.html' title='Blog Diário, Projeto de Verdade'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-7768497548420176318</id><published>2010-01-30T13:42:00.001-02:00</published><updated>2010-01-30T13:42:36.910-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Avisos'/><title type='text'>PMO Atualizado</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Atualizei a engine de &lt;a href="http://mmfmakers.blogspot.com/2009/12/engine-platform-movement-object.html"&gt;Platform Movement Object&lt;/a&gt;. Só uma besteirinha na animação XD&lt;br /&gt;&lt;br /&gt;Falow o/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-7768497548420176318?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/7768497548420176318/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/pmo-atualizado.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7768497548420176318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7768497548420176318'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/pmo-atualizado.html' title='PMO Atualizado'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-7571013375858352529</id><published>2010-01-26T18:38:00.000-02:00</published><updated>2010-01-29T21:06:43.752-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CodigosGML'/><title type='text'>date_create_datetime()</title><content type='html'>&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Nome da função:&lt;/span&gt; date_create_datetime(year, month, day , hour , minute , second)&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Tipo:&lt;/span&gt;  &lt;a href="http://mmfmakers.blogspot.com/2010/01/construtor.html"&gt;Construtor&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Descrição:&lt;/span&gt;   Cria uma variavel do tipo "datetime" usando as variáveis : &lt;span style="font-style: italic;"&gt;year&lt;/span&gt;, equivale ao ano, month, equivale ao mês,&lt;span style="font-style: italic;"&gt; day&lt;/span&gt;, equivale ao dia, &lt;span style="font-style: italic;"&gt;hour&lt;/span&gt;, equivalente a hora, &lt;span style="font-style: italic;"&gt;minute&lt;/span&gt;, equivalente aos minutos e &lt;span style="font-style: italic;"&gt;second&lt;/span&gt;, equivalente aos segundos.&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Exemplo:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;minhaDataEHora = date_create_datetime(2002,10, 21,13,12,59);&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-7571013375858352529?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7571013375858352529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7571013375858352529'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/datecreatedatetime.html' title='date_create_datetime()'/><author><name>Rafael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-9190009573108902450</id><published>2010-01-26T18:30:00.000-02:00</published><updated>2010-01-29T21:06:43.753-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CodigosGML'/><title type='text'>date_compare_datetime()</title><content type='html'>&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Nome da função:&lt;/span&gt; date_compare_datetime(&lt;span style="font-style: italic;"&gt;date1, date2&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Tipo:&lt;/span&gt; &lt;a href="http://mmfmakers.blogspot.com/2010/01/retornavel.html"&gt;Retornavel&lt;/a&gt; , &lt;a href="http://mmfmakers.blogspot.com/2010/01/necessita-de-argumento.html"&gt;Necessita de argumento&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Descrição:&lt;/span&gt;   Recebe duas variáveis, precisam ser datas com horas (&lt;span style="font-weight: bold;"&gt;datetime&lt;/span&gt;), logo, as variaveis precisam conter o resultado da função &lt;a href="http://mmfmakers.blogspot.com/2010/01/datecreatedatetime.html"&gt;date_create_datetime()&lt;/a&gt; . Ela retorna &lt;span style="font-weight: bold;"&gt;1&lt;/span&gt;  caso a primeira data seja maior que a segunda e &lt;span style="font-weight: bold;"&gt;-1&lt;/span&gt; caso a primeira seja menor do que a segunda. Caso ambos sejam iguais retorna &lt;span style="font-weight: bold;"&gt;0&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;NOTA: Essa função compara &lt;span style="font-weight: bold;"&gt;datetime&lt;/span&gt; ´s. Uma variável date tem dia e hora. Exite também a variável &lt;span style="font-weight: bold;"&gt;date&lt;/span&gt;, com dias, e&lt;span style="font-weight: bold;"&gt; time&lt;/span&gt;, somente horas.&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Exemplo:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;data1 = date_create_datetime(1999,11,19,10,11,00);&lt;br /&gt;data2 = date_create_datetime(1999,12,10,10,11,00);&lt;br /&gt;qualDataMaior = date_compare_datetime(data1,data2);&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;span style="font-style: italic;"&gt;o valor de qualDataMaior será: -1&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-9190009573108902450?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/9190009573108902450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/9190009573108902450'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/datecomparedatetime.html' title='date_compare_datetime()'/><author><name>Rafael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-2444630042413603062</id><published>2010-01-26T18:18:00.001-02:00</published><updated>2010-01-29T13:44:57.643-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CodigosGML'/><title type='text'>Construtor</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;Um construtor cria um objeto&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;O construtor atribui a uma determinada variável todas as informações de um objeto. Variáveis desse tipo são necessárias para a execução de algumas funções. As variáveis criadas com construtores só podem ser modificadas por meio de funções do mesmo tipo.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold;"&gt;Exemplo:&lt;/span&gt;&lt;br /&gt;Algumas funções &lt;span style="font-style: italic;"&gt;date_&lt;/span&gt; utilizam variavéis do tipo data. Esse tipo de variável é criado por meio de um construtor.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-2444630042413603062?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2444630042413603062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2444630042413603062'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/construtor.html' title='Construtor'/><author><name>Rafael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-3326423343716939921</id><published>2010-01-26T18:18:00.000-02:00</published><updated>2010-01-29T13:44:51.798-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CodigosGML'/><title type='text'>date_create_date()</title><content type='html'>&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Nome da função:&lt;/span&gt; date_create_date(year, month, day)&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Tipo:&lt;/span&gt;  &lt;a href="http://mmfmakers.blogspot.com/2010/01/construtor.html"&gt;Construtor&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Descrição:&lt;/span&gt;   Cria uma variavel do tipo "date" usando as variáveis : &lt;span style="font-style: italic;"&gt;year&lt;/span&gt;, equivale ao ano, month, equivale ao mês, e day, equivale ao dia.&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Exemplo:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;minhaData = date_create_date(2009,12, 31);&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-3326423343716939921?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/3326423343716939921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/3326423343716939921'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/datecreatedate.html' title='date_create_date()'/><author><name>Rafael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-1415517175896794715</id><published>2010-01-26T16:04:00.000-02:00</published><updated>2010-01-29T13:44:45.532-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CodigosGML'/><title type='text'>date_compare_date()</title><content type='html'>&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Nome da função:&lt;/span&gt; date_compare_date(&lt;span style="font-style: italic;"&gt;date1, date2&lt;/span&gt;)&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Tipo:&lt;/span&gt; &lt;a href="http://mmfmakers.blogspot.com/2010/01/retornavel.html"&gt;Retornavel&lt;/a&gt; , &lt;a href="http://mmfmakers.blogspot.com/2010/01/necessita-de-argumento.html"&gt;Necessita de argumento&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Descrição:&lt;/span&gt;   Recebe duas variáveis, precisam ser datas, logo, as variaveis precisam conter o resultado da função &lt;a href="http://mmfmakers.blogspot.com/2010/01/datecreatedate.html"&gt;date_create_date()&lt;/a&gt;. Ela retorna &lt;span style="font-weight: bold;"&gt;1&lt;/span&gt;  caso a primeira data seja maior que a segunda e &lt;span style="font-weight: bold;"&gt;-1&lt;/span&gt; caso a primeira seja menor do que a segunda. Caso ambos sejam iguais retorna &lt;span style="font-weight: bold;"&gt;0&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;NOTA: Essa função compara &lt;span style="font-weight: bold;"&gt;date&lt;/span&gt; ´s. Uma variável date tem ano, mes e dia. Exite também a variável &lt;span style="font-weight: bold;"&gt;datetime&lt;/span&gt;, com dia e hora, e&lt;span style="font-weight: bold;"&gt; time&lt;/span&gt;, somente horas.&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Exemplo:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;data1 = date_create_date(1999,11,19);&lt;br /&gt;data2 = date_create_date(1999,12,10);&lt;br /&gt;qualDataMaior = date_compare_date(data1,data2);&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;span style="font-style: italic;"&gt;o valor de qualDataMaior será: -1&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-1415517175896794715?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1415517175896794715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1415517175896794715'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/datecomparedate.html' title='date_compare_date()'/><author><name>Rafael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-4025979789139983924</id><published>2010-01-26T15:34:00.001-02:00</published><updated>2010-01-29T13:44:40.126-02:00</updated><title type='text'>Necessita de argumento</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic;"&gt;Essa função necessita de um valor para executar suas funções.&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;Uma função desse tipo necessita de um argumento, variável, que é inserida dentro dos parênteses. Em caso de múltiplos argumentos eles são separados por vírgula.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Exemplo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;myFunc( x, y, hspeed);&lt;br /&gt;&lt;span style="font-style: italic;"&gt;myFunc recebe os valores, x,y e hspeed (padrões do game maker).&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-4025979789139983924?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4025979789139983924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4025979789139983924'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/necessita-de-argumento.html' title='Necessita de argumento'/><author><name>Rafael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5099794890106920955</id><published>2010-01-26T15:17:00.000-02:00</published><updated>2010-01-29T13:44:32.947-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CodigosGML'/><title type='text'>Retornável</title><content type='html'>&lt;div style="text-align: center; font-style: italic;"&gt;Esse tipo de função retorna um valor.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;Elas normalmente necessitam ser atribuidas a uma variável. Caso o contrário, o valor não será atribuido a lugar nenhum e, logo, ele irá lançar erros.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5099794890106920955?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5099794890106920955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5099794890106920955'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/retornavel.html' title='Retornável'/><author><name>Rafael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-7574005293820112843</id><published>2010-01-26T14:57:00.000-02:00</published><updated>2010-01-29T13:44:18.522-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CodigosGML'/><title type='text'>abs()</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Nome da função:&lt;/span&gt; abs( &lt;span style="font-style: italic;"&gt;valor&lt;/span&gt; );&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Tipo:&lt;/span&gt; &lt;a href="http://mmfmakers.blogspot.com/2010/01/retornavel.html"&gt;Retornavel&lt;/a&gt; , &lt;a href="http://mmfmakers.blogspot.com/2010/01/necessita-de-argumento.html"&gt;Necessita de argumento&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Descrição:&lt;/span&gt;  Essa função recebe uma variável, &lt;span style="font-style: italic;"&gt;valor&lt;/span&gt;, e retorna o valor absoluto dele. Valor absoluto é aquele não-negativo.&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Exemplo:&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;blockquote&gt;velAtual = abs( hspeed );&lt;br /&gt;variável  = função( variável );&lt;br /&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-7574005293820112843?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7574005293820112843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7574005293820112843'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/abs.html' title='abs()'/><author><name>Rafael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-9017016651287716916</id><published>2010-01-25T21:27:00.000-02:00</published><updated>2010-01-26T19:05:33.183-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CodigosGML'/><title type='text'>Banco de Códigos de GML</title><content type='html'>&lt;span style="font-weight: bold;font-size:180%;" &gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Banco de Códigos de GML&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;por Untitled&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;O que é um banco de códigos?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;É uma ferramenta que está sendo desenvolvida pela MMFM. É uma lista onde você poderá consultar todo e qualquer código do game maker.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Quando fica pronto?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Se você olhar a lista... vai ver que ela é enorme. Na verdade são exatamente 21 páginas A4, cada uma dessas linhas terá um post no blog e eles serão linkados aqui.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;O que teremos dentro de cada post?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Uma breve descrição, o que ela retorna, o tipo dela, seus argumentos e um exemplo de como podemos utilizá-la!&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255);font-size:130%;" &gt;Como será feita?&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;A ordem de produção é alfabética.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# A #&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;a href="http://mmfmakers.blogspot.com/2010/01/abs.html"&gt;abs()&lt;/a&gt;&lt;br /&gt;arccos()&lt;br /&gt;arcsin()&lt;br /&gt;arctan()&lt;br /&gt;arctan2() &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# B #&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;background_add()&lt;br /&gt;background_add_alpha()&lt;br /&gt;background_assign()&lt;br /&gt;background_create_color()&lt;br /&gt;background_create_from_screen()&lt;br /&gt;background_create_from_surface()&lt;br /&gt;background_create_gradient()&lt;br /&gt;background_delete()&lt;br /&gt;background_duplicate()&lt;br /&gt;background_exists()&lt;br /&gt;background_get_height()&lt;br /&gt;background_get_name()&lt;br /&gt;background_get_preload()&lt;br /&gt;background_get_smooth()&lt;br /&gt;background_get_texture()&lt;br /&gt;background_get_transparent()&lt;br /&gt;background_get_width()&lt;br /&gt;background_replace()&lt;br /&gt;background_replace_alpha()&lt;br /&gt;background_save()&lt;br /&gt;background_set_alpha_from_background() &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center; line-height: normal;" align="center"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# C #&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 0.0001pt; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;cd_close_door()&lt;br /&gt;cd_init()&lt;br /&gt;cd_length()&lt;br /&gt;cd_number()&lt;br /&gt;cd_open_door()&lt;br /&gt;cd_pause()&lt;br /&gt;cd_paused()&lt;br /&gt;cd_play()&lt;br /&gt;cd_playing()&lt;br /&gt;cd_position()&lt;br /&gt;cd_present()&lt;br /&gt;cd_resume()&lt;br /&gt;cd_set_position()&lt;br /&gt;cd_set_track_position()&lt;br /&gt;cd_stop()&lt;br /&gt;cd_track()&lt;br /&gt;cd_track_length()&lt;br /&gt;cd_track_position()&lt;br /&gt;ceil()&lt;br /&gt;choose()&lt;br /&gt;chr()&lt;br /&gt;clipboard_get_text()&lt;br /&gt;clipboard_has_text()&lt;br /&gt;clipboard_set_text()&lt;br /&gt;collision_circle()&lt;br /&gt;collision_ellipse()&lt;br /&gt;collision_line()&lt;br /&gt;collision_point()&lt;br /&gt;collision_rectangle()&lt;br /&gt;color_get_blue()&lt;br /&gt;color_get_green()&lt;br /&gt;color_get_hue()&lt;br /&gt;color_get_red()&lt;br /&gt;color_get_saturation()&lt;br /&gt;color_get_value()&lt;br /&gt;cos() &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: center; line-height: normal;" align="center"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# D #&lt;/span&gt;&lt;/b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;#D# #&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;d3d_draw_block()&lt;br /&gt;d3d_draw_cone()&lt;br /&gt;d3d_draw_cylinder()&lt;br /&gt;d3d_draw_ellipsoid()&lt;br /&gt;d3d_draw_floor()&lt;br /&gt;d3d_draw_wall()&lt;br /&gt;d3d_end()&lt;br /&gt;d3d_light_define_direction()&lt;br /&gt;d3d_light_define_point()&lt;br /&gt;d3d_light_enable()&lt;br /&gt;d3d_model_block()&lt;br /&gt;d3d_model_clear()&lt;br /&gt;d3d_model_cone()&lt;br /&gt;d3d_model_create()&lt;br /&gt;d3d_model_cylinder()&lt;br /&gt;d3d_model_destroy()&lt;br /&gt;d3d_model_draw()&lt;br /&gt;d3d_model_ellipsoid()&lt;br /&gt;d3d_model_floor()&lt;br /&gt;d3d_model_load()&lt;br /&gt;d3d_model_primitive_begin()&lt;br /&gt;d3d_model_primitive_end()&lt;br /&gt;d3d_model_save()&lt;br /&gt;d3d_model_vertex()&lt;br /&gt;d3d_model_vertex_color()&lt;br /&gt;d3d_model_vertex_normal()&lt;br /&gt;d3d_model_vertex_normal_color()&lt;br /&gt;d3d_model_vertex_normal_texture()&lt;br /&gt;d3d_model_vertex_normal_texture_color()&lt;br /&gt;d3d_model_wall()&lt;br /&gt;d3d_primitive_begin()&lt;br /&gt;d3d_primitive_begin_texture()&lt;br /&gt;d3d_primitive_end()&lt;br /&gt;d3d_set_culling()&lt;br /&gt;d3d_set_depth()&lt;br /&gt;d3d_set_fog()&lt;br /&gt;d3d_set_hidden()&lt;br /&gt;d3d_set_lighting()&lt;br /&gt;d3d_set_perspective()&lt;br /&gt;d3d_set_ jection()&lt;br /&gt;d3d_set_ jection_ext()&lt;br /&gt;d3d_set_ jection_ortho()&lt;br /&gt;d3d_set_ jection_perspective()&lt;br /&gt;d3d_set_shading()&lt;br /&gt;d3d_start()&lt;br /&gt;d3d_transform_add_rotation_axis()&lt;br /&gt;d3d_transform_add_rotation_x()&lt;br /&gt;d3d_transform_add_rotation_y()&lt;br /&gt;d3d_transform_add_rotation_z()&lt;br /&gt;d3d_transform_add_scaling()&lt;br /&gt;d3d_transform_add_translation()&lt;br /&gt;d3d_transform_set_identity()&lt;br /&gt;d3d_transform_set_rotation_axis()&lt;br /&gt;d3d_transform_set_rotation_x()&lt;br /&gt;d3d_transform_set_rotation_y()&lt;br /&gt;d3d_transform_set_rotation_z()&lt;br /&gt;d3d_transform_set_scaling()&lt;br /&gt;d3d_transform_set_translation()&lt;br /&gt;d3d_transform_stack_clear()&lt;br /&gt;d3d_transform_stack_discard() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;d3d_transform_stack_empty() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;d3d_transform_stack_pop() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;d3d_transform_stack_push() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;d3d_transform_stack_top() &lt;span style=""&gt; &lt;/span&gt;javascript:void(0)&lt;br /&gt;d3d_vertex() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;d3d_vertex_color() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;d3d_vertex_normal() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;d3d_vertex_normal_color() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;d3d_vertex_normal_texture() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;d3d_vertex_normal_texture_color() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;d3d_vertex_texture() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;d3d_vertex_texture_color()&lt;br /&gt;&lt;br /&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;# DA #&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/01/datecomparedate.html"&gt;date_compare_date()&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/01/datecomparedatetime.html"&gt;date_compare_datetime()&lt;/a&gt;&lt;br /&gt;date_compare_time()&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/01/datecreatedate.html"&gt;date_create_date()&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/01/datecreatedatetime.html"&gt;date_create_datetime()&lt;/a&gt;&lt;br /&gt;date_create_time()&lt;br /&gt;date_current_date()&lt;br /&gt;date_current_datetime()&lt;br /&gt;date_current_time()&lt;br /&gt;date_date_of()&lt;br /&gt;date_date_string()&lt;br /&gt;date_datetime_string()&lt;br /&gt;date_day_span()&lt;br /&gt;date_days_in_month()&lt;br /&gt;date_days_in_year()&lt;br /&gt;date_get_day()&lt;br /&gt;date_get_day_of_year()&lt;br /&gt;date_get_hour()&lt;br /&gt;date_get_hour_of_year()&lt;br /&gt;date_get_minute()&lt;br /&gt;date_get_minute_of_year()&lt;br /&gt;date_get_month()&lt;br /&gt;date_get_second()&lt;br /&gt;date_get_second_of_year()&lt;br /&gt;date_get_week()&lt;br /&gt;date_get_weekday()&lt;br /&gt;date_get_year()&lt;br /&gt;date_hour_span()&lt;br /&gt;date_inc_day()&lt;br /&gt;date_inc_hour()&lt;br /&gt;date_inc_minute()&lt;br /&gt;date_inc_month()&lt;br /&gt;date_inc_second()&lt;br /&gt;date_inc_week()&lt;br /&gt;date_inc_year()&lt;br /&gt;date_is_today()&lt;br /&gt;date_leap_year()&lt;br /&gt;date_minute_span()&lt;br /&gt;date_month_span()&lt;br /&gt;date_second_span()&lt;br /&gt;date_time_of()&lt;br /&gt;date_time_string()&lt;br /&gt;date_valid_date()&lt;br /&gt;date_valid_datetime()&lt;br /&gt;date_valid_time()&lt;br /&gt;date_week_span()&lt;br /&gt;date_year_span()&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;# DE #&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;degtorad()&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;# DI #&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;directory_create()&lt;br /&gt;directory_exists()&lt;br /&gt;discard_include_file()&lt;br /&gt;display_get_colordepth()&lt;br /&gt;display_get_frequency()&lt;br /&gt;display_get_height()&lt;br /&gt;display_get_width()&lt;br /&gt;display_mouse_get_x()&lt;br /&gt;display_mouse_get_y()&lt;br /&gt;display_mouse_set()&lt;br /&gt;display_reset()&lt;br /&gt;display_set_all() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;display_set_colordepth() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;display_set_frequency() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;display_set_size() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;display_test_all()&lt;br /&gt;distance_to_object()&lt;br /&gt;distance_to_point()&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;# DR #&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;draw_arrow()&lt;br /&gt;draw_background()&lt;br /&gt;draw_background_ext()&lt;br /&gt;draw_background_general()&lt;br /&gt;draw_background_part()&lt;br /&gt;draw_background_part_ext()&lt;br /&gt;draw_background_stretched()&lt;br /&gt;draw_background_stretched_ext()&lt;br /&gt;draw_background_tiled()&lt;br /&gt;draw_background_tiled_ext()&lt;br /&gt;draw_button()&lt;br /&gt;draw_circle()&lt;br /&gt;draw_circle_color()&lt;br /&gt;draw_clear()&lt;br /&gt;draw_clear_alpha()&lt;br /&gt;draw_ellipse()&lt;br /&gt;draw_ellipse_color()&lt;br /&gt;draw_get_alpha()&lt;br /&gt;draw_get_color()&lt;br /&gt;draw_getpixel()&lt;br /&gt;draw_healthbar()&lt;br /&gt;draw_highscore()&lt;br /&gt;draw_line()&lt;br /&gt;draw_line_color()&lt;br /&gt;draw_line_width()&lt;br /&gt;draw_line_width_color()&lt;br /&gt;draw_path()&lt;br /&gt;draw_point()&lt;br /&gt;draw_point_color()&lt;br /&gt;draw_primitive_begin()&lt;br /&gt;draw_primitive_begin_texture()&lt;br /&gt;draw_primitive_end()&lt;br /&gt;draw_rectangle()&lt;br /&gt;draw_rectangle_color()&lt;br /&gt;draw_roundrect()&lt;br /&gt;draw_roundrect_color()&lt;br /&gt;draw_set_alpha()&lt;br /&gt;draw_set_blend_mode()&lt;br /&gt;draw_set_blend_mode_ext()&lt;br /&gt;draw_set_circle_precision()&lt;br /&gt;draw_set_color()&lt;br /&gt;draw_set_font()&lt;br /&gt;draw_set_halign()&lt;br /&gt;draw_set_valign()&lt;br /&gt;draw_sprite()&lt;br /&gt;draw_sprite_ext()&lt;br /&gt;draw_sprite_general()&lt;br /&gt;draw_sprite_part()&lt;br /&gt;draw_sprite_part_ext()&lt;br /&gt;draw_sprite_stretched()&lt;br /&gt;draw_sprite_stretched_ext()&lt;br /&gt;draw_sprite_tiled()&lt;br /&gt;draw_sprite_tiled_ext()&lt;br /&gt;draw_surface()&lt;br /&gt;draw_surface_ext()&lt;br /&gt;draw_surface_general()&lt;br /&gt;draw_surface_part()&lt;br /&gt;draw_surface_part_ext()&lt;br /&gt;draw_surface_stretched()&lt;br /&gt;draw_surface_stretched_ext()&lt;br /&gt;draw_surface_tiled()&lt;br /&gt;draw_surface_tiled_ext()&lt;br /&gt;draw_text()&lt;br /&gt;draw_text_color()&lt;br /&gt;draw_text_ext()&lt;br /&gt;draw_text_ext_color()&lt;br /&gt;draw_text_ext_transformed()&lt;br /&gt;draw_text_ext_transformed_color()&lt;br /&gt;draw_text_transformed()&lt;br /&gt;draw_text_transformed_color()&lt;br /&gt;draw_triangle()&lt;br /&gt;draw_triangle_color()&lt;br /&gt;draw_vertex()&lt;br /&gt;draw_vertex_color()&lt;br /&gt;draw_vertex_texture()&lt;br /&gt;draw_vertex_texture_color()&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;# DS #&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;ds_grid_add() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_add_disk() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_add_grid_region() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_add_region() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_clear() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_copy() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_create() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_destroy() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_get() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_get_disk_max() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_get_disk_mean() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_get_disk_min() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_get_disk_sum() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_get_max() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_get_mean() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_get_min() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_get_sum() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_height() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_multiply() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_multiply_disk() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_multiply_grid_region() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_multiply_region() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_read() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_resize() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_set() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_set_disk() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_set_grid_region() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_set_region() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_shuffle() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_value_disk_exists() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_value_disk_x() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_value_disk_y() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_value_exists() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_value_x() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_value_y() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_width() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_grid_write() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_add() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_clear() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_copy() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_create() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_delete() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_destroy() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_empty() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_find_index() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_find_value() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_insert() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_read() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_replace() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_shuffle() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_size() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_sort() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_list_write() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_add() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_clear() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_copy() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_create() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_delete() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_destroy() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_empty() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_exists() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_find_first() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_find_last() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_find_next() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_find_previous() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_find_value() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_read() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_replace() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_size() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_map_write() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_add() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_change_priority() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_clear() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_copy() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_create() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_delete_max() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_delete_min() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_delete_value() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_destroy() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_empty() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_find_max() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_find_min() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_find_priority() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_read() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_size() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_priority_write() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_queue_clear() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_queue_copy() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_queue_create() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_queue_dequeue() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_queue_destroy() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_queue_empty() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_queue_enqueue() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_queue_head() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_queue_read() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_queue_size() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_queue_tail() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_queue_write() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_set_precision() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_stack_clear() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_stack_copy() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_stack_create() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_stack_destroy() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_stack_empty() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_stack_pop() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_stack_push() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_stack_read() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_stack_size() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_stack_top() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;ds_stack_write() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# E #&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;effect_clear()&lt;br /&gt;effect_create_above()&lt;br /&gt;effect_create_below()&lt;br /&gt;environment_get_variable()&lt;br /&gt;event_inherited()&lt;br /&gt;event_perform()&lt;br /&gt;event_perform_object()&lt;br /&gt;event_user()&lt;br /&gt;execute_file()&lt;br /&gt;execute_ gram()&lt;br /&gt;execute_shell()&lt;br /&gt;execute_string()&lt;br /&gt;exp()&lt;br /&gt;export_include_file()&lt;br /&gt;export_include_file_location()&lt;br /&gt;external_call() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;external_define() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;external_free() &lt;span style=""&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# F #&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;file_attributes()&lt;br /&gt;file_bin_close()&lt;br /&gt;file_bin_open()&lt;br /&gt;file_bin_position()&lt;br /&gt;file_bin_read_byte()&lt;br /&gt;file_bin_rewrite()&lt;br /&gt;file_bin_seek()&lt;br /&gt;file_bin_size()&lt;br /&gt;file_bin_write_byte()&lt;br /&gt;file_copy()&lt;br /&gt;file_delete()&lt;br /&gt;file_exists()&lt;br /&gt;file_find_close()&lt;br /&gt;file_find_first()&lt;br /&gt;file_find_next()&lt;br /&gt;file_rename()&lt;br /&gt;file_text_close()&lt;br /&gt;file_text_eof()&lt;br /&gt;file_text_open_append()&lt;br /&gt;file_text_open_read()&lt;br /&gt;file_text_open_write()&lt;br /&gt;file_text_read_real()&lt;br /&gt;file_text_read_string()&lt;br /&gt;file_text_readln()&lt;br /&gt;file_text_write_real()&lt;br /&gt;file_text_write_string()&lt;br /&gt;file_text_writeln()&lt;br /&gt;filename_change_ext()&lt;br /&gt;filename_dir()&lt;br /&gt;filename_drive()&lt;br /&gt;filename_ext()&lt;br /&gt;filename_name()&lt;br /&gt;filename_path()&lt;br /&gt;floor()&lt;br /&gt;font_add()&lt;br /&gt;font_add_sprite()&lt;br /&gt;font_delete()&lt;br /&gt;font_exists()&lt;br /&gt;font_get_bold()&lt;br /&gt;font_get_first()&lt;br /&gt;font_get_fontname()&lt;br /&gt;font_get_italic()&lt;br /&gt;font_get_last()&lt;br /&gt;font_get_name()&lt;br /&gt;font_replace()&lt;br /&gt;font_replace_sprite()&lt;br /&gt;frac()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# G #&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;game_end()&lt;br /&gt;game_load()&lt;br /&gt;game_restart()&lt;br /&gt;game_save()&lt;br /&gt;get_color()&lt;br /&gt;get_directory()&lt;br /&gt;get_directory_alt()&lt;br /&gt;get_integer()&lt;br /&gt;get_open_filename()&lt;br /&gt;get_save_filename()&lt;br /&gt;get_string()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# H #&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;highscore_add()&lt;br /&gt;highscore_add_current()&lt;br /&gt;highscore_clear()&lt;br /&gt;highscore_name()&lt;br /&gt;highscore_set_background()&lt;br /&gt;highscore_set_border()&lt;br /&gt;highscore_set_colors()&lt;br /&gt;highscore_set_font()&lt;br /&gt;highscore_set_strings()&lt;br /&gt;highscore_show()&lt;br /&gt;highscore_show_ext()&lt;br /&gt;highscore_value()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# I #&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;ini_close()&lt;br /&gt;ini_key_delete()&lt;br /&gt;ini_key_exists()&lt;br /&gt;ini_open()&lt;br /&gt;ini_read_real()&lt;br /&gt;ini_read_string()&lt;br /&gt;ini_section_delete()&lt;br /&gt;ini_section_exists()&lt;br /&gt;ini_write_real()&lt;br /&gt;ini_write_string()&lt;br /&gt;instance_activate_all()&lt;br /&gt;instance_activate_object()&lt;br /&gt;instance_activate_region()&lt;br /&gt;instance_change()&lt;br /&gt;instance_copy()&lt;br /&gt;instance_create()&lt;br /&gt;instance_deactivate_all()&lt;br /&gt;instance_deactivate_object()&lt;br /&gt;instance_deactivate_region()&lt;br /&gt;instance_destroy()&lt;br /&gt;instance_exists()&lt;br /&gt;instance_find()&lt;br /&gt;instance_furthest()&lt;br /&gt;instance_nearest()&lt;br /&gt;instance_number()&lt;br /&gt;instance_place()&lt;br /&gt;instance_position()&lt;br /&gt;io_clear()&lt;br /&gt;io_handle()&lt;br /&gt;is_real()&lt;br /&gt;is_string()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# J #&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;joystick_axes()&lt;br /&gt;joystick_buttons()&lt;br /&gt;joystick_check_button()&lt;br /&gt;joystick_direction()&lt;br /&gt;joystick_exists()&lt;br /&gt;joystick_has_pov()&lt;br /&gt;joystick_name()&lt;br /&gt;joystick_pov()&lt;br /&gt;joystick_rpos()&lt;br /&gt;joystick_upos()&lt;br /&gt;joystick_vpos()&lt;br /&gt;joystick_xpos()&lt;br /&gt;joystick_ypos()&lt;br /&gt;joystick_zpos()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# K #&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;keyboard_check()&lt;br /&gt;keyboard_check_direct()&lt;br /&gt;keyboard_check_pressed()&lt;br /&gt;keyboard_check_released()&lt;br /&gt;keyboard_clear()&lt;br /&gt;keyboard_get_map()&lt;br /&gt;keyboard_get_numlock()&lt;br /&gt;keyboard_key_press()&lt;br /&gt;keyboard_key_released()&lt;br /&gt;keyboard_set_map()&lt;br /&gt;keyboard_set_numlock()&lt;br /&gt;keyboard_unset_map()&lt;br /&gt;keyboard_wait()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# L #&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;lengthdir_x()&lt;br /&gt;lengthdir_y()&lt;br /&gt;ln()&lt;br /&gt;load_info()&lt;br /&gt;log10()&lt;br /&gt;log2()&lt;br /&gt;logn()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# M #&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;make_color_hsv()&lt;br /&gt;make_color_rgb()&lt;br /&gt;max()&lt;br /&gt;MCI_command()&lt;br /&gt;mean()&lt;br /&gt;median()&lt;br /&gt;merge_color()&lt;br /&gt;message_alpha()&lt;br /&gt;message_background()&lt;br /&gt;message_button()&lt;br /&gt;message_button_font()&lt;br /&gt;message_caption()&lt;br /&gt;message_input_color()&lt;br /&gt;message_input_font()&lt;br /&gt;message_mouse_color()&lt;br /&gt;message_position()&lt;br /&gt;message_size()&lt;br /&gt;message_text_font()&lt;br /&gt;min()&lt;br /&gt;motion_add()&lt;br /&gt;motion_set()&lt;br /&gt;mouse_check_button()&lt;br /&gt;mouse_check_button_pressed()&lt;br /&gt;mouse_check_button_released()&lt;br /&gt;mouse_clear()&lt;br /&gt;mouse_wait()&lt;br /&gt;move_bounce_all()&lt;br /&gt;move_bounce_solid()&lt;br /&gt;move_contact_all()&lt;br /&gt;move_contact_solid()&lt;br /&gt;move_outside_all()&lt;br /&gt;move_outside_solid()&lt;br /&gt;move_random()&lt;br /&gt;move_snap()&lt;br /&gt;move_towards_point()&lt;br /&gt;move_wrap()&lt;br /&gt;mp_grid_add_cell()&lt;br /&gt;mp_grid_add_instances()&lt;br /&gt;mp_grid_add_rectangle()&lt;br /&gt;mp_grid_clear_all()&lt;br /&gt;mp_grid_clear_cell()&lt;br /&gt;mp_grid_clear_rectangle()&lt;br /&gt;mp_grid_create()&lt;br /&gt;mp_grid_destroy()&lt;br /&gt;mp_grid_draw()&lt;br /&gt;mp_grid_path()&lt;br /&gt;mp_linear_path()&lt;br /&gt;mp_linear_path_object()&lt;br /&gt;mp_linear_step()&lt;br /&gt;mp_linear_step_object()&lt;br /&gt;mp_potential_path()&lt;br /&gt;mp_potential_path_object()&lt;br /&gt;mp_potential_settings()&lt;br /&gt;mp_potential_step()&lt;br /&gt;mp_potential_step_object()&lt;br /&gt;mplay_connect_status()&lt;br /&gt;mplay_data_mode()&lt;br /&gt;mplay_data_read()&lt;br /&gt;mplay_data_write()&lt;br /&gt;mplay_end()&lt;br /&gt;mplay_init_ipx()&lt;br /&gt;mplay_init_modem()&lt;br /&gt;mplay_init_serial()&lt;br /&gt;mplay_init_tcpip()&lt;br /&gt;mplay_ipaddress()&lt;br /&gt;mplay_message_clear()&lt;br /&gt;mplay_message_count()&lt;br /&gt;mplay_message_id()&lt;br /&gt;mplay_message_name()&lt;br /&gt;mplay_message_player()&lt;br /&gt;mplay_message_receive()&lt;br /&gt;mplay_message_send()&lt;br /&gt;mplay_message_send_guaranteed()&lt;br /&gt;mplay_message_value()&lt;br /&gt;mplay_player_find()&lt;br /&gt;mplay_player_id()&lt;br /&gt;mplay_player_name()&lt;br /&gt;mplay_session_create()&lt;br /&gt;mplay_session_end()&lt;br /&gt;mplay_session_find()&lt;br /&gt;mplay_session_join()&lt;br /&gt;mplay_session_mode()&lt;br /&gt;mplay_session_name()&lt;br /&gt;mplay_session_status()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;s&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# N #&lt;/span&gt;&lt;/s&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# O #&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;object_add()&lt;br /&gt;object_delete()&lt;br /&gt;object_event_add()&lt;br /&gt;object_event_clear()&lt;br /&gt;object_exists()&lt;br /&gt;object_get_depth()&lt;br /&gt;object_get_mask()&lt;br /&gt;object_get_name()&lt;br /&gt;object_get_parent()&lt;br /&gt;object_get_persistent()&lt;br /&gt;object_get_solid()&lt;br /&gt;object_get_sprite()&lt;br /&gt;object_get_visible()&lt;br /&gt;object_is_ancestor()&lt;br /&gt;object_set_depth()&lt;br /&gt;object_set_mask()&lt;br /&gt;object_set_parent()&lt;br /&gt;object_set_persistent()&lt;br /&gt;object_set_solid()&lt;br /&gt;object_set_sprite()&lt;br /&gt;object_set_visible()&lt;br /&gt;ord()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# P #&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;parameter_count()&lt;br /&gt;parameter_string()&lt;br /&gt;part_attractor_clear()&lt;br /&gt;part_attractor_create()&lt;br /&gt;part_attractor_destroy()&lt;br /&gt;part_attractor_destroy_all()&lt;br /&gt;part_attractor_exists()&lt;br /&gt;part_attractor_force()&lt;br /&gt;part_attractor_position()&lt;br /&gt;part_changer_clear()&lt;br /&gt;part_changer_create()&lt;br /&gt;part_changer_destroy()&lt;br /&gt;part_changer_destroy_all()&lt;br /&gt;part_changer_exists()&lt;br /&gt;part_changer_kind()&lt;br /&gt;part_changer_region()&lt;br /&gt;part_changer_types()&lt;br /&gt;part_deflector_clear()&lt;br /&gt;part_deflector_create()&lt;br /&gt;part_deflector_destroy()&lt;br /&gt;part_deflector_destroy_all()&lt;br /&gt;part_deflector_exists()&lt;br /&gt;part_deflector_friction()&lt;br /&gt;part_deflector_kind()&lt;br /&gt;part_deflector_region()&lt;br /&gt;part_destroyer_clear()&lt;br /&gt;part_destroyer_create()&lt;br /&gt;part_destroyer_destroy()&lt;br /&gt;part_destroyer_destroy_all()&lt;br /&gt;part_destroyer_exists()&lt;br /&gt;part_destroyer_region()&lt;br /&gt;part_emitter_burst()&lt;br /&gt;part_emitter_clear()&lt;br /&gt;part_emitter_create()&lt;br /&gt;part_emitter_destroy()&lt;br /&gt;part_emitter_destroy_all()&lt;br /&gt;part_emitter_exists()&lt;br /&gt;part_emitter_region()&lt;br /&gt;part_emitter_stream()&lt;br /&gt;part_particles_clear()&lt;br /&gt;part_particles_count()&lt;br /&gt;part_particles_create()&lt;br /&gt;part_particles_create_color()&lt;br /&gt;part_system_automatic_draw()&lt;br /&gt;part_system_automatic_update()&lt;br /&gt;part_system_clear()&lt;br /&gt;part_system_create()&lt;br /&gt;part_system_depth()&lt;br /&gt;part_system_destroy()&lt;br /&gt;part_system_draw_order()&lt;br /&gt;part_system_drawit()&lt;br /&gt;part_system_exists()&lt;br /&gt;part_system_position()&lt;br /&gt;part_system_update()&lt;br /&gt;part_type_alpha1()&lt;br /&gt;part_type_alpha2()&lt;br /&gt;part_type_alpha3()&lt;br /&gt;part_type_blend()&lt;br /&gt;part_type_clear()&lt;br /&gt;part_type_color_hsv()&lt;br /&gt;part_type_color_mix()&lt;br /&gt;part_type_color_rgb()&lt;br /&gt;part_type_color1()&lt;br /&gt;part_type_color2()&lt;br /&gt;part_type_color3()&lt;br /&gt;part_type_create()&lt;br /&gt;part_type_death()&lt;br /&gt;part_type_destroy()&lt;br /&gt;part_type_direction()&lt;br /&gt;part_type_exists()&lt;br /&gt;part_type_gravity()&lt;br /&gt;part_type_life()&lt;br /&gt;part_type_orientation()&lt;br /&gt;part_type_scale()&lt;br /&gt;part_type_shape()&lt;br /&gt;part_type_size()&lt;br /&gt;part_type_speed()&lt;br /&gt;part_type_sprite()&lt;br /&gt;part_type_step()&lt;br /&gt;path_add()&lt;br /&gt;path_add_point()&lt;br /&gt;path_append()&lt;br /&gt;path_assign()&lt;br /&gt;path_change_point()&lt;br /&gt;path_clear_points()&lt;br /&gt;path_delete()&lt;br /&gt;path_delete_point()&lt;br /&gt;path_duplicate()&lt;br /&gt;path_end()&lt;br /&gt;path_exists()&lt;br /&gt;path_flip()&lt;br /&gt;path_get_closed()&lt;br /&gt;path_get_kind()&lt;br /&gt;path_get_length()&lt;br /&gt;path_get_name()&lt;br /&gt;path_get_number()&lt;br /&gt;path_get_point_speed()&lt;br /&gt;path_get_point_x()&lt;br /&gt;path_get_point_y()&lt;br /&gt;path_get_precision()&lt;br /&gt;path_get_speed()&lt;br /&gt;path_get_x()&lt;br /&gt;path_get_y()&lt;br /&gt;path_insert_point()&lt;br /&gt;path_mirror()&lt;br /&gt;path_reverse()&lt;br /&gt;path_rotate()&lt;br /&gt;path_scale()&lt;br /&gt;path_set_closed()&lt;br /&gt;path_set_kind()&lt;br /&gt;path_set_precision()&lt;br /&gt;path_shift()&lt;br /&gt;path_start()&lt;br /&gt;place_empty()&lt;br /&gt;place_free()&lt;br /&gt;place_meeting()&lt;br /&gt;place_snapped()&lt;br /&gt;point_direction() Calculate the angle from one point to another.&lt;br /&gt;point_distance() Calculate the distance between two points.&lt;br /&gt;position_change()&lt;br /&gt;position_destroy()&lt;br /&gt;position_empty()&lt;br /&gt;position_free()&lt;br /&gt;position_meeting()&lt;br /&gt;power()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;s&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# Q #&lt;/span&gt;&lt;/s&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# R #&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;radtodeg()&lt;br /&gt;random()&lt;br /&gt;real()&lt;br /&gt;room_set_background()&lt;br /&gt;room_set_background_color()&lt;br /&gt;room_set_caption()&lt;br /&gt;room_set_code()&lt;br /&gt;room_set_height()&lt;br /&gt;room_set_persistent()&lt;br /&gt;room_set_width().&lt;br /&gt;round()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# S #&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;screen_redraw()&lt;br /&gt;screen_refresh()&lt;br /&gt;set_automatic_draw()&lt;br /&gt;sign()&lt;br /&gt;sin()&lt;br /&gt;sqr()&lt;br /&gt;sqrt()&lt;br /&gt;string()&lt;br /&gt;string_char_at()&lt;br /&gt;string_copy()&lt;br /&gt;string_count()&lt;br /&gt;string_delete()&lt;br /&gt;string_digits()&lt;br /&gt;string_format()&lt;br /&gt;string_insert()&lt;br /&gt;string_letters()&lt;br /&gt;string_letters_digits()&lt;br /&gt;string_lower()&lt;br /&gt;string_pos()&lt;br /&gt;string_repeat()&lt;br /&gt;string_replace()&lt;br /&gt;string_replace_all()&lt;br /&gt;string_upper()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# T #&lt;/span&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;tan()&lt;br /&gt;tile_add()&lt;br /&gt;tile_delete()&lt;br /&gt;tile_exists()&lt;br /&gt;tile_get_x()&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b&gt;&lt;s&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# U #&lt;/span&gt;&lt;/s&gt;&lt;/b&gt;&lt;s&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/s&gt;&lt;b&gt;&lt;s&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# V #&lt;/span&gt;&lt;/s&gt;&lt;/b&gt;&lt;s&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/s&gt;&lt;b&gt;&lt;s&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# W #&lt;/span&gt;&lt;/s&gt;&lt;/b&gt;&lt;s&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/s&gt;&lt;b&gt;&lt;s&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# X #&lt;/span&gt;&lt;/s&gt;&lt;/b&gt;&lt;s&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/s&gt;&lt;b&gt;&lt;s&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# Y #&lt;/span&gt;&lt;/s&gt;&lt;/b&gt;&lt;s&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;&lt;/span&gt;&lt;/s&gt;&lt;b&gt;&lt;s&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:13.5pt;"  lang="EN-US" &gt;# Z #&lt;/span&gt;&lt;/s&gt;&lt;/b&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:12pt;"  lang="EN-US" &gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-9017016651287716916?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/9017016651287716916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/9017016651287716916'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/banco-de-codigos-de-gml.html' title='Banco de Códigos de GML'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-2846877259248724498</id><published>2010-01-23T22:31:00.001-02:00</published><updated>2011-01-21T18:47:31.447-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Flags</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(51, 51, 255);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;Flags&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;por Eskyz&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;Introdução:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Flags são alavancas; podem estar ligadas ou desligadas. Imagine uma lanterna. Quando você aperta o botão uma vez, ela liga. Quando aperta de novo, ela desliga. É, assim é uma flag. Ainda no exemplo da lanterna, se a flag estiver ligada vai emitir luz, e se estiver desligada não vai emitir luz. Bem simples né?&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-size:180%;color:red;"  &gt;&lt;span style="font-weight: bold;"&gt;Matéria:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Flags são alavancas internas de um &lt;span style="font-weight: bold;"&gt;Active Object&lt;/span&gt;. Existem infinitas flags, cada uma representada por um número. Existe a &lt;span style="font-style: italic;"&gt;Flag 0&lt;/span&gt;, a &lt;span style="font-style: italic;"&gt;Flag 1&lt;/span&gt;, a &lt;span style="font-style: italic;"&gt;Flag 2&lt;/span&gt;, e assim vai. Relacionado a flags, temos &lt;span style="font-weight: bold;"&gt;2 condições&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;3 ações&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;Condições:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;img src="http://i47.tinypic.com/2woglfq.png" style="height: 357px; width: 425px;" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Alterable Values &amp;gt; Flags &amp;gt; Is a flag on? - &lt;/span&gt;Se uma certa flag estiver ligada, vai acontecer coisa tal...&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Alterable Values &amp;gt; Flags &amp;gt; Is a flag off? -&lt;/span&gt; Se uma certa flag estiver desligada, vai acontecer coisa tal...&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;Ações:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;img src="http://i45.tinypic.com/24fmpav.png" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Flags &amp;gt; Set On - &lt;/span&gt;Liga uma certa flag&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Flags &amp;gt; Set Off -&lt;/span&gt; Desliga uma certa flag.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Flags &amp;gt; Toogle -&lt;/span&gt; Inverte o estado de uma certa Flag. Se ela estiver ligada, vai desligar, e se estiver desligada, vai ligar.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;Hora do Exercício!&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Agora vamos fazer algo com o que acabamos de aprender.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;("Active"): internal flag 0 is off&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;(Active) &lt;span style="color:red;"&gt;Reappear&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;("Active"): internal flag 0 is off&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt; (Active) &lt;span style="color:red;"&gt;Make Invisible&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Upon Pressing "Enter"&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;(Active) &lt;span style="color:red;"&gt;Toogle internal flag 0&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;O que fizemos aqui foi o seguinte: No primeiro evento, se a flag 0 estiver desligada, ele vai fazer o Active reaparecer (se ele já estiver visível, não vai mudar nada). Já no segundo, se a flag 0 estiver ligada, ele vai fazer o Active ficar invisível. O terceiro serve para se o jogador pressionar enter, inverter o estado da flag 0. Ou seja, vai mudar o estado de visibilidade do Active. O problema, é que não existe no MMF2 a função "Alterar o estado de visibilidade". Por isso, temos que usar flags.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;Finalizando:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;E isso... são flags ^^&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Por hoje é só!&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Falow o/&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-2846877259248724498?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2846877259248724498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2846877259248724498'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/flags.html' title='Flags'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/2woglfq_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-2399501589102983321</id><published>2010-01-23T21:54:00.000-02:00</published><updated>2010-01-23T21:54:12.159-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Download Outros'/><title type='text'>KODU Game Lab</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Depois de mais de 200 mil downloads da versão para Xbox, a Microsoft traz para o PC o KODU Game Lab, uma ferramenta para criação de jogos em 3D, voltado para as crianças (e todos que se interessam pelo desenvolvimento de jogos).&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;O aplicativo traz um editor de terrenos e também vem com tutoriais e games de exemplo. A programação é toda visual, no estilo "When... do..." (quando... faça...), bem parecida com a do MMF.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: 10px; white-space: pre;"&gt;&lt;object height="340" width="560"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ycyQh4-RtAs&amp;amp;hl=pt_BR&amp;amp;fs=1&amp;amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ycyQh4-RtAs&amp;amp;hl=pt_BR&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://large.cdn.glg.com/fuse/bits/KoduSetup-General-1.0.21.0.msi"&gt;Download&lt;/a&gt; do techcnical preview&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Para o programa funcionar você também precisa ter o Microsoft XNA Framework e o .NET Framework 3.5 instalados no computador.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-2399501589102983321?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/2399501589102983321/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/kodu-game-lab.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2399501589102983321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2399501589102983321'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/kodu-game-lab.html' title='KODU Game Lab'/><author><name>Perdido</name><uri>http://www.blogger.com/profile/10186976886677514499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_wDvwvXfCBX4/Sze9a9ipSaI/AAAAAAAABys/fNUqktCh5z0/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-6164161811138264021</id><published>2010-01-23T20:11:00.000-02:00</published><updated>2010-01-25T23:43:15.573-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Jogos'/><title type='text'>Mario Mushroom Collect</title><content type='html'>&lt;center&gt;&lt;img src="http://i49.tinypic.com/x3ztpe.png" /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i49.tinypic.com/2qk8bgm.png" /&gt;&lt;br /&gt;&lt;i&gt;Menu&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i50.tinypic.com/1rq4nn.png" /&gt;&lt;br /&gt;&lt;i&gt;Hi-Scores&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i48.tinypic.com/2ppezc0.png" /&gt;&lt;br /&gt;&lt;i&gt;Jogo&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Descrição:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Quando vi o tutorial do perdido &lt;span style="font-weight: bold;"&gt;Criando um jogo com apenas cinco eventos&lt;/span&gt;, decidi criar esse mini-game. O jogo em si foi feito em menos de cinco minutos, e com o mesmo método daquele tutorial. Eu demorei mesmo foi pra escolher os gráficos, fazer o menu e ajeitar as músicas. Ah sim, os gráficos são meio editados. Eu recolori os sprites originais do Mario com a Beta do &lt;span style="font-weight: bold;"&gt;Dokyz Recolor&lt;/span&gt;, que estou fazendo com o &lt;span style="font-weight: bold;"&gt;Dok-dok&lt;/span&gt;. Só vou liberar pra vocês quando estiver pronto.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;História:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;É um mini-game, mas a história veio na minha cabeça, e eu simplesmente desenvolvi. Quando eu realmente tento pensar em uma história, não sai nada, agora quando eu nem ligo, sai algo, digamos, aceitável.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Como sempre, o corno do Mario foi "salvar" a sua linda Princesa Peach, que foi "raptada" pelo Bowser. Antes de ir enfrentar Bowser, Mario precisa coletar o maior número de cogumelos reserva possível para ter uma vitória certa.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Progresso:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Programação: &lt;span style="color: #009900;"&gt;|||||||||| 100%&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Gráficos: &lt;span style="color: #009900;"&gt;|||||||||| 100%&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Sons: &lt;span style="color: #009900;"&gt;|||||||||| 100%&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Total: &lt;span style="color: #009900;"&gt;|||||||||| 100%&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Download:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Servidores: &lt;a href="http://dl.dropbox.com/u/3919627/MarioMC.zip" target="_blank"&gt;DropBox&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-6164161811138264021?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/6164161811138264021/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/mario-mushroom-collect.html#comment-form' title='8 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6164161811138264021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/6164161811138264021'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/mario-mushroom-collect.html' title='Mario Mushroom Collect'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i49.tinypic.com/x3ztpe_th.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-7922132334422957716</id><published>2010-01-23T14:02:00.004-02:00</published><updated>2011-01-21T18:45:33.987-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Negando Condições</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Negando &lt;span style="color: rgb(51, 51, 255);"&gt;Condições&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;por Eskyz&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:180%;" &gt;Introdução:&lt;/span&gt;&lt;br /&gt;Às vezes, nós precisamos que uma condição faça o oposto da sua função. Como por exemplo: se o personagem &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;não&lt;/span&gt; estiver sobrepondo um obstáculo, ele vai perder HP. Para fazer isso, são necessários apenas dois cliques. Isso mesmo, dois cliques! Mas como não podia deixar de ser, vou enrolar pra caramba a matéria pra ver se realmente entra na cabeça de vocês.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Matéria:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Adicione normalmente a condição a ser negada. No caso seria &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;("Active") is overlapping a backdrop&lt;/span&gt;. Então, adicione a ação que seria &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Subtract 1 from Counter&lt;/span&gt;. Vai ficar assim:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;("Active") is overlapping a backdrop&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Subtract 1 from Counter&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O Counter representa o HP. Ok, mas nós não queremos que ele perca HP enquanto sobrepõe um obstáculo, e sim enquanto não sobrepõe. Então, simplesmente clique com o botão direito do mouse sobre a condição a ser negada e escolha a opção &lt;span style="font-weight: bold;"&gt;Negate&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 453px; height: 170px;" src="http://i49.tinypic.com/9qus0l.png" /&gt;&lt;br /&gt;&lt;i&gt;Negando a condição&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 449px; height: 47px;" src="http://i49.tinypic.com/f4dvep.jpg" /&gt;&lt;br /&gt;&lt;i&gt;Condição negada&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Pronto, condição negada. Ficou assim:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; ("Active") is overlapping a backdrop&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Subtract 1 from Counter&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Só que não são todas as condições podem ser negadas! As que podem ser negadas são as que permanecem acontencedo, como a "Enquanto estiver pressionando tecla tal", ou "Enquanto estiver sobrepondo um obstáculo". Condições que acontecem uma vez e pronto, como a "Colidiu com um obstáculo" ou a "Pressionou tecla tal", não podem ser negadas.&lt;br /&gt;&lt;br /&gt;Ah, sim, para desnegar uma condição, é a mesma coisa que negar, só que enquanto ela já estiver negada.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Outro exercício:&lt;/span&gt;&lt;br /&gt;Agora vamos fazer outro exercício só pra fixar mesmo. Adicione um Counter na tela, e no Event Editor, coloque:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;X&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;Repeat While ("Player 1") Moved top&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Add 1 to Counter&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ou seja, enquanto o jogador &lt;span style="font-weight: bold;"&gt;não&lt;/span&gt; estiver pressionando a tecla para cima, vai adicionar um ao Counter.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;Finalizando:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Saber negar condições é tão importante quando saber combiná-las. Você vai usar muuuito essa função futuramente, pode ter certeza. Foi difícil encontrar exemplos realmente bons aqui porque vocês ainda estão começando. Se não entendeu &lt;strike&gt;você é um bocó&lt;/strike&gt; recomendo que leia novamente e tente até conseguir.&lt;br /&gt;&lt;br /&gt;Se for copiar, valorize meu trabalho e coloque os créditos!&lt;br /&gt;Falow o/&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-7922132334422957716?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7922132334422957716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7922132334422957716'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/negando-condicoes.html' title='Negando Condições'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i49.tinypic.com/9qus0l_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-3522715729138248161</id><published>2010-01-23T00:36:00.002-02:00</published><updated>2011-01-21T18:46:31.958-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Editando as imagens no MMF</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Clique duas vezes no objeto que você quer editar para abrir o Picture Editor (o editor de imagens do MMF2, parecido com o "Paint" do Windows). Ele contém todas as ferramentas necessárias para desenhar, importar e editar as imagens.&lt;br /&gt;&lt;br /&gt;Quando for importar uma imagem, preste atenção na cor que está definida como "transparente", normalmente deve ser a cor ao redor da imagem que você quer importar (use o botão "Pick" para escolher a cor transparente diretamente da imagem). Se não quiser usar uma cor transparente selecione uma cor que não aparece na imagem para ser a transparente.&lt;br /&gt;&lt;br /&gt;Para importar apenas uma parte da imagem marque "Import selection" e use o botão "Select". Depois use o ícone do quadrado cercado por setas para ajustar o tamanho da imagem.&lt;br /&gt;&lt;br /&gt;Para importar todas as animações de um spritesheet você pode marcar a opção "Box Mode" e "Import as Animation". Mas para que essa opção funcione, cada imagem que você for importar precisa estar dentro de um retângulo de uma cor diferente da cor de fundo da imagem. Quase nunca dá certo comigo, e eu acabo importando as animações uma por uma mesmo...&lt;br /&gt;&lt;br /&gt;Animation selector&lt;br /&gt;&lt;br /&gt;Um objeto ativo pode ter diversas animações. As animações "padrão" são:&lt;br /&gt;- Stopped (parado)&lt;br /&gt;- Walking (andando)&lt;br /&gt;- Running (correndo)&lt;br /&gt;- Appearing (quando o objeto é criado)&lt;br /&gt;- Disappearing (quando o objeto é destruido)&lt;br /&gt;- Bouncing (quando o objeto colide em um obstáculo)&lt;br /&gt;- Shooting (quando o evento shoot object é programado)&lt;br /&gt;- Jumping (pulando)&lt;br /&gt;- Falling (caindo)&lt;br /&gt;- Climbing (subindo escadas)&lt;br /&gt;- Crouch down (abaixando)&lt;br /&gt;- Stand up (levantando)&lt;br /&gt;Você também pode definir animações personalizadas.&lt;br /&gt;&lt;br /&gt;Direction selector&lt;br /&gt;&lt;br /&gt;Fica a direta do Animator selector. Para escolher o número de direções (4, 8, 16 ou 32) use a barra localizada abaixo do seletor. Clicando com o botão direito nos quadrados do seletor você pode recortar, copiar, colar, deletar, criar as animações em todas as direções e inverter horizontal e verticalmente as imagens. Na aba "Direction options" você define a velocidade mínima e máxima da animação e se ela vai repetir contínuamente (loop). Na aba "Frames", clicando com o botão direito, você pode inserir (clonar) novos frames, além de utilizar as demais opções de edição (recortar, copiar, etc).&lt;br /&gt;&lt;br /&gt;Diferença entre o Hot spot e o Action spot:&lt;br /&gt;&lt;br /&gt;- O Hot spot (o ícone do olho) é o ponto da imagem que corresponde as coordenadas X e Y do objeto (no centro, no topo da imagem, etc.), importante quando você estiver trabalhando com a posição do objeto no frame.&lt;br /&gt;&lt;br /&gt;- O Action point (o ícone da estrela) é o ponto da imagem de onde a ação acontece (por exemplo, quando você escolhe "Shoot an object" no Event editor, o projétil é criado a partir dessa posição).&lt;br /&gt;&lt;br /&gt;Se estiver editando uma animação, você pode mover o Hot spot e o Action spot de todas as imagens segurando a tecla ALT enquanto clica neles.&lt;br /&gt;&lt;br /&gt;Bom, é isso!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-3522715729138248161?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/3522715729138248161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/3522715729138248161'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/editando-as-imagens-no-mmf.html' title='Editando as imagens no MMF'/><author><name>Perdido</name><uri>http://www.blogger.com/profile/10186976886677514499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_wDvwvXfCBX4/Sze9a9ipSaI/AAAAAAAABys/fNUqktCh5z0/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-7374928877856367252</id><published>2010-01-23T00:18:00.000-02:00</published><updated>2010-01-23T17:20:42.869-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Criando um jogo com apenas 5 eventos</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Vamos aprender a fazer um jogo simples (com apenas 5 eventos) no MMF. Para este exemplo vou usar sprites e sons de Mário. Você pode baixar vários no Mario Fan Games Galaxy (&lt;a href="http://www.mfgg.net/"&gt;http://www.mfgg.net&lt;/a&gt;).&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Primeiro, defina o tamanho (size) do seu frame (em Storyboard Editor ou em propriedades do frame, na aba "Settings") e o tamanho da tela (em propriedades da aplicação, na aba "Window") para 256 x 207 (que é o tamanho do Backdrop que vamos usar no jogo do exemplo).&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Agora clique com o botão direito no frame e selecione "Insert object". Depois escolha "Active", que são os objetos animados. Clique duas vezes no objeto que você acabou de criar para abrir o Picture Editor. No nosso caso vamos importar um sprite do Mário.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Agora clique no Mário e na Properties Toolbar escolha a aba "Movement" (o bonequinho azul) e defina o tipo de movimento para "Platform". Depois, crie mais um Active object (um cogumelo), e na aba "Movement" defina o tipo de movimento para "Bouncing Ball" (deixe a "Initial direction" apenas para baixo e defina a "Speed" para 30).&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Para terminar crie um "Backdrop object" (fundo de tela do jogo) e um "Score" (mostra os pontos do jogador).&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Agora vamos programar.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Abra o Event Editor (Ctrl + E). São apenas 5 eventos:&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;color:blue;" &gt;CONDIÇÃO&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; Clique em "Storyboard controls" (o tabuleiro de xadrez), "Start of Frame".&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;AÇÃO&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; Em "Sound", selecione "Music" e em "Play music" escolha a música que vai tocar no jogo.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Esse evento é para colocar música.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;color:blue;" &gt;CONDIÇÃO&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; Clique no (objeto) "Mário", "Position" e em "Test Position" (marcando todas as setas que indicam que o objeto estaria saindo da área do frame). Ou então, se quiser fazer o jogo com chão, clique no (objeto) "Mário", "Collisions", "Backdrop". Com esse segundo método, você precisa criar 3 obstáculos (backdrops): um para o chão, e dois para o Mário não sair da tela.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;AÇÃO&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; No "Mário", selecione "Movement" e "Stop".&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Esse evento impede que o Mário caia da tela quando você executa o jogo.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;color:blue;" &gt;CONDIÇÃO&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; Clique em "The timer" (o relógio), selecione "Every" e coloque 00"-70.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;AÇÃO&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; "Em Create new objects", selecione o "cogumelo" (x=128 y=-10). Depois no "cogumelo" selecione "Position", "Set X coordinate..." e escreva "Random(Frame Width)" no Expression Editor.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Esse evento cria, a cada 00"-70, um novo cogumelo em uma posição horizontal aleatória do frame.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;color:blue;" &gt;CONDIÇÃO&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; Clique no "Mário", "Collisions", "Another object" e selecione o "cogumelo".&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;AÇÃO&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; Em "Sound", selecione "Sample" e em "Play sample" escolha o som que vai tocar. Em "Player 1", selecione "Score", "Add to score" e coloque "1". No "cogumelo" selecione "Destroy".&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Esse evento adiciona 1 ponto ao seu Score para cada cogumelo que o Mário pegar, toca um som e destrói o cogumelo.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;color:blue;" &gt;CONDIÇÃO&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; Clique no "cogumelo", "Position" e em "Test Position" (marcando a seta que indica que o objeto estaria saindo da área do frame pela parte de baixo).&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;AÇÃO&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; Em "Storyboard Controls", selecione "Next frame".&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Esse evento passa para o próximo frame quando o Mário não conseguir pegar o cogumelo.&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Clique em "Run aplication" para rodar o jogo e ver como ficou. Agora crie um frame para a tela de título e outro para os Hi-scores (use o objeto "Hi-score") e pronto! Terminamos nosso jogo!&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-7374928877856367252?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7374928877856367252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7374928877856367252'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/criando-um-jogo-com-apenas-5-eventos.html' title='Criando um jogo com apenas 5 eventos'/><author><name>Perdido</name><uri>http://www.blogger.com/profile/10186976886677514499</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://2.bp.blogspot.com/_wDvwvXfCBX4/Sze9a9ipSaI/AAAAAAAABys/fNUqktCh5z0/S220/eu.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-2668893401806833058</id><published>2010-01-22T23:30:00.020-02:00</published><updated>2011-10-28T23:25:13.929-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MMF2Lista'/><title type='text'>Curso Multimedia Fusion 2</title><content type='html'>Olá, e seja bem-vindo ao meu curso sobre uma incrível e poderosa ferramenta de criação de jogos desenvolvida pela ClickTeam - o Multimedia Fusion 2!&lt;br /&gt;&lt;br /&gt;Aqui, abordarei os assuntos que julgo serem mais importantes para o desenvolvimento de um jogo... e do programador. Uma vez que entenda a essência do programa, estará apto a explorar novas áreas. Não somente dentro do programa (me refiro à funções mais complexas do deste, como OpenGL), mas também fora (entrando de cabeça nas linguagens de programação).&lt;br /&gt;&lt;br /&gt;Ao fim de cada aula, se necessário, passarei um pequeno exercício para vocês - juntamente com o gabarito, para verificarem se fizeram corretamente. É muito importante que tentem fazê-los, pois servirá para a fixação da matéria. Além disso, aconselho a todos que deem uma olhada nas matérias Como-Fazer, e tentem fazê-las, pois são uma espécie de exercícios mais eficientes, que envolvem o conteúdo de mais de uma aula.&lt;br /&gt;&lt;br /&gt;Boa sorte, e bom aprendizado!&lt;br /&gt;&lt;span style="font-style: italic;"&gt;.Eskyz&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;--//--&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" &gt;&lt;br /&gt;Básico&lt;/span&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2011/05/logica-de-programacao.html"&gt;01. A Lógica de Programação (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/01/introducao-ao-multimedia-fusion-2.html"&gt;02. Introdução ao Multimedia Fusion 2 (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2009/01/criando-seu-primeiro-jogo.html"&gt;03. Criando seu Primeiro Jogo (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/01/editando-as-imagens-no-mmf.html"&gt;04. Editando imagens no MMF2 (Perdido)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/05/prioridades-de-um-objeto.html"&gt;05. Prioridade de um Objeto (Eskyz)&lt;/a&gt;&lt;br /&gt;06. Propriedades de um Objeto&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/05/os-movimentos.html"&gt;07. Os Movimentos (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2009/01/tutorial-counters.html"&gt;08. Tutorial Counters (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2009/02/recebendo-valores.html"&gt;09. Recebendo Valores (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2009/12/comparar-dois-valores-gerais.html"&gt;10. Comparando dois valores (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/01/condicoes-de-tempo.html"&gt;11. Condições de Tempo (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/01/condicoes-combinadas.html"&gt;12. Combinando Condições (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/01/negando-condicoes.html"&gt;13. Negando Condições (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2009/12/detectores-de-colisao.html"&gt;14. Detectores de Colisão (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/01/flags.html"&gt;15. Flags (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/07/alterable-values-e-global-values.html"&gt;16. Alterable Values e Global Values (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/08/alterable-strings-e-global-strings.html"&gt;1&lt;/a&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/08/alterable-strings-e-global-strings.html"&gt;7. Alterable Strings e Global Strings (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/12/behaviors-qualifiers-e-global-events.html"&gt;18. Behaviors, Qualifiers e Global Events (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2011/06/grupos-de-eventos.html"&gt;18. Grupos de Eventos (Eskyz)&lt;/a&gt;&lt;br /&gt;20. Pontuações - Scores e HiScores&lt;br /&gt;21. Platform Movement Object&lt;br /&gt;22. Criando um jogo de plataforma simples&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" &gt;Intermediário&lt;/span&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/01/como-funciona-o-fastloop.html"&gt;01. Como funciona o Fast Loop (Matheus290)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/01/introducao-ao-movimento-personalizado.html"&gt;02. Movimento Personalizado - Parte 1: Introdução (Eskyz)&lt;/a&gt;&lt;br /&gt;03. Movimento Personalizado - Parte 2: Movimento e Colisões&lt;br /&gt;04. Movimento Personalizado - Parte 3: Resolvendo Bugs com Fast Loops&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/05/criando-um-movimento-por-tiles-o-basico.html"&gt;05. Movimento Custom TileBased - Parte I: Movimentação (FireSoul)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/07/movimento-custom-tilebased-parte-ii.html"&gt;06. Movimento Custom TileBased - Parte II: Colisões (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2011/06/armazenando-dados-em-arquivos-ini.html"&gt;07. Armazenando dados em arquivos INI (Eskyz)&lt;/a&gt;&lt;br /&gt;08. Criptografando arquivos INI com Blowfish&lt;br /&gt;09. Inteligência Artificial de um Inimigo - Parte 1&lt;br /&gt;10. Inteligência Artificial de um Inimigo - Parte 2&lt;br /&gt;11. Inteligência Artificial de um Inimigo - Parte 3&lt;br /&gt;12. Inteligência Artificial de um Inimigo - Parte 4&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2011/05/movimento-personalizado-de-fast-loops_13.html"&gt;13. Movimento Personalizado de Fast Loops - Parte 1: Movimento de 8 Direções&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2011/05/movimento-personalizado-de-fast-loops_20.html"&gt;14. Movimento Personalizado de Fast Loops - Parte 2: Gravidade e Pulo&lt;/a&gt;&lt;br /&gt;15. Movimento Personalizado de Fast Loops - Parte 3: Slope e Animações&lt;br /&gt;16. Particle Spray Object&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" &gt;Avançado&lt;/span&gt;&lt;br /&gt;01. Introdução ao 3D (Matheus290)&lt;br /&gt;02. Fazendo jogos 3D usando Mode7ex (Matheus290)&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/01/entendendo-os-relevos-no-mode7ex.html"&gt;03. Entendendo os Relevos do Mode7ex (Matheus290)&lt;/a&gt;&lt;br /&gt;04. Gravidade e Relevos no Mode7ex (Matheus290)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" &gt;Matérias Como-Fazer:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/01/criando-um-jogo-com-apenas-5-eventos.html"&gt;01. Criando um jogo com apenas cinco eventos (Perdido)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2009/01/retirando-bug-dos-espinhos.html"&gt;02. Retirando Bug dos Espinhos (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2009/01/tutorial-plataformas-invisveis.html"&gt;03. Tutorial Plataformas Invisíveis (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2009/12/path-movement-customizado.html"&gt;04. Path Movement Customizado (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2009/12/carregando-arquivos.html"&gt;05. Carregando Arquivos (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2009/01/tutorial-matar-inimigo-pulando-na-cabea.html"&gt;06. Matar Inimigo Pulando na Cabeça (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/03/formulas-matematicas.html"&gt;07. Fórmulas Matemáticas (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2011/07/invertendo-textos.html"&gt;08. Invertendo Textos (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" &gt;Turbinando o Programa:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2009/01/instalando-libs.html"&gt;01. Instalando Libs - Bibliotecas Gráficas (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2010/05/instalando-widgets-bibliotecas-de.html"&gt;02. Instalando Widgets - Bibliotecas de Eventos (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://mmfmakers.blogspot.com/2009/01/instalando-extenses.html"&gt;03. Instalando Extensões (Eskyz)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" &gt;Video-aulas:&lt;/span&gt;&lt;br /&gt;Prefere  aprender MMF2 por video-aulas? Bem, você tem essa opção :D. Mas não me  terá como professor xD. As video-aulas são feitas por um cara chamado  MiltinhoEXE. Você pode conferir o canal do Youtube dele &lt;a href="http://www.youtube.com/user/Miltinhoexe"&gt;&lt;span style="font-weight: bold;"&gt;AQUI&lt;/span&gt;&lt;/a&gt; ;).&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-2668893401806833058?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2668893401806833058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/2668893401806833058'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/tutoriais-multimedia-fusion-2.html' title='Curso Multimedia Fusion 2'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5886976201722740355</id><published>2010-01-22T22:09:00.004-02:00</published><updated>2011-01-23T18:27:33.557-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Combinando Condições</title><content type='html'>&lt;span style="color: rgb(51, 51, 255);font-size:180%;" &gt;&lt;span style="font-weight: bold;"&gt;Combinando Condições&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;por Eskyz&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;Introdução:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Eu ainda me lembro que, nos meus primeiros jogos eu sempre usava condições sozinhas. Só que em alguns casos, é necessário que nós limitemos ainda mais um evento. Hmm... por exemplo: eu quero que enquanto estiver pressionando a &lt;span style="font-weight: bold;"&gt;Tecla de Fogo 1&lt;/span&gt;, o personagem atire. Até aí tudo bem, vamos fazer os eventos:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Pressed Fire 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(Active) &lt;span style="color:red;"&gt;Shoot ("bala") at speed 100&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora, teste. Ficou rápido demais não? Ele precisa atirar mais devagar. Mas, como isso? Temos que estabelecer mais uma condição para o evento. Assim, a ação só se realizará se as duas condições forem cumpridas. Nós precisamos fazer com que enquanto o jogador estiver pressionando o botão, &lt;span style="font-weight: bold;"&gt;a cada cinquenta centésimos de segundos&lt;/span&gt;, ele atirar. Mas como fazer isso? É o que nós vamos ver nessa matéria.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;Matéria:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Agora vamos resolver nosso problema do tiro. O que nós precisamos fazer é simples: adicionar outra condição, e essa seria um &lt;span style="font-weight: bold;"&gt;Every 00"-50&lt;/span&gt; (A Cada 50 centésimos de segundos). Como fazer isso? É baba também.&lt;br /&gt;&lt;br /&gt;Clique com o botão direito do Mouse sobre a primeira condição (no caso, a de pressionar o botão), e escolha a opção &lt;span style="font-weight: bold;"&gt;Insert&lt;/span&gt; (Inserir).&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i47.tinypic.com/o90rbm.png" /&gt;&lt;br /&gt;&lt;i&gt;Clique com o botão direito sobre a primeira condição, e selecione a opção &lt;span style="font-weight: bold;"&gt;Inserir&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Então, abrirá uma janela para você escolher a nova condição. Escolha, e veja que uma nova condição foi adicionada ao evento.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i50.tinypic.com/o52jxf.png" /&gt;&lt;br /&gt;&lt;i&gt;Adicionando a nova condição&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 443px; height: 61px;" src="http://i46.tinypic.com/15xtzwg.png" /&gt;&lt;br /&gt;&lt;i&gt;Note que a nova condição foi adicionada ao evento&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Pronto, vai ficar assim:&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Pressed fire 1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Every 00"-50&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(Active) &lt;span style="color:red;"&gt;Shoot ("bala") at speed 100&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Algumas condições como a &lt;span style="font-weight: bold;"&gt;On loop&lt;/span&gt;, da classe &lt;span style="font-weight: bold;"&gt;Special&lt;/span&gt; (a do computadorzinho), precisam ficar no topo do evento. Não precisa entender esse negócio de Fast Loop por ora; não é aí que eu quero chegar. A questão é que certas condições só funcionam se estiverem no topo do evento. E algumas, não funcionam de jeito nenhum (como a &lt;span style="font-style: italic;"&gt;Is the timer equal to a certain value&lt;/span&gt;). Para mover uma condição, simplesmente selecione-a e arraste-a até o local desejado, assim como você arrasta um ícone na sua Área de Trabalho.&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 407px; height: 56px;" src="http://i46.tinypic.com/j7viub.png" /&gt;&lt;br /&gt;&lt;i&gt;Arrastando o Every para o topo&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="width: 407px; height: 56px;" src="http://i48.tinypic.com/29qm5o4.png" /&gt;&lt;br /&gt;&lt;i&gt;Every no topo&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;O &lt;span style="font-style: italic;"&gt;Every&lt;/span&gt; realmente não precisa ficar no topo. Eu fiz isso só pra mostrar pra vocês como trocar o lugar de duas condições.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:red;" &gt;Colocando em prática o que aprendemos:&lt;/span&gt;&lt;br /&gt;Agora, outro exercício. Já resolvemos o problema do tiro, agora vamos fazer alguma outra coisinha só pra fixar. Na verdade, é capaz que o que nós vamos fazer agora, nunca vá ter alguma utilidade pra você, mas vamos fazer assim mesmo só pra grudar na cabeça, certo?&lt;br /&gt;&lt;br /&gt;Adicione um movimento de plataforma no &lt;span style="font-weight: bold;"&gt;Active Object&lt;/span&gt;. Não precisa mudar nada no Movimento. Agora adicione o seguinte evento:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved down&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(Active)&lt;/span&gt;&lt;span style="font-weight: bold;color:red;" &gt; Stop&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ou seja, enquanto o jogador estiver apertando pra baixo, vai parar o movimento do Active. Pronto, agora insira uma nova condição: &lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved top&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Vai ficar desse jeito:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved down&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;Repeat while ("Player 1") Moved top&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(Active)&lt;/span&gt;&lt;span style="font-weight: bold;color:red;" &gt; Stop&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ou seja, enquanto o jogador estiver apertando para cima e para baixo, vai parar o movimento do personagem.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;Finalizando:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Combinar condições é algo fundamental na criação de jogos. Por isso é importante que você tenha entendi tudo dessa matéria. Se você não entendeu, &lt;strike&gt;você é um bocó&lt;/strike&gt; leia de novo, porque um dia você ainda vai precisar combinar condições. A propósito, lembra da matéria sobre Counters? Agora que você leu essa matéria, vai achar inúmeras utilidades para eles. Antes de saber combinar condições, os Counters não tinha muita utilidade. Agora, eles podem fazer coisas incriveis. É só pensar um pouco.&lt;br /&gt;&lt;br /&gt;Bom galera, por hoje é só.&lt;br /&gt;Falow o/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5886976201722740355?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5886976201722740355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5886976201722740355'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/condicoes-combinadas.html' title='Combinando Condições'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/o90rbm_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-1430778259317621103</id><published>2010-01-22T21:32:00.000-02:00</published><updated>2010-01-23T01:04:00.247-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sprites'/><title type='text'>Sprites - Sonic</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;div style="text-align: justify;"&gt;Bem pessoal meu nome é Douglas mais conhecido como DragonSky, e vou estar dando alguns posts por aqui.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: justify;"&gt;Certo então como acabei de chegar já me botaram para trabalhar XD&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: justify;"&gt;Bem vamos começar com Sprites do Sonic.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.themysticalforestzone.com/sprites/Sonic/Sonic/Sonic%2004%20copy.gif"&gt;Sonic 3 &amp;amp; Knuckles - Sonic&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.themysticalforestzone.com/sprites/Sonic/Tails/Tails%2001%20copy.gif"&gt;Sonic 3 &amp;amp; Knuckles - Tails&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.themysticalforestzone.com/sprites/Sonic/Knuckles/knux-big.gif"&gt;Sonic 3 &amp;amp; Knuckles - Knuckles&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: justify;"&gt;Bem por hoje é só pessoal. Mais para frente vou trazendo mais sprites ^^&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-1430778259317621103?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1430778259317621103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/1430778259317621103'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/sprites-sonic.html' title='Sprites - Sonic'/><author><name>DragonSky</name><uri>http://www.blogger.com/profile/12177791602621724155</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-7005491779317507239</id><published>2010-01-20T17:06:00.001-02:00</published><updated>2010-01-23T01:16:04.712-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mugen Stages'/><title type='text'>Kenshin BG</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sem SS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(0, 0, 0) none repeat scroll 0% 0%; color: white; padding: 5px;"&gt;&lt;br /&gt;&lt;center&gt;&lt;b&gt;&lt;span style="color: white;"&gt;Informações Técnicas:&lt;/span&gt;&lt;/b&gt;&lt;/center&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border: 1px solid rgb(0, 0, 0); padding: 5px;"&gt;&lt;b&gt;Cenário: &lt;i&gt;Kenshin BG&lt;/i&gt;&lt;br /&gt;Descrição: &lt;i&gt;É o dojo Kamiya (dojo onde o Samurai X vive) incendiado.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;Origem: &lt;i&gt;Sei lá&lt;/i&gt;&lt;br /&gt;Autor: &lt;i&gt;Não entendo Koreano&lt;/i&gt;&lt;br /&gt;Criado em: &lt;i&gt;???&lt;/i&gt;&lt;br /&gt;Versão: &lt;i&gt;WinMugen&lt;/i&gt;&lt;br /&gt;Última Atualização: &lt;i&gt;???&lt;/i&gt;&lt;br /&gt;Tamanho: &lt;span style="font-style: italic;"&gt;273KB&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(0, 0, 0) none repeat scroll 0% 0%; color: white; padding: 5px;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(0, 0, 0) none repeat scroll 0% 0%; color: white; padding: 5px;"&gt;&lt;br /&gt;&lt;center&gt;&lt;b&gt;&lt;span style="color: white;"&gt;Download Link:&lt;/span&gt;&lt;/b&gt;&lt;/center&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border: 1px solid rgb(0, 0, 0); padding: 5px;"&gt;&lt;b&gt;&lt;a href="http://sites.google.com/site/cnbups/Home/arquivos-cnb/mmfmakers.blogspot.com_megamanexe.zip?attredirects=0" target="_blank"&gt;MediaFire&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.mediafire.com/?jzm1kmjtxnm" target="_blank"&gt;&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(0, 0, 0) none repeat scroll 0% 0%; color: white; padding: 5px;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-7005491779317507239?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7005491779317507239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/7005491779317507239'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/kenshin-bg.html' title='Kenshin BG'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-5723703390749514783</id><published>2010-01-20T17:05:00.001-02:00</published><updated>2010-01-23T01:11:18.899-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mugen Characters'/><title type='text'>Kenshin Character</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sem SS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(0, 0, 0) none repeat scroll 0% 0%; color: white; padding: 5px;"&gt;&lt;br /&gt;&lt;center&gt;&lt;b&gt;&lt;span style="color: white;"&gt;Informações Técnicas:&lt;/span&gt;&lt;/b&gt;&lt;/center&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border: 1px solid rgb(0, 0, 0); padding: 5px;"&gt;&lt;b&gt;Personagem: &lt;i&gt;Kenshin Himura&lt;/i&gt;&lt;br /&gt;Descrição: &lt;i&gt;É o personagem principal da série Samurai X para o Mugen&lt;/i&gt;&lt;br /&gt;Origem: &lt;i&gt;Sei lá&lt;/i&gt;&lt;br /&gt;Autor: &lt;i&gt;Não entendo Koreano&lt;/i&gt;&lt;br /&gt;Criado em: &lt;i&gt;???&lt;/i&gt;&lt;br /&gt;Versão: &lt;i&gt;WinMugen&lt;/i&gt;&lt;br /&gt;Última Atualização: &lt;i&gt;???&lt;/i&gt;&lt;br /&gt;Tamanho: &lt;i&gt;1,62&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(0, 0, 0) none repeat scroll 0% 0%; color: white; padding: 5px;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div color="white" style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(0, 0, 0) none repeat scroll 0% 0%; padding: 5px;"&gt;&lt;br /&gt;&lt;center&gt;&lt;b&gt;&lt;span style="color: white;"&gt;Download Link:&lt;/span&gt;&lt;/b&gt;&lt;/center&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border: 1px solid rgb(0, 0, 0); padding: 5px;"&gt;&lt;b&gt;&lt;a href="http://sites.google.com/site/cnbups/Home/arquivos-cnb/mmfmakers.blogspot.com_megamanexe.zip?attredirects=0" target="_blank"&gt;MediaFire&lt;br /&gt;&lt;/a&gt;&lt;a href="http://www.mediafire.com/?gr2jjujzmjd" target="_blank"&gt;&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="-moz-background-clip: -moz-initial; -moz-background-inline-policy: -moz-initial; -moz-background-origin: -moz-initial; background: rgb(0, 0, 0) none repeat scroll 0% 0%; color: white; padding: 5px;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-5723703390749514783?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5723703390749514783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/5723703390749514783'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/kenshin-character.html' title='Kenshin Character'/><author><name>Tiago</name><uri>http://www.blogger.com/profile/16274849388854103701</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-4517007842351039783</id><published>2010-01-19T20:26:00.001-02:00</published><updated>2010-01-19T20:26:59.231-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lista GM'/><title type='text'>Teste</title><content type='html'>&lt;img src="http://i47.tinypic.com/1zdr7cy.png" /&gt;&lt;br /&gt;&lt;br /&gt;Teste&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/421860893919738010-4517007842351039783?l=mmfmakers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://mmfmakers.blogspot.com/feeds/4517007842351039783/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/teste.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4517007842351039783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/421860893919738010/posts/default/4517007842351039783'/><link rel='alternate' type='text/html' href='http://mmfmakers.blogspot.com/2010/01/teste.html' title='Teste'/><author><name>Rafael</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i47.tinypic.com/1zdr7cy_th.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-421860893919738010.post-1335527925420883187</id><published>2010-01-19T19:52:00.001-02:00</published><updated>2011-01-21T18:45:09.022-02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tutoriais MMF2'/><title type='text'>Condições de Tempo</title><content type='html'>&lt;span style="color: rgb(51, 51, 255); font-weight: bold;font-size:180%;" &gt;&lt;span style="color:red;"&gt;C&lt;/span&gt;ondições de &lt;span style="color:red;"&gt;T&lt;/span&gt;empo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;color:red;"  &gt;por Eskyz&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-size:180%;color:red;"  &gt;&lt;span style="font-weight: bold;"&gt;Introdução:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Limite de tempo deixa o jogo mais desafiante e logo, mais divertido. E lógico que o nosso querido Multimedia Fusion 2 dá suporte a essa função. Hoje em dia, vários jogos não tem mais um limite de tempo. Eu sempre gostei desse fator, e com essa matéria, vocês vão aprender não só a fazê-lo, como também vão aprender várias funções extremamente úteis do Multimedia Fusion 2 relacionadas a tempo, e entre elas, dou destaque a função &lt;span style="font-weight: bold;"&gt;Every&lt;/span&gt;, que vamos entender logo logo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;span style="font-weight: bold;color:red;" &gt;Matéria:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Dessa vez, vamos diretos aos eventos. Essa matéria tem a finalidade de te mostrar &lt;span style="font-weight: bold;"&gt;Condições de Tempo&lt;/span&gt;, que só aparecem no &lt;span style="font-style: italic;"&gt;Event Editor&lt;/span&gt;. Logo, não temos nada a fazer no Frame Editor.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:red;" &gt;Ações:&lt;/span&gt;&lt;br /&gt;As Condições de Tempo, só tem uma ação: &lt;span style="font-weight: bold;"&gt;Set timer&lt;/span&gt;. Ela serve para mudar o tempo decorrido do jogo. Eu considero inútil, mas tenho que explicar. Hmm... vamos supor que você põe pra quando pressionar &lt;span style="font-weight: bold;"&gt;Enter&lt;/span&gt;, mudar o tempo decorrido para 1 hora e 20 minutos com a Set timer. Então, é isso mesmo. Quando pressionar Enter, vai mudar o tempo decorrido para 1 hora e 20 minutos. Não tem muito o que explicar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;color:red;" &gt;Condições:&lt;/span&gt;&lt;br /&gt;Essa é a parte mais importante das &lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;Condições&lt;/span&gt; de Tempo&lt;/span&gt;. Clique em &lt;span style="font-weight: bold;"&gt;New condition&lt;/span&gt; e dê um duplo clique sobre o ícone do relógio (&lt;span style="font-weight: bold;"&gt;The Timer&lt;/span&gt;). Vão aparecer as seguintes condições:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i45.tinypic.com/24l8vas.png" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Every&lt;/span&gt; - Essa função é A Cada. Por exemplo: A cada 1 segundo, fazer coisa tal... na minha opinião, é a mais importante de todas as Condições de Tempo. Você vai se pegar usando ela várias vezes quando já estiver em um nível mais alto, seja pra inútiliários, Movimento Personalizado, enfim... Quer um exemplo? Enquanto estiver pressionando Enter, a cada um segundo, vai adicionar 1 ao Counter. Olha, se você não tivesse colocado o Every, ele ia adicionar números ao Counter feito um adoidado. Mas, como você usou o Every para limitar o tempo, ele só vai adicionar a cada um segundo enquanto Enter estiver sendo pressionado.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Is the timer equal to a certain value?&lt;/span&gt; - Essa condição faz com que algo aconteça assim que um determinado período de tempo escolhido por você tenha se passado desde o início do Frame. Eu não uso muito ela, e infelizmente, nunca 
