Dúvida sobre desenvolvimento de jogos com java

5 respostas Resolvido
AlissonLopes

Galera sou iniciante aqui no GUJ e não sei fazer um tópico bem formatado, mas a dúvida é bem simples.
Eu estou criando um jogo em java, eu criei uma janela com JFrame, já fiz a parte de Login, mas eu estou em dúvida ao criar a parte “jogavel”, eu devo criar outra janela ou mudar os componentes da já existente?

5 Respostas

rodriguesabner

Fala Alisson, seja bem vindo ao fórum. Pra fazer um tópico formatado e bem legível, você pode seguir essas instruções:

Agora sobre o seu questionamento, é bom fazer em outra tela, a tela de login passa pra uma tela de menu, por exemplo. É sempre interessante deixar cada um no seu quadrado, pra não deixar uma classe com 10 mil linhas. (e separando tudo vc consegue fazer uma boa manutenção).

Um site que vc pode pegar alguns exemplos (básicos, mas que dão uma boa noção), é aqui:

https://code-projects.org/c/languages/project/javaprojects/

AlissonLopes

Eu vou ler esse post de formatação, é também criar outra janela para a parte “jogável”. Obrigadão…

staroski

Em aplicações desktop eu costumo utilizar um único JFrame com um contentPane utilizando CardLayout e para cada tela diferente de meu sistema eu estendo JPanel.

rodriguesabner

Sério? Seu código não fica gigante com isso?

Com apenas um JFrame ok, o restante pode ser um JDialog, mas como fica a manutenção? Não fica bagunçado?

staroski
Solucao aceita

Claro que não, você implementa cada tela em uma classe distinta, se a tela for muito complexa, partes dela também podem ser implementadas em classes distintas, assim a responsabilidade de cada classe fica bem reduzida e de fácil manutenção.

Como eu fiz jogos até hoje:

  • 1 JFrame pra execução da aplicação;
  • 1 JPanel pra tela de título;
  • 1 JPanel ou um JDialog para configurações do jogo;
  • 1 JPanel para renderizar o mundo do jogo.

E, obviamente, classes e estruturas de dados para representar o Jogo em si, por exemplo:

  • 1 GameLoop responsável por executar o tradicional loop de um jogo: (ler entrada do usuário, atualizar estado dos objetos, desenhar objetos)
  • 1 Classe Mundo ou Cenario
  • 1 superclasse Elemento com atributos e operações comuns aos elementos renderizados (coordenadas, tamanho, imagens)
  • 1 Classe Jogador que estende elemento e é controlada pelo usuário
  • 1 Classe Inimigo que também estende elemento e é controlada por uma IA
Criado 22 de outubro de 2019
Ultima resposta 23 de out. de 2019
Respostas 5
Participantes 3