Olá pessoal,
Eu tenho que desenvolver um jogo, mas não tenho nem idéia de como simular o movimento. Meu personagem deveria ser movido pelo teclado, mas como eu faço para ele se mover?
Eu tentei fazer da seguinte forma: criei um ImageIcon, depois um JLabel e adicionei a imagem no JLabel pelo método setIcon. Adicionei um KelListner a esse JLabel e no método eu coloquei para quando se colocasse para o lado, o Insets desse Label (estou usando GridBagLayout) mudaria. Não funcionou. E isso também está parecendo uma guambiarra. Alguem sabe qual seria o jeito correto de simular o movimento de uma imagem na tela? Ou teria algum exemplo da onde eu pudesse tirar uma idéia?
Agradeço desde já.
Olá.
Você deve usar uma thread para desenhar continuamente o seu label. Essa será a main thread do jogo.
Na verdade, ao invés de usar label, você sobrescreve o método paintComponent do painel principal do seu jogo e pinta tudo (imagens, fundo, etc) diretamente, sem usar os componentes do Swing.
A primeira dica que te dou é ler o livro Killer Game Programming in Java, que está completo no site do autor. Lá essa sua dúvida será resolvida.
A thread que desenha continuamente o jogo é chamada de MainLoop. Existem duas principais técnicas para implementar o main loop. A primeira é manter a taxa de frames por segundo e updates por segundo no máximo possível. E isso pode variar a cada iteração do loop. Ou seja, para desenhar as coisas corretamente, você deverá saber quanto tempo transcorreu entre uma execução do loop e a outra.
A segunda técnica, que descrevo nesse artigo é baseada na implementação do Killer. Consiste em deixar a taxa de updates por segundo constante, enquanto a taxa de frames por segundo fica maximizada. Assim, não é necessário saber quanto tempo transcorreu entre uma iteração e outra. Embora o algoritmo do loop em si seja um pouco mais complexo, o jogo todo fica mais simples.
A uns tempos atrás deixei aqui no GUJ um jogo que eu fiz, simples, com os códigos fontes e tudo mais. O jogo está cheio de comentários e já contém uma framework simples que implementei que te auxilia a mexer com recursos de som e imagem. O jogo chama-se Vikanoid e é uma implementação de um jogo muito conhecido, chamado Arkanoid.
Nossaaaaaaaaaaaaa! Que ajuda, hein, cara! Poxa, nunca tinha visto uma resposta tão completa. Valeu mesmo! Brigadão!
Vo da uma estudada nesse material que você passou e depois provavelmente volto a postar as duvidas que apareceram. Valeu de novo!
E olha só, quase me esqueço!
Existe esse ótimo tutorial do Coke and Code, com um código do Space Invaders. Achei ele bem legalzinho e serve de introdução enquanto o site do Killer não está lá 100%. 
\o/
Se eu te achar no orkut, te adiciono e viro teu fã!
Valeu de novo!
[]´s
[quote]Se eu te achar no orkut, te adiciono e viro teu fã!
[/quote]
Dica: existe uma comunidade do GUJ lá. 
Eu já tinha feito(e usado como modelo) um PacMan, mas bacaninha esse Space Invaders!!!