Eu tenho feito programação web de front e back end há mais de um ano, e agora estou tentando aprender programação de jogos 2D em Java. Com base em várias fontes na Web e em um amigo meu, que é um desenvolvedor de jogos experiente, essa é uma configuração típica:
Window.java | Classe de configuração da janela
Game.java | Aula principal do jogo
Mas quando eu tento executar a classe Game
, o quadro é aberto e, em seguida, congela, a única coisa que eu tenho controle é o meu mouse, nada mais. Eu sei que o problema ocorre no método render
, porque o programa é executado corretamente quando esse método tem um corpo vazio.
Eu copiei o código exatamente do tutorial em que ele roda bem, e meu amigo que me enviou uma versão quase idêntica, que funciona em seu computador, causa o mesmo congelamento para mim. Tanto no tutorial quanto no teste do meu amigo, o sistema operacional é o Windows, o que me faz acreditar que isso é estritamente um problema do Ubuntu / Linux.
Eu tenho um processador Intel i7 3.4gHZ e 8 GB de RAM, portanto, processamento e memória não devem ser o problema aqui. Alguma idéia do que está acontecendo? Eu sei que isso é mais uma questão de programação, mas o fato de que o problema parece ser específico do Ubuntu me leva a postar aqui.
EDITAR
Eu isolei o problema em uma linha na classe Game: bs.show()
. Por algum motivo, está congelando assim que tento mostrar a estratégia do buffer. Se eu criar a estratégia de buffer com 1 buffer, ele funciona bem, com algo maior que 1, ele congela.
Quando ele congelou o tempo mais recente, eu abri um desktop virtual e rodei top
, o mais estranho é que o Java estava ocupando menos de 2% de CPU e 6% de memória. Isso simplesmente não se soma. Eu realmente preciso de alguma ajuda para o que está acontecendo aqui, eu fui até onde eu posso ir e não quero forçar mais reinicializações na minha máquina.