Ok, to fazendo uma interface grafica de edição de missões para meu jogo e estou tendo problemas com o JMenuBar como segue na imagem. Não consigo fazer o menu desenhar e aceitar eventos de mouse por cima do maldito awt.label e tem o Canvas no frame da direita que tambem desenha por cima…
E então Moisés desceu do monte Sinai, carregando a tábua com 11 mandamentos. O décimo primeiro, que se perdeu nos anos devido a incapacidade da época de compreende-lo dizia: “Não misturarás AWT com Swing!”
Use um JLabel, não um java.awt label.
Não use o Canvas, no lugar, use o JComponent.
Aliás, só tem sentido em controlar o BufferStrategy se você não for atualizar uma porção da tela, e sim a tela toda. Como você está falando em loops de 20ms, o ideal seria você criar uma visualização full screen usando o FSEM, que utilizaria não só o Double Buffer, como o recurso de page flipping e muito mais aceleração de vídeo.
Agora, para que uma taxa de atualização tão alta num editor de missões? Para o game em si eu até entendo…
G
Guedez
a ideia original era como aparece na imagem, o mapa do jogo onde se passa a missão é renderizado no frame da direita, e com os botões da esquerda eu adiciono defesas ou npcs pelos seus codigos (o retangulo branco eh uma defesa). E a quantia de refresh “alta” eh pra n ter que fazer controle nenhum quando mexo nos sliders para dar scroll no mapa da missão, soh pega a imagem e plota no canvas baseado na posição dos scrolls
no caso ja esta funcionando, mas o jmenu desenha por baixo da imagem =/
Não precisa fazer controle nenhum com os scrolls. O próprio JScrollPane costuma a controlar isso para você. Basta definir um PreferredSize no seu JComponent.
Não é necessário um Animation Loop para isso. É só sobrescrever o PaintComponent para fazer o desenho direito e ser feliz.
No meu site, clique veja os meus dados. Lá tem um artigo com os meus jogos. E lá você pode baixar o caça à bandeira. Nesse jogo, existe um editor de mapa, que inclusive suporta scroll. Dê uma olhada.
G
Guedez
vlw!
consegui fazer o desenho sobre o JPane, entretanto tenho que chamar o metodo Repaint o tempo todo, nada muito diferente da maneira que eu usava antes para desenhar no Canvas, felizmente agora o JMenu desenha em cima do JPane como pretendido!