diff --git a/app/src/main/java/com/example/ellegadodepintia/ListaMinijuegos.kt b/app/src/main/java/com/example/ellegadodepintia/ListaMinijuegos.kt index 81630ab7c46f8dbb0d6f9989f63944c7c1c52876..154b78b8fddb14f362ab340de13e377dae2d931f 100644 --- a/app/src/main/java/com/example/ellegadodepintia/ListaMinijuegos.kt +++ b/app/src/main/java/com/example/ellegadodepintia/ListaMinijuegos.kt @@ -27,6 +27,8 @@ class ListaMinijuegos : AppCompatActivity(){ val minijuego2Layout = findViewById<FrameLayout>(R.id.minijuego2) minijuego2Layout.setOnClickListener { val intent = Intent(this, Minijuego2::class.java) + val flag = true + intent.putExtra("FLAG_KEY", flag) startActivity(intent) } diff --git a/app/src/main/java/com/example/ellegadodepintia/minijuego2/Minijuego2.kt b/app/src/main/java/com/example/ellegadodepintia/minijuego2/Minijuego2.kt index d2ed23e353a2beb7e8549b890a04beb711709c17..bc7ee872507d7c9dd3ace11b1c7aa9ef2b55fe17 100644 --- a/app/src/main/java/com/example/ellegadodepintia/minijuego2/Minijuego2.kt +++ b/app/src/main/java/com/example/ellegadodepintia/minijuego2/Minijuego2.kt @@ -65,6 +65,7 @@ class Minijuego2 : AppCompatActivity() { nube = findViewById(R.id.nube) fondo1 = findViewById(R.id.fondo1) fondo2 = findViewById(R.id.fondo2) + } private fun configurarAnimaciones() { @@ -82,8 +83,8 @@ class Minijuego2 : AppCompatActivity() { iniciarJuego() protagonista.y = (layout.height / 2).toFloat() fondo2.x = fondo1.x + fondo1.width * 4 - protagonista.x = protagonista.x + 40 - nube.x = protagonista.x + 30 + protagonista.x = protagonista.x + (layout.width*0.1).toInt() + nube.x = protagonista.x + (layout.width*0.03).toInt() } } @@ -176,32 +177,33 @@ class Minijuego2 : AppCompatActivity() { velocidad = 0f } else if (nuevaPosicionY + protagonista.height < techoPantalla) { protagonista.y = nuevaPosicionY - nube.y = protagonista.y + 100 + nube.y = protagonista.y + (layout.height*0.05).toInt() } } private fun generarObstaculo() { + val anchuraPantalla = layout.width + val alturaPantalla = layout.height val muroInferior = ImageView(this) muroInferior.setBackgroundResource(R.drawable.asi_minijuego_2_muro) - val screenHeight = findViewById<View>(android.R.id.content).height - val altualturaMuro = Random.nextInt(500, 1500) + val altualturaMuro = (alturaPantalla *(0.2f + Random.nextFloat() * (0.4f))).toInt() // Configurar posición y tamaño de la tuberÃa inferior - val layoutParams = RelativeLayout.LayoutParams(300, altualturaMuro) + val layoutParams = RelativeLayout.LayoutParams((anchuraPantalla*0.3f).toInt(), altualturaMuro) layoutParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT) muroInferior.layoutParams = layoutParams muroInferior.x = layout.width.toFloat() - muroInferior.y = (screenHeight - altualturaMuro).toFloat() + muroInferior.y = (alturaPantalla - altualturaMuro).toFloat() layout.addView(muroInferior) obstaculos.add(muroInferior) // Generar la tuberÃa superior val muroSuperior = ImageView(this) muroSuperior.setBackgroundResource(R.drawable.asi_minijuego_2_muro) - val alturaMuroSuperior = screenHeight - altualturaMuro - 500 + val alturaMuroSuperior = (alturaPantalla - altualturaMuro - alturaPantalla*0.2).toInt() muroSuperior.rotation = 180f // Configurar posición y tamaño de la tuberÃa superior - val layoutParamsSuperior = RelativeLayout.LayoutParams(300, alturaMuroSuperior) + val layoutParamsSuperior = RelativeLayout.LayoutParams((anchuraPantalla*0.3f).toInt(), alturaMuroSuperior) layoutParamsSuperior.addRule(RelativeLayout.ALIGN_PARENT_RIGHT) muroSuperior.layoutParams = layoutParamsSuperior muroSuperior.x = layout.width.toFloat() @@ -214,15 +216,13 @@ class Minijuego2 : AppCompatActivity() { val obstaculosAEliminar = mutableListOf<ImageView>() for (obstaculo in obstaculos) { - obstaculo.x -= velObs // Mover obstáculo a la izquierda - // Verificar si el protagonista pasa el obstáculo - if (obstaculo.x + obstaculo.width == protagonista.x && obstaculo.y < protagonista.y) { - puntuacion++ - puntuacionTextView.text = "Puntuación: $puntuacion" - - } + obstaculo.x -= velObs // Mover obstáculo a la izquierda // Verificar si el obstáculo sale de la pantalla if (obstaculo.x + obstaculo.width < 0) { + if(obstaculo.rotation ==180f){ + puntuacion++ + } + puntuacionTextView.text = "Puntuación: $puntuacion" obstaculosAEliminar.add(obstaculo) // Agregar a la lista de eliminación } } @@ -247,6 +247,7 @@ class Minijuego2 : AppCompatActivity() { } private fun detenerJuego() { + val flag = intent.getBooleanExtra("FLAG_KEY", false) jugando = false soundManager.stopSound() soundManager.playSound(R.raw.sound_over, 100) @@ -260,8 +261,11 @@ class Minijuego2 : AppCompatActivity() { val animacion = AnimationUtils.loadAnimation(this, R.anim.animatitu) botonReinicio.startAnimation(animacion) - // Configurar el comportamiento del botón de reinicio - botonReinicio.setOnClickListener { + if(flag){ + botonReinicio.setOnClickListener { + reiniciarJuego() + } + }else{ // Devuelve la puntuación actual y finaliza la actividad val resultadoIntent = Intent() resultadoIntent.putExtra("PUNTUACION", puntuacion.toString()) @@ -270,8 +274,6 @@ class Minijuego2 : AppCompatActivity() { } } - - /* private fun reiniciarJuego() { // Reiniciar variables del juego puntuacion = 0 @@ -282,9 +284,10 @@ class Minijuego2 : AppCompatActivity() { for (obstaculo in obstaculos) { layout.removeView(obstaculo) // Eliminar cada obstáculo del layout } + botonReinicio.clearAnimation() botonReinicio.visibility = View.GONE // Ocultar botón de reinicio iniciarJuego() // Reiniciar el juego - }*/ + } private fun moverFondo() { // Mueve ambos fondos hacia la izquierda