Ir para o conteúdo
Entertainer

ciclos for each duvida

Mensagens Recomendadas

Entertainer

Boas pessoal tenho de desenvolver um pequeno jogo mas estou com um pequeno bug, o problema e que nao percebo bem o pk do erro supostamente tenho 2 ciclos for each para me desenhar uma recta a acompanhar um objecto(estilo lazer), o problema depara-se quando tenho dois objectos a desenhar essa mira ao mesmo tempo, que em vez de apontar apenas os 2 para ela o 1 objecto q apontou nao apaga as sussecivas linhas e nao percebo porque se eu as estou a actualizar.

Obrigado desde já

Entertainer

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
brunoais

Não percebi a pergunta.

Olha, toma, usa isto:

.?..!?!!???


Agora usa-os no teu post.:)


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Entertainer

Boas pessoal tenho de desenvolver um pequeno jogo mas estou com um pequeno bug,o problema e :

Tenho uma função que me desenha uma recta de um objecto(torre), e um objecto em movimento(inimigo), portanto a recta está em constante atualização o problema está quando tenho dois ou mais objectos(torre) a distancia do inimigo(range) ele desenha as rectas das torres, mas nao apaga as rectas do 1 objecto ligado ao inimigo(ver figura).

Desenho do problema -> http://postimage.org/image/el55glpyp/8786bdfe/

Sei que a variavel s fica a null (quando "passa de uma torre para outra"), mas nao sei como impedir de usar o s para as 2 torres.

código da função:

f (shot != null) window.getDisplayer().remove(shot);
for (SimpleImage tower : towers) {
   for (MovingImage x : invaders) {

       if (Math.abs(tower.getPosition().distance(x.getPosition())) < RANGE) {

       // if (shooting == true) { // to target one target at once


           System.out.println(shot);
           SimpleShape s = new SimpleShape(
           new Line2D.Double(tower.getPosition().getX()
               + tower.getDimension().width / 2, tower.getPosition().getY()
               + tower.getDimension().height / 2, x .getPosition().getX()
               + x.getDimension().width / 2, x .getPosition().getY()
               + x.getDimension().height / 2),
               Color.green, 100); window.getDisplayer().refresh();
           shot = s;

           window.getDisplayer().remove(shot);

           //shooting = false;

           window.getDisplayer().add(s);

       }

   }
}

Editado por Rui Carlos
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.