Drawing infinite rectangles on android

0

I'm trying to draw infinite rectangles on my canvas from a distance, but I can not. It starts well but in the second loop or the rectangle is the size of the screen or they disappear. I wanted three rectangles to appear in each loop.

public class Obstaculos {

    private Tela tela;
    private static int QUANTIDADE_INIMIGOS = 5;
    private static int DISTANCIA_INIMIGOS = 200;
    private static int DISTANCIA_INIMIGOS_HORIZONTAL=100;
    private Context context;
    private List<Obstaculo> obstaculos = new ArrayList<Obstaculo>();

    public Obstaculos(Context contex, Tela tela) {
        this.context=contex;
        this.tela = tela;


         int inimigoEsquerda=00;
         int inimigoBaixoDireita=75;

        for (int i = 0; i < QUANTIDADE_INIMIGOS; i++) {
            inimigoEsquerda += DISTANCIA_INIMIGOS;
            inimigoBaixoDireita += DISTANCIA_INIMIGOS;
            this.obstaculos.add(new Obstaculo(context,tela, inimigoEsquerda,inimigoBaixoDireita));
        }
    }

    public void desenhaObstaculosNo(Canvas canvas){
        for(Obstaculo obstaculo: this.obstaculos){
            obstaculo.desenhaObstaculoNo(canvas);
        }

    }

    private int maiorPosicaoBaixoDireita(){
        int maximoBD=0;
        for(Obstaculo obstaculo: this.obstaculos){
            maximoBD= Math.max(obstaculo.getInimigoBaixoDireita(),maximoBD);
        }
        return maximoBD;
    }
    private int maiorPosicaoDireita(){
        int maximoD=0;
        for(Obstaculo obstaculo: this.obstaculos){
            maximoD= Math.max(obstaculo.getInimigoDireita(),maximoD);
        }
        return maximoD;
    }
    private int maiorPosicaoBaixoEsquerda(){
        int maximoBE=0;
        for(Obstaculo obstaculo: this.obstaculos){
            maximoBE= Math.max(obstaculo.getInimigoBaixoEsquerda(),maximoBE);
        }
        return maximoBE;
    }

    private int maiorPosicaoEsquerda(){
        int maximoE=0;
        for(Obstaculo obstaculo: this.obstaculos){
            maximoE= Math.max(obstaculo.getInimigoEsquerda(),maximoE);
        }
        return maximoE;
    }


    public void move(){
        ListIterator<Obstaculo> iterator= this.obstaculos.listIterator();
        while(iterator.hasNext()){
            Obstaculo obstaculo= (Obstaculo) iterator.next();
            obstaculo.move();

            if(obstaculo.saiuDaTela()){
                iterator.remove();
                Obstaculo outroObstaculo= new Obstaculo(this.context,this.tela,maiorPosicaoEsquerda()-maiorPosicaoBaixoDireita(),maiorPosicaoBaixoEsquerda()-maiorPosicaoBaixoDireita());
                iterator.add(outroObstaculo);
            }
        }

    }
} 

public class Obstaculo {


    private int inimigoDireita;
    private int inimigoEsquerda;
    private int inimigoBaixoDireita;
    private int inimigoBaixoEsquerda;
    private static Paint VERDE= Cores.getCorObstaculo();
    private Tela tela;
    private Context context;

        public Obstaculo(Context context,Tela tela, int inimigoEsquerda, int inimigoBaixoDireita){
            this.context=context;
            this.tela=tela;
            this.inimigoDireita=450;
            this.inimigoBaixoEsquerda=350;
            this.inimigoEsquerda=inimigoEsquerda;
            this.inimigoBaixoDireita=inimigoBaixoDireita;


        }


        public void move(){
            this.inimigoDireita-=3;
            this.inimigoBaixoEsquerda-=3;

        }

        public void desenhaObstaculoNo(Canvas canvas){
            canvas.drawRect(this.inimigoDireita,this.inimigoEsquerda,this.inimigoBaixoEsquerda,this.inimigoBaixoDireita,VERDE);
        }
        public int getInimigoBaixoEsquerda(){
            return this.inimigoBaixoEsquerda;
        }
        public int getInimigoEsquerda(){
            return this.inimigoEsquerda;
        }
        public int getInimigoDireita(){
            return this.inimigoDireita;
        }
        public int getInimigoBaixoDireita(){
            return this.inimigoBaixoDireita;
        }

        public boolean saiuDaTela(){
            return inimigoDireita+inimigoBaixoEsquerda<0;
        }




    }
    
asked by anonymous 16.11.2018 / 15:47

0 answers