@Override protected void onDraw(Canvas canvas) { // super.onDraw(canvas); canvas.drawColor(Color.GRAY); pj.draw(canvas); col.draw(canvas); }
// Metodo para actualizar en todo momento si los objetos colesionan con los bordes de la pantalla public void update() { // Choque con la pared superior if (pj.getY() - pj.getBitmap().getHeight() / 2 <= 0) { Log.d(TAG, "Ha tocado techo"); pj.getVelocidad().setyv(0); pj.getVelocidad().setxv(0); pj.setY((float) ((0 + pj.getBitmap().getHeight() / 2) + 0.1)); } // Choque con el suelo if (pj.getVelocidad().getDireccionEnY() == Velocidad.DIRECCION_ABAJO && pj.getY() + pj.getBitmap().getHeight() / 2 >= getHeight()) { // pj.getVelocidad().cambiarDireccionEnY(); Log.d(TAG, "Ha tocado suelo"); pj.getVelocidad().setyv(0); pj.getVelocidad().setxv(0); // Aplicando el -0.1 hacemos que el usuario piense que esta en el suelo, casteamos a float // porque 0.1 no entra en el rango de los float pj.setY((float) ((getHeight() - pj.getBitmap().getHeight() / 2) - 0.1)); } pj.update(); col.getVelocidad().setxv(-29); col.getVelocidad().setDireccionEnX(Velocidad.DIRECCION_IZQUIERDA); if (col.getVelocidad().getDireccionEnX() == Velocidad.DIRECCION_IZQUIERDA && col.getX() - col.getBitmap().getWidth() <= 0) { col.setX(getWidth()); col.setY(rand.nextInt(701)); } col.update(); if (pj.getY() == col.getX()) { Log.d( TAG, "CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE "); Log.d( TAG, "CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE "); Log.d( TAG, "CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE "); Log.d( TAG, "CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE CHOQUE "); } }