Criando Flash Games no Linux II

LinuxFlashDepois de escrever o artigo sobre criação de jogos em Flash no Linux, eu percebi que tinha faltado muita coisa interessante. Então resolvi escrever uma continuação. Aqui então falo um pouco sobre como importar recursos e gráficos vetoriais e como debugar seu projeto.

Vale ainda resssaltar que eu estou focando no desenvolvimento de jogos. Criar aplicações RIA deve ser bem mais fácil com a SDK do Flex, uma vez que ela foi feita para isso mesmo. Quem sabe eu poste sobre isso futuramente.

IDE’s para Flash

Como eu disse no primeiro post, infelizmente não há uma solução para esse problema no Linux. Eu apostaria em um bom plugin para NetBeans, mas ainda não existe. Então dei uma procurada e achei uma IDE bem simples para projetos flash para web e para a plataforma Air. Aliás, ele roda na própria plataforma da Adobe, que é o MiniBuilder.

Se você já tem o Air instalado, fica muito fácil instalar esse programa, basta baixar o arquivo .air do site. Quando você executar, ele vai lhe informar que para que a IDE funcione perfeitamente, você vai precisar deixar executando um pequeno servidor. A partir disso é só usar. Bem simples e direto ao ponto. Gostei bastante.

Há outras ferramentas com ambições maiores, como o OpenDialect, que tem como objetivo ser como a própria IDE do Flash, entretanto acho que ainda não vale mais que uma simples citação aqui.

Trabalhando com gráficos

Uma das coisas mais interessantes do Flash é o fato dele trabalhar com gráficos vetoriais (SVG). Claro que para a área de atuação principal dele isso é comum, mas para desenvolvedores de jogos em geral, isso pode soar meio estranho.

Então uma das coisas que me deixou mais feliz quando comecei a brincar com flash no linux foi que o Inkscape salva nativamente arquivos SVG que podem ser importados no swf. Você faz uma ilustração, salva o arquivo e importa ele via código ActionScript 3 sem problemas.

Vou mostrar um código simples de como importar arquivos SVG por ActionScript:

package {

   import flash.display.Sprite;
   import flash.geom.ColorTransform;

   public class Desenho extends Sprite {

      [Embed(source="desenho.svg")]
      public var         DesenhoSprite:Class;
      public var         desenhoSprite:Sprite;

      public function Desenho()
      {
         desenhoSprite = new DesenhoSprite();
         addChild(desenhoSprite);
      }

   }

}

Como você pode ver, criamos uma classe que herda a classe Sprite – que é um MovieClip mais simplificado, sem as rotinas de timeline – e já embedda o gráfico vetorial nela. Assim quando você instanciar essa classe, ela será o sprite com seu desenho SVG. Lembrando que você não precisa distribuir seu SVG junto ao SWF, uma vez que o Flash encorpora o gráfico vetorial.

É claro que com essa forma de importação de recursos também permite que você faça com arquivos de imagem em geral, arquivos de som e até outros SWF’s. Para mais detalhe sobre como importar recursos, visite essa página do help do Flex.

Debugando arquivos SWF

Se tivessemos um plugin para NetBeans, ou Eclipse, o debug seria infinitamente mais fácil. Mas mesmo não tendo, debugar flash não é tão difícil assim. Se você já debugou com o GDB, então vai tirar de letra. Na verdade, o FDB, o debugger do flex, é muito parecido com o GDB

Antes de qualquer coisa, quando for compilar seu SWF para ser debugado, use a seguinte opção no compilador:

$ mxmlc -debug=true game.as

Assim ele poderá gerar as informações necessárias para o debug. Uma vez feito isso, basta você chamar o FDB e então mandar ele carregar o seu SWF:

$ fdb
(fdb) run game.swf

Ele então irá abrir seu jogo no FlashPlayer e então começar o processo de debug. Nesse prompt você pode ver o código a ser executado (comando list), setar breakpoints (comando break), modificar valores de variáveis (comando set), exibindo valores de variáveis (comando print), entre muitos outros. Dê uma conferida no manual da Adobe sobre o FDB.

Provavelmente eu também esqueci de algo importante neste artigo. Então é capaz que haja mais um artigo da série sobre Programação de Jogos Flash no Linux.

Google Buzz
Compartilhar: Share this post with the world.
  • Twitter
  • Posterous
  • Facebook
  • del.icio.us
  • Digg
  • Friendfeed
  • Google
  • LinkedIn
  • Reddit
  • StumbleUpon
  • Technorati

Posts semelhantes:

  1. Criando Flash Games no Linux
  2. Flash Games em Dispositivos Móveis
  3. Por que eu gosto de jogos em Flash?
  4. Fast Flash Gamming
  5. GameJolt – Site de games que vale a pena!

6 Comments

  • Pingback: Criando jogos em Flash no Linux – Parte 2

  • lucas
    18/05/2010 - 22:40 | Permalink

    e ae kra?!
    passando aki pra agradecer,
    sou iniciante em desenvolvimento de jogos e achei varias coisasutieis em seu blog(q nao tinha achado em lugar nenhum)
    vlw!!!!!

  • Daniel Monteiro
    18/12/2010 - 12:19 | Permalink

    Muito boa a dica do MiniBuilder! Valeu pela dica! Espero que nos esbarremos por ai em algum Game Jam (sou da RioGDug também ;-) )

    []s

  • Daniel Monteiro
    18/12/2010 - 12:56 | Permalink

    Uma coisa que me lembrei agora: Como fica pra incluir um SWC criado por alguem no Flash CS5, por exemplo? Eu sei, eu sei…RTFM, mas se você souber e for rápido de me contar, porque não perguntar?

    []s

  • Thiago
    30/12/2010 - 12:24 | Permalink

    Olá Bruno!

    Achei excelente esses tutoriais para criar games no linux. Porém estou tendo muitos problemas para fazer tudo funcionar direitinho no meu ubuntu 10.10. Eu instalei o flash debugger, porém eu não consigo visualizar o trace de jeito nenhum… o flashlog.txt está sempre vazio. Eu segui outros tutoriais pra conseguir fazer o trace, como este http://www.arulraj.net/2010/08/flash-player-debug… mas não deu certo ainda… Se você tiver algum insight em como posso conseguir ver o trace, seria de grande ajuda!

    • 30/12/2010 - 15:12 | Permalink

      Olá, Thiago,

      Aqui o trace aparece no terminal. Basta chamar o flashplayer pelo terminal que o trace aparece lá.

      Pelo menos ainda não tive problemas com isso…

  • Leave a Reply

    Your email address will not be published. Required fields are marked *

    *

    You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>