Your SlideShare is downloading. ×
Usando JavaFx No Desenvolvimento De Jogos
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Usando JavaFx No Desenvolvimento De Jogos

1,850
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,850
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
37
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Usando JavaFX no desenvolvimento de jogos Hamilton Lima Abril 2009
  • 2. Roteiro
    • Introdução ao JavaFX
    • Programação para Jogos 2D
    • Desafios enfrentados com JavaFX
    • Conclusões
  • 3. Introdução JavaFX
    • Linguagem de Script
    • Oferece fácil integração com Java
    • Recursos visuais superiores a Swing
    • Aposta da SUN no mercado RIA
  • 4. Competidores do JavaFX
    • Silverlight da Microsoft
      • Lançado em 2008
    • Adobe Flash / Flex / Air
      • Flash desde 1996, Flex em 2005
    • JavaFX lançado no final de 2008
  • 5. Distribuição de Flash players [1]
  • 6. Ofertas de emprego em RIA mercado americano [2]
  • 7. Ofertas de Java comparado com outras linguagens [3]
  • 8. Cenário
    • JavaFX tem A comunidade Java por trás
    • A adoção é estratégica para competir no mercado RIA
  • 9. zzzzz
    • pelamordeDeus ! Show me the code !!
  • 10. JavaFX Hello World
    • Stage {
    • title: "Application title"
    • width: 250
    • height: 80
    • scene: Scene {
    • content: Text {
    • font : Font {
    • size : 16
    • }
    • x: 10, y: 30
    • content: "Hello World"
    • }
    • }
    • }
  • 11. Movendo um objeto na tela
    • var myChar :Rectangle = Rectangle {
    • x: 20,
    • y: 20
    • width: 60,
    • height: 60
    • fill: Color.RED
    • onKeyPressed: function(e: KeyEvent){
    • if( e.code == KeyCode.VK_LEFT ){ myChar.x -= 3; }
    • if( e.code == KeyCode.VK_RIGHT ){ myChar.x += 3; }
    • if( e.code == KeyCode.VK_UP ){ myChar.y -= 3; }
    • if( e.code == KeyCode.VK_DOWN ){ myChar.y += 3; }
    • }
    • };
  • 12. Movendo um objeto na tela
    • Stage {
    • title: "Movendo um quadrado pela tela"
    • width: 320
    • height: 280
    • scene: Scene {
    • content: [
    • myChar
    • ]
    • }
    • }
  • 13. Um jogo mais complexo… [4]
  • 14. Falando de Jogos 2D
    • Loop principal
    • Eventos
    • Reações
    • Eventos baseados no loop do jogo
  • 15. Desafios de jogos em JavaFX
    • Coisas legais
      • Criação loop principal
      • Suporte a SVG
      • Caching de sprites
      • Suporte a colisão
    • Coisas nem tão legais
      • Suporte a audio
      • Distribuição
  • 16. Coisas Legais
  • 17. Criação loop principal Roda indefinidamente com passos de 10 milisegundos
  • 18. Criação loop principal Procura nos elementos De Group que nodes são Updatable e executa método Update()
  • 19. Exemplo de update()
  • 20. Suporte a SVG
    • SVG – Scalable Vector Graphics
    • Pode ser redimensionado sem perder qualidade
    • Baseada em XML
  • 21. Como funciona o suporte a SVG [5]
  • 22. Usando o FXZ no código JavaFX FXDLoader.load() cuida De trazer o conteúdo De um arquivo FXZ para A aplicação
  • 23. Caching de sprites Um Pool de objetos como Outro qualquer, com a Diferença de somente Fazemos caching da criação Do objeto pois a cada Solicitação fazemos uma cópia do objeto.
  • 24. Suporte a colisão Somente através de retangulos
  • 25. Suporte a colisão Colidiu com o retângulo Da circunferência
  • 26. Alternativa para a limitação da colisão
    • Usar uma boudingbox menor que o elemento desenhado para calcular a colisão.
    • Valeu Silveira Neto [6] ! =)
  • 27. Coisas nem tão legais
  • 28. Suporte a áudio
    • JavaFX tem embutido a engine de audio e video da On2 [7]
    • Somente suporta uma combinação mágica de MP3
      • 48000Hz compactada com 96bits
    • Ticket de bug aberto
  • 29. Suporte a áudio alternativa
    • Implementação [9] com uso de biblioteca MP3 implementada em Java – Jlayer [8]
  • 30. Distribuição do resultado final
    • Applet
      • Não possui progressbar, talvez uma solução como a usada no PulpCore [10], de criar um Applet loader.
    • Webstart
      • Interface com usuário em inglês
      • JNLP é baixado precisando o usuário mandar executar
      • JavaFX RunTime SOMENTE online, não pode fazer download com o Jogo
  • 31. Conclusões
      • Criação loop principal
      • Suporte a SVG
      • Caching de sprites
      • Suporte a colisão
      • Suporte a audio
      • Distribuição
  • 32. Conclusões
  • 33. Como me achar ?
    • Procure debaixo da cama
    • Comente no meu blog www.athanazio.com
    • Fale com meu secretário, o Sr. Wilson
    • Grite meu nome bem alto debaixo de uma amendoeira no Cachambi
  • 34. Referências
    • [1] Flash Player penetration , http://www.adobe.com/products/player_census/flashplayer/
    • [2] Job offers in RIA, http://www.indeed.com/jobtrends?q=JavaFX,+silverlight,+adobe+flex
    • [3] Job offers Java against JavaScript, C#, VbScript, Flash, http://www.indeed.com/jobtrends?q=Java,+javascript,+c%23,+vbscript,+flash
    • [4] código fonte dos cabeçudinhos, http://svn.vacavitoria.com/cabecudinhos_1/
    • [5] processo de criação de interface, http://www.athanazio.com/2009/03/10/javafx-processo-de-criacao-de-interface/
  • 35. Referências
    • [6] How to create a RPG like game,
    • http://silveiraneto.net/2008/12/08/javafx-how-to-create-a-rpg-like-game/
    • [7] On2 technologies, http://www.on2.com/
    • [8] Jlayer – pure Java mp3 library, http://www.javazoom.net/javalayer/javalayer.html
    • [9] Implementação de suporte a MP3 com Jlayer, http://svn.vacavitoria.com/cabecudinhos_1/mp3AsMediaPlayer/
    • [10] PulpCore biblioteca para jogos 2D em Applet, http://www.interactivepulp.com/pulpcore/