Boa tarde
Estou com um probleminha, os canos superiores não estão encostando na parte superior do celular e está variando a posição acho q do aleatório como o tamanho também, mesmo estando na posição zero não subiu... desde já agradeço ... abaixo a classe cano...
package br.com.alura.jumper.elements;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import br.com.alura.jumper.R;
import br.com.alura.jumper.graphic.Cores;
import br.com.alura.jumper.graphic.Tela;
public class Cano {
private Tela tela;
private int alturaDoCanoInferior;
private int alturaDoCanoSuperior;
private static final int TAMANHO_DO_CANO = 250;
private static final int LARGURA_DO_CANO = 100;
private static final Paint VERDE = Cores.getCorDoCano();
private int posicao;
private Bitmap canoInferior;
private final Bitmap canoSuperior;
public Cano(Tela tela, int posicao, Context context){
this.tela = tela;
this.posicao = posicao;
alturaDoCanoInferior = tela.getAltura() - TAMANHO_DO_CANO - valorAleatorio();
alturaDoCanoSuperior = 0 + TAMANHO_DO_CANO + valorAleatorio();
Bitmap bp = BitmapFactory.decodeResource(context.getResources(), R.drawable.cano);
canoInferior = Bitmap.createScaledBitmap(bp, LARGURA_DO_CANO, alturaDoCanoInferior, false);
canoSuperior = Bitmap.createScaledBitmap(bp, LARGURA_DO_CANO, alturaDoCanoSuperior, false);
}
private int valorAleatorio() {
return (int) (Math.random() * 150);
}
public void desenhaNo(Canvas canvas){
desenhaCanoInferiorNo(canvas);
desenhaCanoSuperiorNo(canvas);
}
private void desenhaCanoSuperiorNo(Canvas canvas){
//canvas.drawRect(posicao, 0, posicao + LARGURA_DO_CANO, alturaDoCanoSuperior, VERDE);
canvas.drawBitmap(canoSuperior,posicao, alturaDoCanoSuperior, null);
}
private void desenhaCanoInferiorNo(Canvas canvas) {
//canvas.drawRect(posicao, alturaDoCanoInferior, posicao + LARGURA_DO_CANO, tela.getAltura(), VERDE);
canvas.drawBitmap(canoInferior,posicao, alturaDoCanoInferior, null);
}
public void move() {
this.posicao -= 5;
}
public boolean saiuDaTela() {
return posicao + LARGURA_DO_CANO < 0;
}
public int getPosicao() {
return posicao;
}
public boolean temColisaoHorizontalCom(Passaro passaro) {
return this.posicao < passaro.X + passaro.RAIO;
}
public boolean temColisaoVerticalCom(Passaro passaro) {
return passaro.getAltura() - passaro.RAIO < this.alturaDoCanoSuperior
&& passaro.getAltura() + passaro.RAIO > this.alturaDoCanoInferior;
}
}