From 317f906c65aa7aaee298871d45cf3c830f3b3b2a Mon Sep 17 00:00:00 2001 From: victor <victor.calleja.garcia@estudiantes.uva.es> Date: Mon, 25 Nov 2024 13:24:09 +0100 Subject: [PATCH] =?UTF-8?q?Feature:=20bloking=20y=20apa=C3=B1oi=20nferface?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 3 +- .../ellegadodepintia/ListaMinijuegos.kt | 2 + .../example/ellegadodepintia/MapActivity.kt | 67 ++++++++++++++++++- .../ExploradoresDePintia.kt | 6 ++ .../minijuego1/InicioMinijuego1.kt | 7 ++ .../ellegadodepintia/minijuego1/Minijuego1.kt | 6 ++ .../ellegadodepintia/minijuego2/Minijuego2.kt | 18 +++-- .../ellegadodepintia/minijuego3/Minijuego3.kt | 20 ++++-- .../MinijuegoInvestigar.kt | 6 ++ .../MinijuegoReparacion.kt | 6 ++ app/src/main/res/layout/activity_armeria.xml | 16 +++++ app/src/main/res/layout/activity_taberna.xml | 17 ++++- app/src/main/res/layout/activity_tienda.xml | 17 ++++- 13 files changed, 173 insertions(+), 18 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2977a79..6f2b238 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -14,7 +14,8 @@ tools:targetApi="31" > <activity android:name=".MainActivity" - android:exported="true" > + android:exported="true" + android:screenOrientation="portrait"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> diff --git a/app/src/main/java/com/example/ellegadodepintia/ListaMinijuegos.kt b/app/src/main/java/com/example/ellegadodepintia/ListaMinijuegos.kt index 2f17a0b..6749bd4 100644 --- a/app/src/main/java/com/example/ellegadodepintia/ListaMinijuegos.kt +++ b/app/src/main/java/com/example/ellegadodepintia/ListaMinijuegos.kt @@ -21,6 +21,8 @@ class ListaMinijuegos : AppCompatActivity(){ val minijuego1Layout = findViewById<FrameLayout>(R.id.minijuego1) minijuego1Layout.setOnClickListener { val intent = Intent(this, InicioMinijuego1::class.java) + val flag = true + intent.putExtra("FLAG_KEY", flag) startActivity(intent) } diff --git a/app/src/main/java/com/example/ellegadodepintia/MapActivity.kt b/app/src/main/java/com/example/ellegadodepintia/MapActivity.kt index 97158bf..15a5cad 100644 --- a/app/src/main/java/com/example/ellegadodepintia/MapActivity.kt +++ b/app/src/main/java/com/example/ellegadodepintia/MapActivity.kt @@ -3,7 +3,10 @@ package com.example.ellegadodepintia import android.content.Intent import android.graphics.Color import android.os.Bundle +import android.util.DisplayMetrics +import android.view.View import android.widget.ImageButton +import android.widget.RelativeLayout import android.widget.TextView import androidx.appcompat.app.AppCompatActivity import com.example.ellegadodepintia.exploradoresDePintia.ExploradoresDePintia @@ -14,9 +17,8 @@ class MapActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_map) - GameState.jugador.addObserver { actualizarMonedas() } - + ajustarPosiciones() val mapButton: ImageButton= findViewById(R.id.mapButton) val leaderboardButton: ImageButton = findViewById(R.id.leaderboardButton) val shopButton: ImageButton = findViewById(R.id.shopButton) @@ -60,4 +62,65 @@ class MapActivity : AppCompatActivity() { private fun actualizarMonedas(){ GameState.jugador.monedas.toString().also { findViewById<TextView>(R.id.moneyText).text = it } } + + private fun ajustarPosiciones() { + // Dimensiones de la pantalla original + val originalWidth = 1080f + val originalHeight = 2285f + + // Obtener las dimensiones actuales de la pantalla + val displayMetrics = DisplayMetrics() + windowManager.defaultDisplay.getMetrics(displayMetrics) + val currentWidth = displayMetrics.widthPixels.toFloat() + val currentHeight = displayMetrics.heightPixels.toFloat() + val density = displayMetrics.density // Densidad de la pantalla actual + + // Calcular la proporción de la pantalla actual respecto a la original + val widthRatio = currentWidth / originalWidth + val heightRatio = currentHeight / originalHeight + + // Ajustar los botones con el ratio de proporción + ajustarBoton(findViewById(R.id.botonAventura), 55f, 65f, 199f, 140f, widthRatio, heightRatio, density) + ajustarBoton(findViewById(R.id.botonTaberna), 169f, 380f, 168f, 127f, widthRatio, heightRatio, density) + ajustarBoton(findViewById(R.id.botonTienda), -1f, 422f, 148f, 127f, widthRatio, heightRatio, density) + ajustarBoton(findViewById(R.id.botonArmeria), 199f, 540f, 192f, 145f, widthRatio, heightRatio, density) + ajustarBoton(findViewById(R.id.botonEntrenar), 241f, 226f, 170f, 125f, widthRatio, heightRatio, density) + } + + private fun ajustarBoton( + button: View, + originalX: Float, // Margen Start original en dp + originalY: Float, // Margen Bottom original en dp + originalWidth: Float, // Ancho original en dp + originalHeight: Float, // Alto original en dp + widthRatio: Float, + heightRatio: Float, + density: Float + ) { + val params = button.layoutParams as RelativeLayout.LayoutParams + + // Ajustar las posiciones según el ratio de la pantalla + val newMarginStart = (originalX * widthRatio * density).toInt() // Ajustamos la posición X + val newBottomMargin = (originalY * heightRatio * density).toInt() // Ajustamos la posición Y (Bottom) + + // Ajustar el tamaño según el ratio de la pantalla + val newWidth = (originalWidth * widthRatio * density).toInt() + val newHeight = (originalHeight * heightRatio * density).toInt() + + // Establecer tamaños mÃnimos y máximos + val minSizePx = (48 * density).toInt() // Tamaño mÃnimo de 48dp en pÃxeles + val maxSizePx = (300 * density).toInt() // Tamaño máximo de 300dp en pÃxeles + + // Aplicar los nuevos márgenes y tamaños + params.marginStart = newMarginStart + params.bottomMargin = newBottomMargin + params.width = newWidth.coerceIn(minSizePx, maxSizePx) // Tamaño mÃnimo y máximo + params.height = newHeight.coerceIn(minSizePx, maxSizePx) // Tamaño mÃnimo y máximo + + // Aplicar los parámetros ajustados al botón + button.layoutParams = params + } + + + } diff --git a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt index 672d853..0820566 100644 --- a/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt +++ b/app/src/main/java/com/example/ellegadodepintia/exploradoresDePintia/ExploradoresDePintia.kt @@ -148,4 +148,10 @@ class ExploradoresDePintia : AppCompatActivity() { true } } + override fun onBackPressed() { + val flag = intent.getBooleanExtra("FLAG_KEY", false) + if (flag){ + super.onBackPressed() + } + } } diff --git a/app/src/main/java/com/example/ellegadodepintia/minijuego1/InicioMinijuego1.kt b/app/src/main/java/com/example/ellegadodepintia/minijuego1/InicioMinijuego1.kt index 4818bfd..5b12fc6 100644 --- a/app/src/main/java/com/example/ellegadodepintia/minijuego1/InicioMinijuego1.kt +++ b/app/src/main/java/com/example/ellegadodepintia/minijuego1/InicioMinijuego1.kt @@ -43,7 +43,14 @@ class InicioMinijuego1 : AppCompatActivity() { modal.show(supportFragmentManager, "ModalFragment") } } + override fun onBackPressed() { + val flag = intent.getBooleanExtra("FLAG_KEY", false) + if (flag){ + super.onBackPressed() + } + } } + class ModalFragment : DialogFragment() { override fun onCreateView( diff --git a/app/src/main/java/com/example/ellegadodepintia/minijuego1/Minijuego1.kt b/app/src/main/java/com/example/ellegadodepintia/minijuego1/Minijuego1.kt index 020b372..ef0da19 100644 --- a/app/src/main/java/com/example/ellegadodepintia/minijuego1/Minijuego1.kt +++ b/app/src/main/java/com/example/ellegadodepintia/minijuego1/Minijuego1.kt @@ -157,6 +157,12 @@ class Minijuego1 : AppCompatActivity() { handler.removeCallbacksAndMessages(null) soundManager.stopSound() } + override fun onBackPressed() { + val flag = intent.getBooleanExtra("FLAG_KEY", false) + if (flag){ + super.onBackPressed() + } + } // Mostrar partÃculas o animación en la posición del botón tocado private fun mostrarParticulas(x: Float, y: Float, esHueso: Boolean) { 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 47bab3d..fedfcc2 100644 --- a/app/src/main/java/com/example/ellegadodepintia/minijuego2/Minijuego2.kt +++ b/app/src/main/java/com/example/ellegadodepintia/minijuego2/Minijuego2.kt @@ -1,24 +1,24 @@ package com.example.ellegadodepintia.minijuego2 import android.content.Intent +import android.graphics.drawable.AnimationDrawable import android.os.Bundle import android.os.Handler import android.os.Looper +import android.view.LayoutInflater import android.view.MotionEvent import android.view.View +import android.view.ViewGroup +import android.view.animation.AnimationUtils +import android.widget.Button import android.widget.ImageView import android.widget.RelativeLayout import android.widget.TextView import androidx.appcompat.app.AppCompatActivity -import kotlin.random.Random -import android.graphics.drawable.AnimationDrawable -import android.view.LayoutInflater -import android.view.ViewGroup -import android.view.animation.AnimationUtils -import android.widget.Button import androidx.fragment.app.DialogFragment import com.example.ellegadodepintia.R import com.example.ellegadodepintia.soundManager.SoundManager +import kotlin.random.Random class Minijuego2 : AppCompatActivity() { @@ -317,6 +317,12 @@ class Minijuego2 : AppCompatActivity() { super.onPause() soundManager.stopSound() } + override fun onBackPressed() { + val flag = intent.getBooleanExtra("FLAG_KEY", false) + if (flag){ + super.onBackPressed() + } + } } class ModalFragment : DialogFragment() { diff --git a/app/src/main/java/com/example/ellegadodepintia/minijuego3/Minijuego3.kt b/app/src/main/java/com/example/ellegadodepintia/minijuego3/Minijuego3.kt index 45e97d4..08cc887 100644 --- a/app/src/main/java/com/example/ellegadodepintia/minijuego3/Minijuego3.kt +++ b/app/src/main/java/com/example/ellegadodepintia/minijuego3/Minijuego3.kt @@ -212,23 +212,21 @@ class Minijuego3 : AppCompatActivity() { } private fun mostrarGameOver(mensaje: String) { - Toast.makeText(this, mensaje, Toast.LENGTH_SHORT).show() + Toast.makeText(this, mensaje, Toast.LENGTH_SHORT) .show() botonVolver.visibility = ImageView.VISIBLE - botonVolver.setOnClickListener{ + val flag = intent.getBooleanExtra("FLAG_KEY", false) + if(!flag){ val resultadoIntent = Intent() resultadoIntent.putExtra("TIEMPO", tiempoRestante.toString()) println(tiempoRestante) setResult(RESULT_OK, resultadoIntent) finish() } + gridLayout.removeAllViews() } - override fun onBackPressed() { - cuentraAtras?.cancel() - tiempoCorriendo = false - super.onBackPressed() - } + private fun girarCarta(button: Button, imageResId: Int, isReversing: Boolean = false) { val scale = applicationContext.resources.displayMetrics.density @@ -285,6 +283,14 @@ class Minijuego3 : AppCompatActivity() { super.onPause() soundManager.stopSound() } + override fun onBackPressed() { + val flag = intent.getBooleanExtra("FLAG_KEY", false) + if (flag){ + cuentraAtras?.cancel() + tiempoCorriendo = false + super.onBackPressed() + } + } } class ModalFragment : DialogFragment() { diff --git a/app/src/main/java/com/example/ellegadodepintia/minijuegoInvestigacion/MinijuegoInvestigar.kt b/app/src/main/java/com/example/ellegadodepintia/minijuegoInvestigacion/MinijuegoInvestigar.kt index ae659a5..4f2b605 100644 --- a/app/src/main/java/com/example/ellegadodepintia/minijuegoInvestigacion/MinijuegoInvestigar.kt +++ b/app/src/main/java/com/example/ellegadodepintia/minijuegoInvestigacion/MinijuegoInvestigar.kt @@ -207,4 +207,10 @@ class MinijuegoInvestigar : AppCompatActivity() { super.onPause() soundManager.stopSound() } + override fun onBackPressed() { + val flag = intent.getBooleanExtra("FLAG_KEY", false) + if (flag){ + super.onBackPressed() + } + } } diff --git a/app/src/main/java/com/example/ellegadodepintia/minijuegoReparacion/MinijuegoReparacion.kt b/app/src/main/java/com/example/ellegadodepintia/minijuegoReparacion/MinijuegoReparacion.kt index a2db6ac..86a5440 100644 --- a/app/src/main/java/com/example/ellegadodepintia/minijuegoReparacion/MinijuegoReparacion.kt +++ b/app/src/main/java/com/example/ellegadodepintia/minijuegoReparacion/MinijuegoReparacion.kt @@ -296,4 +296,10 @@ class MinijuegoReparacion : AppCompatActivity() { var screenHeight = metrics.heightPixels return (value * screenHeight) / 2285 } + override fun onBackPressed() { + val flag = intent.getBooleanExtra("FLAG_KEY", false) + if (flag){ + super.onBackPressed() + } + } } diff --git a/app/src/main/res/layout/activity_armeria.xml b/app/src/main/res/layout/activity_armeria.xml index d83f1fc..7d95bdc 100644 --- a/app/src/main/res/layout/activity_armeria.xml +++ b/app/src/main/res/layout/activity_armeria.xml @@ -14,6 +14,20 @@ android:src="@drawable/background_armeria" android:scaleType="centerCrop" /> + <ScrollView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:fillViewport="true" + android:layout_marginBottom="60dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent"> + + <LinearLayout + android:id="@+id/mainArea" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center" + android:orientation="vertical"> <ImageView android:id="@+id/tituloJuego" android:layout_width="wrap_content" @@ -448,6 +462,8 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> + </LinearLayout> + </ScrollView> <LinearLayout android:id="@+id/bottom_navigation" style="?android:attr/buttonBarStyle" diff --git a/app/src/main/res/layout/activity_taberna.xml b/app/src/main/res/layout/activity_taberna.xml index 23dcc7b..1530f40 100644 --- a/app/src/main/res/layout/activity_taberna.xml +++ b/app/src/main/res/layout/activity_taberna.xml @@ -14,6 +14,20 @@ android:src="@drawable/background_taberna" android:scaleType="centerCrop" /> + <ScrollView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:fillViewport="true" + android:layout_marginBottom="60dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent"> + + <LinearLayout + android:id="@+id/mainArea" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center" + android:orientation="vertical"> <ImageView android:id="@+id/tituloJuego" android:layout_width="wrap_content" @@ -100,7 +114,8 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/textoInformacion"/> - + </LinearLayout> + </ScrollView> <LinearLayout android:id="@+id/bottom_navigation" style="?android:attr/buttonBarStyle" diff --git a/app/src/main/res/layout/activity_tienda.xml b/app/src/main/res/layout/activity_tienda.xml index 3d00eba..97a20b6 100644 --- a/app/src/main/res/layout/activity_tienda.xml +++ b/app/src/main/res/layout/activity_tienda.xml @@ -14,6 +14,20 @@ android:src="@drawable/background_tienda" android:scaleType="centerCrop" /> + <ScrollView + android:layout_width="match_parent" + android:layout_height="match_parent" + android:fillViewport="true" + android:layout_marginBottom="60dp" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent"> + + <LinearLayout + android:id="@+id/mainArea" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center" + android:orientation="vertical"> <ImageView android:id="@+id/tituloJuego" android:layout_width="wrap_content" @@ -447,7 +461,8 @@ app:layout_constraintTop_toBottomOf="@id/textoInformacion" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent"/> - + </LinearLayout> + </ScrollView> <LinearLayout android:id="@+id/bottom_navigation" style="?android:attr/buttonBarStyle" -- GitLab