Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Eu VS Java

Duvida em jogo simples

Recommended Posts

Eu VS Java

Boas pessoal, estou a fazer um jogo para uma cadeira e preciso de ajuda.

Quero colocar os bonecos a movimentarem-se livremente pelo mapa. As posições livres do mapa pela qual eles se podem movimentar estão guardadas numa arraylist.

Queria utilizar um método que me permitisse verificar se uma posição esta livre e um método para mover as criaturas que utilizasse este método para verificar se a posição para a qual ele se quer movimentar esta livre e que as mova.

eis o que eu fiz, mas nao está a resultar:

private void moveCreeps() {
for (MovingImage invasor : invaders) {
switch (new Random().nextInt(2)){
case 0: //baixo
if(estalivre(invasor.getPosition().x , invasor.getPosition().y + 50)){
 invasor.move(invasor.getPosition().x , invasor.getPosition().y + 50);
}
break;
case 1://direita
if(estalivre(invasor.getPosition().x + 50, invasor.getPosition().y)){
 invasor.move(invasor.getPosition().x + 50, invasor.getPosition().y);
}
break;
case 2: //esquerda
if(estalivre(invasor.getPosition().x - 50, invasor.getPosition().y)){
 invasor.move(invasor.getPosition().x - 50, invasor.getPosition().y);
}
break;
}

}
}
private boolean estalivre(int xi, int yi) {
for (Point posicao : posicoes) {
if(posicao.getX()==xi&&posicao.getY()==yi){
for (MovingImage invasor : invaders) {
 if(invasor.getPosition().x == xi && invasor.getPosition().y == yi){
 return false;
 }return true;
}
}
}return false;
}

se me puderem ajudar agradeço

Edited by pmg
GeSHi

Share this post


Link to post
Share on other sites
HappyHippyHippo

se bem que eu nunca faria como estás a fazer ...

o que pretendes será algo como isto :

private boolean estalivre(int xi, int yi) {
 for (Point posicao : posicoes) {
   if(posicao.getX()==xi&&posicao.getY()==yi) {
     for (MovingImage invasor : invaders) {
        if(invasor.getPosition().x == xi && invasor.getPosition().y == yi) {
          // alguem encontrado no local
          return false;
        };
     }
   }
 }

 // como passou pela verificação, então não se encontra ninguém na posição
 return true;
}


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
HappyHippyHippo

teria uma representação lógica do tabuleiro/mundo do jogo onde estaria referenciado nas suas posições os objectos ai existentes.

dessa maneira, a verificação dos objectos numa posição específica é directa e não necessitaria ter um ciclo dentro de outro ...


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.