From 5f190831feb16a366abc9ace91f919be4cce93ed Mon Sep 17 00:00:00 2001 From: Fausto Date: Fri, 8 Nov 2024 09:55:18 -0300 Subject: [PATCH] optimizacion del lag --- game.wpgm | 6 +++--- juego.wlk | 35 ++++++++++++++++++++++++++++++----- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/game.wpgm b/game.wpgm index e7e05ab5..726f69d6 100644 --- a/game.wpgm +++ b/game.wpgm @@ -75,17 +75,17 @@ program tetrizado { */ keyboard.up().onPressDo({ bloqueActual.rotar("derecha") - bloqueSombra.imitarPos(bloqueActual) + bloqueSombra.imitarPosRot(bloqueActual) }) keyboard.left().onPressDo({ bloqueActual.mover("izquierda") - bloqueSombra.imitarPos(bloqueActual) + bloqueSombra.imitarPosMov(bloqueActual) }) keyboard.right().onPressDo({ bloqueActual.mover("derecha") - bloqueSombra.imitarPos(bloqueActual) + bloqueSombra.imitarPosMov(bloqueActual) }) keyboard.down().onPressDo({ diff --git a/juego.wlk b/juego.wlk index 1027f1bf..ad7f79e3 100644 --- a/juego.wlk +++ b/juego.wlk @@ -129,6 +129,18 @@ class BloqueTetris{ c.caer() d.caer() } + if (dir == "arriba"){ + yCentro += 1 + centro = game.at(xCentro, yCentro) + a.asignarPosicion(a.position().x(), a.position().y()+1) + b.asignarPosicion(b.position().x(), b.position().y()+1) + c.asignarPosicion(c.position().x(), c.position().y()+1) + d.asignarPosicion(d.position().x(), d.position().y()+1) + if (!controlador.dirEstaLibre("actual", [a, b, c, d])){ + self.mover("arriba") + } + } + } method estaEnElFondo(){//retorna T o F @@ -236,11 +248,24 @@ class Tipo_bloqueSombra inherits BloqueTetris{ game.removeVisual(c) game.removeVisual(d) } - method imitarPos(bloque){ - a.asignarPosicion(bloque.a().position().x(), bloque.a().position().y()) - b.asignarPosicion(bloque.b().position().x(), bloque.b().position().y()) - c.asignarPosicion(bloque.c().position().x(), bloque.c().position().y()) - d.asignarPosicion(bloque.d().position().x(), bloque.d().position().y()) + method imitarPosMov(bloque){ + a.asignarPosicion(bloque.a().position().x(), a.position().y()) + b.asignarPosicion(bloque.b().position().x(), b.position().y()) + c.asignarPosicion(bloque.c().position().x(), c.position().y()) + d.asignarPosicion(bloque.d().position().x(), d.position().y()) + xCentro = bloque.xCentro() + if (!controlador.dirEstaLibre("actual", [a, b, c, d])){ + self.mover("arriba") + } else if (controlador.dirEstaLibre("abajo", [a, b, c, d])){ + self.descender() + } + } + + method imitarPosRot(bloque){ + a.asignarPosicion(bloque.a().position().x() - bloque.xCentro() + xCentro, bloque.a().position().y()- bloque.yCentro() + yCentro) + b.asignarPosicion(bloque.b().position().x() - bloque.xCentro() + xCentro, bloque.b().position().y()- bloque.yCentro() + yCentro) + c.asignarPosicion(bloque.c().position().x() - bloque.xCentro() + xCentro, bloque.c().position().y()- bloque.yCentro() + yCentro) + d.asignarPosicion(bloque.d().position().x() - bloque.xCentro() + xCentro, bloque.d().position().y()- bloque.yCentro() + yCentro) if (!controlador.dirEstaLibre("actual", [a, b, c, d])){ self.mover("arriba") } else if (controlador.dirEstaLibre("abajo", [a, b, c, d])){