Pular para o conteúdo
CrossFly é 100% open sourceSiga no GitHub
CrossFlyCrossFly
Começar

Desktop (LWJGL3) 🖥️

Comece sempre pelo desktop: é o loop de iteração rápida. Não há hot-reload de Java, mas o cold start é de segundos — você valida a UI antes de sofrer com ciclos de build mobile.

Rodar

gradlew :lwjgl3:run

O Lwjgl3Launcher cria a aplicação: new Main(true, getCommandline(args)) — canStart=true sobe a UI imediatamente. mainClassName = dev.crossfly.lwjgl3.Lwjgl3Launcher.

Título, tamanho e rotação

Main.setDesktopTitle("Minha App");   // só tem efeito no desktop
main.rotate();                        // simula rotação (troca width/height) no desktop

Dimensões e escala vêm de Screen (Screen.width/height/scale/minSize).

⚠️ Dois pré-requisitos do desktop

  • crossfly-lib (JNI) precisa estar no java.library.path — o Main.create() chama SharedLibraryLoader.load("crossfly-lib") no arranque (em todos os alvos, exceto WebGL).
  • macOS exige a flag da JVM -XstartOnFirstThread (requisito do LWJGL3/GLFW no Mac). Sem ela, o app não abre janela.

Diagnóstico

  • O handler global de exceções canaliza falhas (ver Erros e logging).
  • Debug.showFPS = true para ver a taxa de quadros.
  • Gere screenshots (doc/loja): Main.getScreenShot(true).toPng("prefixo_").

Boas práticas

  • Desenvolva e valide a UI no desktop; só vá ao mobile quando a tela estiver pronta.
  • Teste rotação (rotate()) e diferentes tamanhos de janela para checar responsividade.

Erros comuns

  • Esquecer -XstartOnFirstThread no macOS (janela não abre).
  • crossfly-lib fora do java.library.path (falha no arranque).

Veja também

Esta página foi útil?