Skip to content
Snippets Groups Projects

Feature:

Merged viccall requested to merge reparar into develop
1 file
+ 25
14
Compare changes
  • Side-by-side
  • Inline
@@ -29,6 +29,7 @@ class MinijuegoReparacion : AppCompatActivity() {
var stop = false
val handler = Handler()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
soundManager = SoundManager(this)
@@ -77,15 +78,15 @@ class MinijuegoReparacion : AppCompatActivity() {
}
private fun agregarFragmentosAlRelativeLayout(relativeLayout: RelativeLayout) {
val mesaHeightMin = 1700
val mesaHeightMax = 1900
val mesaHeightMin = relativeToHeight(1700)
val mesaHeightMax = relativeToHeight(1900)
for (fragmento in fragmentos) {
val imageView = ImageView(this)
imageView.setImageBitmap(fragmento.bitmap)
val params = RelativeLayout.LayoutParams(120, 120)
val params = RelativeLayout.LayoutParams(relativeToWidth(120), relativeToHeight(120))
params.leftMargin = Random.nextInt(250, 750)
params.leftMargin = Random.nextInt(relativeToWidth(250), relativeToWidth(750))
params.topMargin = Random.nextInt(mesaHeightMin, mesaHeightMax)
imageView.layoutParams = params
@@ -104,8 +105,8 @@ class MinijuegoReparacion : AppCompatActivity() {
mostrarMartilloGolpe(relativeLayout)
for ((index, fragmento) in fragmentos.withIndex()) {
val imageView = relativeLayout.getChildAt(index) as? ImageView ?: continue
val margenIzquierdaFinal = fragmento.columna * 120 + 250
val margenArribaFinal = fragmento.fila * 120 + 1300
val margenIzquierdaFinal = fragmento.columna * relativeToWidth(120) + relativeToWidth(250)
val margenArribaFinal = fragmento.fila * relativeToHeight(120) + relativeToHeight(1300)
val precisionRandom = Random.nextFloat() * 0.4f + 0.6f
val precision = 1f - (clics * 0.20f) * precisionRandom
@@ -113,7 +114,7 @@ class MinijuegoReparacion : AppCompatActivity() {
val margenArriba = fragmento.yPos + (margenArribaFinal - fragmento.yPos) * precision
val rotacion = fragmento.rotation * (1 - precision)
val params = RelativeLayout.LayoutParams(120, 120)
val params = RelativeLayout.LayoutParams(relativeToWidth(120), relativeToHeight(120))
params.leftMargin = margenIzquierda.toInt()
params.topMargin = margenArriba.toInt()
imageView.layoutParams = params
@@ -135,8 +136,8 @@ class MinijuegoReparacion : AppCompatActivity() {
var para = false
val initialX = ruleImageView.x
val initialY = ruleImageView.y
val randomX = Random.nextFloat() * (1050 - 350)
val randomY = Random.nextFloat() * (1400 - 250)
val randomX = Random.nextFloat() * (relativeToWidth(1050) - relativeToWidth(350))
val randomY = Random.nextFloat() * (relativeToHeight(1400) - relativeToHeight(250))
ruleImageView.x = randomX
ruleImageView.y = randomY
val deltaX = ruleImageView.x - initialX
@@ -237,8 +238,8 @@ class MinijuegoReparacion : AppCompatActivity() {
nubeView.setBackgroundResource(R.drawable.effect_reparar_animation)
val tam = Random.nextInt(150, 250)
val params = RelativeLayout.LayoutParams(tam, tam)
params.leftMargin = Random.nextInt(100, 800)
params.topMargin = Random.nextInt(1300, 1900)
params.leftMargin = Random.nextInt(relativeToWidth(100), relativeToWidth(700))
params.topMargin = Random.nextInt(relativeToHeight(1300), relativeToHeight(1900))
nubeView.layoutParams = params
nubeView.rotation = Random.nextFloat()* 360
relativeLayout.addView(nubeView)
@@ -261,8 +262,8 @@ class MinijuegoReparacion : AppCompatActivity() {
martilloView.setImageResource(R.drawable.asi_reparar_martillo)
val tamMartillo = Random.nextInt(300, 500)
val params = RelativeLayout.LayoutParams(tamMartillo, tamMartillo)
params.leftMargin = Random.nextInt(100, 700)
params.topMargin = Random.nextInt(1300, 1900)
params.leftMargin = Random.nextInt(relativeToWidth(100), relativeToWidth(700))
params.topMargin = Random.nextInt(relativeToHeight(1300), relativeToHeight(1900))
martilloView.rotation = 50f
martilloView.layoutParams = params
relativeLayout.addView(martilloView)
@@ -283,6 +284,16 @@ class MinijuegoReparacion : AppCompatActivity() {
soundManager.stopSound()
stop = true
}
// Funciones auxiliares para convertir a proporciones relativas
private fun relativeToWidth(value: Int): Int {
val metrics = resources.displayMetrics
var screenWidth = metrics.widthPixels
return (value * screenWidth) / 1080
}
private fun relativeToHeight(value: Int): Int {
val metrics = resources.displayMetrics
var screenHeight = metrics.heightPixels
return (value * screenHeight) / 2285
}
}
Loading