Tag Archives: inkscape

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