FXG to Java2D converter, alguém conhece?

Algum de vocês já desenvolveu (ou pensou em desenvolver) algum jogo ou qualquer shape utilizando somente Java 2D :?:

Fez (ou tentou fazer) sem nenhuma imagem externa :?:

Caso sim, você provavelmente deve ter notado com é difícil unir várias: line, oval, rect, polygon entre outras formas primitivas para formar uma única shape. Fazer isto com GeneralPath acaba dificultando muito e muito mais…

Enfim, eu estava tentando desenhar formas somente com Java 2D, sabe alguns joguinhos nada de mais, porém não queria ficar dependendo de imagens externas. Desenhei bastante coisa, mesmo com trabalho exaustivo de cálculos e mais cálculos, para deixar meus desenho serem redimensionados, recoloridos e livres para qualquer alteração ao final do projeto…

Foi então que descobrir está ferramenta FXG to Java2D converter (desenvolvida em Java e com código aberto), mesmo com alguns probleminhas (nada que não possamos resolver) que o próprio autor descreve em seu site, eu achei está ferramenta, resumindo em uma única palavra sublime. Confiram.

Para usar só Java 2D, você precisará:

  1. Aprender como usar o AffineTransform;
  2. Aprender sobre vetores.

Com isso, você praticamente elimina os “cálculos exaustivos”. Dê uma lida:
http://pontov.com.br/site/arquitetura/54-matematica-e-fisica/238-matrizes-e-transformacoes-parte-1
http://pontov.com.br/site/arquitetura/54-matematica-e-fisica/267-matrizes-e-transformacoes-parte-2
http://pontov.com.br/site/arquitetura/54-matematica-e-fisica/132-o-uso-de-vetores-nos-jogos

Olá ViniGodoy :smiley:

Não sei se você leu sobre o FXG to Java2D converter. No link mostra o que é e para que serve a ferramenta FXG to Java2D converter. Ou talvez eu não me expressei direito no 1º post.

Sobre:

[quote=ViniGodoy]Para usar só Java 2D, você precisará:

  1. Aprender como usar o AffineTransform;
  2. Aprender sobre vetores.[/quote]

Eu sei usar AffineTransform e vetores e também gosto de matemática (eu sabia que as matrizes no segundo grau serviriam e servem para algo :smiley: )

Quando me referi sobre os “cálculos exaustivos”, dizia sobre desenhar formas (seja um dragão, super-herói ou qualquer coisa do tipo), sem utilizar imagens externas (seja ela .jpg, .png, Bitmap em geral)… e não sobre rotação, transformações, coordenadas ou qualquer tipo de movimentação que envolva plano cartesianos. Tudo isto pertence a camada de negócio em games (me corrija se eu estiver errado :smiley: )
Tanto que eu já li (em outra época, estes artigos que você recomendou e outros do Ponto V).

Voltando ao assunto principal (o do início tópico :smiley: ):

A ferramenta FXG to Java2D converter serve para transferir os protótipos de design da Adobe Fireworks em elementos Java2D. Devido a exportação que o Fireworks CS4 (somente a partir desta versão) faz para o chamado FXG e é semelhante ao SVG, mas foi criado pela Adobe para trocar imagens dentro da Adobe CS4 suite. Este arquivo FXG, nada mais é do que um xml com as coordenadas das layers vetoriais do Fireworks.

Resumindo a ferramenta faz a parte da camada de apresentação (ainda que de maneira “suja”, mas que pode ser facilmente resolvido) para os interessados (que é o meu caso :smiley: ) e/ou profissionais em design gráfico (Fireworks CS4) e programação em Java (API Java 2D). Algo que no seus artigos (os que você recomendou e que tem o foco diferente) não faz, lá você mostra como manipular (em plano cartesiano) imagens, mas para isto você terá que ter a imagem da vaca, do carro, da princesa, do igor e do jogador de futebol, já FXG to Java2D converter desenha estas imagens (após você converte-las para imagens vetoriais) em Java 2D, bastando somente algumas modificações “de limpeza no código”.

E quais são as vantagens (segue algumas):

Teria sido muito mais fácil, ao autor deste tópico: http://www.guj.com.br/java/96709-mudar-cores-em-imagem/3 ter usado a ferramenta FXG to Java2D converter para desenhar e recolorir seus bonés do que ter que ficar procurando pixeis pretos em imagem e substituindo por outras cores (isto já nos leva a segunda, e talvez mais importante, vantagem e termos de performance). E também não seria necessário “esticar” imagens e perde qualidade, devia a pixelização.

Não sei se é do seu interesse, mas, caso você não tenha visto mais um vez recomendo, vale a pena, FXG to Java2D converter. :thumbup:

Oi vi sim, achei legal a ferramenta.

E, claro, desenhar formas na mão, via código, é impraticável. Com certeza uma ferramenta vetorial assim ajuda muito. :slight_smile: