Usando JavaFx No Desenvolvimento De Jogos

  • View
    1.872

  • Download
    3

Embed Size (px)

Text of Usando JavaFx No Desenvolvimento De Jogos

  • 1. Usando JavaFX no desenvolvimento de jogos Hamilton Lima Abril 2009

2. Roteiro

  • Introduo ao JavaFX
  • Programao para Jogos 2D
  • Desafios enfrentados com JavaFX
  • Concluses

3. Introduo JavaFX

  • Linguagem de Script
  • Oferece fcil integrao com Java
  • Recursos visuais superiores a Swing
  • Aposta da SUN no mercado RIA

4. Competidores do JavaFX

  • Silverlight da Microsoft
    • Lanado em 2008
  • Adobe Flash / Flex / Air
    • Flash desde 1996, Flex em 2005
  • JavaFX lanado no final de 2008

5. Distribuio de Flash players [1] 6. Ofertas de emprego em RIA mercado americano [2] 7. Ofertas de Java comparadocom outras linguagens [3] 8. Cenrio

  • JavaFX tem A comunidade Java por trs
  • A adoo estratgica 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
  • Reaes
  • Eventos baseados no loop do jogo

15. Desafios de jogos em JavaFX

  • Coisas legais
    • Criao loop principal
    • Suporte a SVG
    • Caching de sprites
    • Suporte a coliso
  • Coisas nem to legais
    • Suporte a audio
    • Distribuio

16. Coisas Legais 17. Criao loop principal Roda indefinidamentecom passos de10 milisegundos 18. Criao loop principal Procura nos elementosDe Group que nodes soUpdatable eexecuta mtodoUpdate() 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 cdigo JavaFX FXDLoader.load() cuida De trazer o contedoDe um arquivo FXZ paraA aplicao 23. Caching de spritesUm Pool de objetos comoOutro qualquer, com aDiferena de somenteFazemos caching da criao Do objeto pois a cadaSolicitao fazemosuma cpia do objeto. 24. Suporte a coliso Somente atravsde retangulos 25. Suporte a coliso Colidiu com o retnguloDa circunferncia 26. Alternativa para a limitao da coliso

  • Usar uma boudingbox menor que o elemento desenhado para calcular a coliso.
  • Valeu Silveira Neto [6] ! =)

27. Coisas nem to legais 28. Suporte a udio

  • JavaFX tem embutido a engine de audio e video da On2 [7]
  • Somente suporta uma combinao mgica de MP3
    • 48000Hz compactada com 96bits
  • Ticket de bug aberto

29. Suporte a udio alternativa

  • Implementao [9] com uso de biblioteca MP3 implementada em Java Jlayer [8]

30. Distribuio do resultado final

  • Applet
    • No possui progressbar, talvez uma soluo como a usada no PulpCore [10], de criar um Applet loader.
  • Webstart
    • Interface com usurio em ingls
    • JNLP baixado precisando o usurio mandar executar
    • JavaFX RunTime SOMENTE online, no pode fazer download com o Jogo

31. Concluses

    • Criao loop principal
    • Suporte a SVG
    • Caching de sprites
    • Suporte a coliso
    • Suporte a audio
    • Distribuio

32. Concluses 33. Como me achar ?

  • Procure debaixo da cama
  • Comente no meu blogwww.athanazio.com
  • Fale com meu secretrio,o Sr. Wilson
  • Grite meu nome bem alto debaixo de uma amendoeira no Cachambi

34. Referncias

  • [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] cdigo fonte dos cabeudinhos,http://svn.vacavitoria.com/cabecudinhos_1/
  • [5] processo de criao de interface,http://www.athanazio.com/2009/03/10/javafx-processo-de-criacao-de-interface/

35. Referncias

  • [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] Implementao 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/