Problema com comunicação entre classes

3 respostas
Andre_Brito

Oi pessoal.
Eis o problema: tenho 2 classes: Tela e Jogo. A classe Jogo vai cuidar de toda a lógica de um determinado problema, enquanto que a classe Tela vai cuidar (obviamente) dos dados gráficos e da entrada do teclado (por exemplo, detectar que a tecla “Up” foi apertada). O problema é que eu tenho que notificar a classe Jogo que a tecla para cima foi apertada. Porém, eu não tenho uma referência de Jogo em Tela, somente o contrário (é o correto?).

Deve ser possível de existir uma maneira de, quando a tecla para cima foi pressionada, avisar a classe Jogo. O que já tentei:

  • Um método static, enviando a tecla que foi apertada. Não deu certo porque dentro do método static eu preciso chamar outros (movimentarCima(), baixo(), direita() e equerda() - que não são static); - (acho que parece um pouco com o pattern Observer)

O que posso tentar fazer:

  • Uma outra classe, chamada Notificadora, que a Tela tem referência. Quando a tecla para cima for apertada, a Tela chama um método (paraCima()), que por sua vez chama o movimentarCima() de Jogo. Isso eu acho meio gambi…
    - Implementei essa Notificadora, mas do pior jeito possível. Apesar de estar funcionando, quero mudar esse esquema, para que fique o mais coeso possível. Além do mais, ela é um Singelton (vergonha de falar isso) :confused:

O que vocês me aconselhariam?

Abraço.

3 Respostas

Marky.Vasconcelos

Não é em Java mas ensina como fazer essa parte.

Andre_Brito

Opa.
Mark, acho que não tem muito a ver com desenvolvimento de jogos… É mais com OO e coesão…

Abraço.

Marky.Vasconcelos

Lá mostra essa parte daonde fica a lógica e aonde fica a tela e como cada um se modifica.

Criado 7 de novembro de 2008
Ultima resposta 9 de nov. de 2008
Respostas 3
Participantes 2