Jogo estlio WAR, dúvida com relação ao tabuleiro

7 respostas
V

Esses dias estava pensando em montar um jogo clone do war de tabuleiro

Só que o mais simples possivel, seria mais pelo aprendizado e talz

A dúvida que eu tenho agora é: Como gerenciar os clicks nos territórios??

Explicando melhor: Eu aponto o mouse para um território e clico. Como saber em qual território eu cliquei?

Sera que existe algo semelhante ao esquema de maps que existe no HTML ?

Alguma luz?

Muito obrigado

7 Respostas

cv1

Swing?

louds

vc quer collision detection?

Bom, supondo que o formato dos territorios não é convexo a maneira mais facil de descobrir qual territorio foi clicado e construir 1 bitmap que guarda qual o territorio de 1 dado pixel, ai é bico fazer oque voce quer.

V

Eu andei pesquisando e achei o método contains() do JComponent, mas eu acho que esse metodo só funcionaria se eu desenhasse o territorio não mão… usando uma imagem nem rola

Ou você tem outra sugestão?

“louds”:
vc quer collision detection?

Bom, supondo que o formato dos territorios não é convexo a maneira mais facil de descobrir qual territorio foi clicado e construir 1 bitmap que guarda qual o territorio de 1 dado pixel, ai é bico fazer oque voce quer.

Isso mesmo, collision detection. Desculpe louds, eu não consegui entender o que você quis dizer

Muito obrigado pela Ajuda!

cv1

Perae, nao da pra vc colocar a imagem num JComponent, e adicionar um MouseListener nele? Dai eh soh pegar o (x,y) de onde o mouseClick aconteceu :slight_smile:

V

Excelente idéia :wink:

Vou testar aqui com algumas imagens irregulares

valew

louds

Voce vai desenhar a imagem na tela e saber em qual pixel ela foi clicada, isso está claro, certo?

Oque voce precisa é de uma função assim:

int calcTerritorio(int x, int y) {
....
}

A forma mais simples é usar um bitmap para isso:

int[] territorios = new int[] {
  -1, -1, 0, 0, 2,
  -1,  1, 0, 2, 2,
   1,  1, 0, 0, 2,
   -1, 1, 1, 2, 2,
};

Basta fazer 1 lookup usando o x, y da tua imagem nisso.

Uma forma bem prática de fazer isso é usando gimp, ou photoshop, é desenhar em tons de cinza num layer acima da imagem do teu mapa.

V

Agora eu entendi o que você quis diser louds… valew mesmo!
Vou dar uma fuçada aqui!

Abraços

Criado 30 de dezembro de 2003
Ultima resposta 30 de dez. de 2003
Respostas 7
Participantes 3