From bbd010b658d7fc61bb3e8260c7a3e6e20f0f77a2 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Mon, 23 Oct 2023 18:00:35 -0300 Subject: [PATCH 1/6] maso andando --- src/actores/segundoCiclo/Capy/CapySolo.ts | 1 - src/actores/segundoCiclo/Capy/Yacare.ts | 8 + src/actores/segundoCiclo/Chuy/Chuy.ts | 3 +- src/actores/segundoCiclo/Chuy/Pelotas.ts | 1 + src/actores/segundoCiclo/Manic/Manic.ts | 1 + src/actores/segundoCiclo/Manic/Telescopio.ts | 1 + src/actores/segundoCiclo/Yvoty/Yvoty.ts | 1 + src/comportamientos/Escapar.ts | 8 +- src/comportamientos/Sostener.ts | 6 +- src/escenas/libroPrimaria/EscapeEnYacare.ts | 231 +++++++++++++++++++ src/escenas/libroPrimaria/EscenaCapy.ts | 4 +- 11 files changed, 258 insertions(+), 7 deletions(-) create mode 100644 src/actores/segundoCiclo/Capy/Yacare.ts create mode 100644 src/escenas/libroPrimaria/EscapeEnYacare.ts diff --git a/src/actores/segundoCiclo/Capy/CapySolo.ts b/src/actores/segundoCiclo/Capy/CapySolo.ts index 76aa8a6..f553509 100644 --- a/src/actores/segundoCiclo/Capy/CapySolo.ts +++ b/src/actores/segundoCiclo/Capy/CapySolo.ts @@ -1,5 +1,4 @@ /// -/// e class CapySolo extends ActorAnimado { static _grilla = 'actor.capySolo.png' diff --git a/src/actores/segundoCiclo/Capy/Yacare.ts b/src/actores/segundoCiclo/Capy/Yacare.ts new file mode 100644 index 0000000..3d5ee6c --- /dev/null +++ b/src/actores/segundoCiclo/Capy/Yacare.ts @@ -0,0 +1,8 @@ +/// + +class Yacare extends ActorAnimado { + constructor(x, y) { + super(x, y, {grilla: 'actor.yacare.png', cantColumnas:1, cantFilas:1}); + this.definirAnimacion("parado", [0,], 12); + } +} \ No newline at end of file diff --git a/src/actores/segundoCiclo/Chuy/Chuy.ts b/src/actores/segundoCiclo/Chuy/Chuy.ts index 8364f85..14e0410 100644 --- a/src/actores/segundoCiclo/Chuy/Chuy.ts +++ b/src/actores/segundoCiclo/Chuy/Chuy.ts @@ -26,5 +26,6 @@ class Chuy extends ActorAnimado { this.definirAnimacion("rebotarPelota", [87, 88, 89, 90, 91, 92, 93, 92, 91, 90, 94, 95, 90, 91, 92, 93, 91, 94, 91, 93, 90, 94, 96, 87, 87, 87, 87], 12); this.definirAnimacion("patear", [87, 88, 89, 90, 91, 92, 93, 92, 91, 90, 94, 95, 90, 91, 92, 93, 91, 94, 91, 93, 90, 94, 96, 87, 87, 87, 87], 12) this.definirAnimacion("rebotarPulpito", [77, 78, 79, 80, 81, 82, 83, 82, 81, 80, 84, 85, 80, 81, 82, 83, 81, 84, 81, 83, 80, 84, 86, 77, 77, 77, 77], 12); - } + this.definirAnimacion("surfear", [68, 69, 70, 71, 72, 73, 74, 75, 76], 12); + } } diff --git a/src/actores/segundoCiclo/Chuy/Pelotas.ts b/src/actores/segundoCiclo/Chuy/Pelotas.ts index 9541232..db947ea 100644 --- a/src/actores/segundoCiclo/Chuy/Pelotas.ts +++ b/src/actores/segundoCiclo/Chuy/Pelotas.ts @@ -5,6 +5,7 @@ class Pulpito extends ActorAnimado { constructor() { super(0, 0, { cantColumnas: 2 }); + this.definirAnimacion("correr", [0], 12) this.definirAnimacion("desaparecer", [1], 12); } } diff --git a/src/actores/segundoCiclo/Manic/Manic.ts b/src/actores/segundoCiclo/Manic/Manic.ts index 9768606..732c9f2 100644 --- a/src/actores/segundoCiclo/Manic/Manic.ts +++ b/src/actores/segundoCiclo/Manic/Manic.ts @@ -24,5 +24,6 @@ class Manic extends ActorAnimado { this.definirAnimacion("recoger", [28, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 31, 28], 12); this.definirAnimacion("usarCatalejo", [54, 55, 56, 57, 58, 59, 60, 61, 61, 62, 62, 62, 63, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 77, 78, 79, 80, 81, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82], 20); this.definirAnimacion("dibujar", [0, 1, 2, 3, 4, 5, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27], 20); + this.definirAnimacion("surfear", [0, 1, 2, 3, 4, 5, 6, 7, 6, 5, 6, 7, 6, 5, 6, 7, 7], 20); } } diff --git a/src/actores/segundoCiclo/Manic/Telescopio.ts b/src/actores/segundoCiclo/Manic/Telescopio.ts index 13d5e0e..79ed3ab 100644 --- a/src/actores/segundoCiclo/Manic/Telescopio.ts +++ b/src/actores/segundoCiclo/Manic/Telescopio.ts @@ -6,6 +6,7 @@ class Telescopio extends ActorAnimado { super(0, 0, {cantColumnas: 2}); this.definirAnimacion("roto", [1], 1); this.definirAnimacion("arreglado", [0], 1); + this.definirAnimacion("recoger", [0], 1) if(arreglado) this.cargarAnimacion("arreglado") diff --git a/src/actores/segundoCiclo/Yvoty/Yvoty.ts b/src/actores/segundoCiclo/Yvoty/Yvoty.ts index 6ac15bc..81808a6 100644 --- a/src/actores/segundoCiclo/Yvoty/Yvoty.ts +++ b/src/actores/segundoCiclo/Yvoty/Yvoty.ts @@ -33,5 +33,6 @@ class Yvoty extends ActorAnimado { this.definirAnimacion("usarCelu", [38, 38, 38, 39, 39, 40, 40, 40, 41, 42, 43, 41, 43, 42, 42, 42, 44, 45, 46, 47, 46, 42, 42, 42, 45, 46, 46, 46, 45, 44, 48, 48, 48, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, 38, 38, 38, 38, 38, 38, 38], 20); this.definirAnimacion("sacarFoto", [38, 38, 38, 39, 39, 40, 40, 40, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 40, 40, 40, 40], 20); this.definirAnimacion("escribir", [16, 16, 17, 17, 18, 18, 18, 19, 19, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18], 20); + this.definirAnimacion("surfear", [52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71], 20) } } diff --git a/src/comportamientos/Escapar.ts b/src/comportamientos/Escapar.ts index a022eec..520c241 100644 --- a/src/comportamientos/Escapar.ts +++ b/src/comportamientos/Escapar.ts @@ -8,8 +8,12 @@ class Escapar extends MovimientoAnimado { super.iniciar(receptor); } + direccion(): Direct{ + return new Direct(1,5) + } + preAnimacion(){ - this.argumentos.direccion = new Direct(1, 5); + this.argumentos.direccion = this.direccion(); this.argumentos.distancia = 600; this.argumentos.velocidad = 8; this.argumentos.cantPasos = 40; @@ -42,4 +46,4 @@ class Escapar extends MovimientoAnimado { return (noTieneQueEscaparConNingunActor || colisionaConElActorParaEscapar); } -} +} \ No newline at end of file diff --git a/src/comportamientos/Sostener.ts b/src/comportamientos/Sostener.ts index 5030454..a9370dc 100644 --- a/src/comportamientos/Sostener.ts +++ b/src/comportamientos/Sostener.ts @@ -20,7 +20,7 @@ class Sostener extends Interactuar { var objetoAgarrado: any = interactuado.clonar() objetoAgarrado.escala = interactuado.escala objetoAgarrado.y = this.receptor.y - objetoAgarrado.x = this.receptor.subactores[0].derecha - (this.receptor.subactores[0].ancho / 4) + objetoAgarrado.x = this.posicionHorizontalDeProximoSubactor() this.receptor.agregarSubactor(objetoAgarrado) objetoAgarrado.cargarAnimacion("correr") // porque tiene que cargar la misma imagen que va a usar al moverse @@ -29,6 +29,10 @@ class Sostener extends Interactuar { } + posicionHorizontalDeProximoSubactor(): number { + return this.receptor.subactores[0].derecha - (this.receptor.subactores[0].ancho / 4) + } + configurarVerificaciones() { super.configurarVerificaciones() this.verificacionesPre.push(new Verificacion(() => this.puedoSostener(), "No puedo sostener dos cosas a la vez...")) diff --git a/src/escenas/libroPrimaria/EscapeEnYacare.ts b/src/escenas/libroPrimaria/EscapeEnYacare.ts new file mode 100644 index 0000000..5576373 --- /dev/null +++ b/src/escenas/libroPrimaria/EscapeEnYacare.ts @@ -0,0 +1,231 @@ +/// + +class ActorConEntregable extends ActorCompuesto{ + acomodarseEnCapy(capy: CapyConSeguidores): void{ + const entregable = this.subactores.pop() + //capy.agregarSubactor(entregable) + capy.posicionarEnMano(entregable) + } +} + +class TelescopioEntregable extends Telescopio{ + acomodarseEnCapy(capy: CapyConSeguidores): void{ + capy.posicionarEnMano(this) + } +} + +class ManicConPelota extends ActorConEntregable{ + constructor() { + + const manic = new Manic() + manic.escala *= 0.06; + + super(0,0, { subactores: [manic]}); + + const pelota = new Pulpito() + pelota.escala *= 0.02; + this.agregarSubactor(pelota) + + + } +} + +class ChuyConCargador extends ActorConEntregable{ + constructor() { + const chuy = new Chuy() + chuy.escala *= 0.05; + + super(0,0, { subactores: [chuy]}); + + const cargador = new Cargador() + cargador.escala *= 0.02; + + this.agregarSubactor(cargador) + } +} + +class YvotySinEntregable extends ActorCompuesto { + + constructor() { + const yvoty = new Yvoty() + yvoty.escala *= 0.05; + super(0,0, { subactores: [yvoty]}); + } + + acomodarseEnCapy(capy: CapyConSeguidores): void{ + + } +} + +class CapyConSeguidores extends ActorCompuesto{ + + entregableEnMano: ActorAnimado + + constructor(){ + const capy = + new Capy() + capy.escala *= 0.06 + + const pelota = new Pulpito() + pelota.escala *= 0.02; + + const pelota2 = new Pulpito() + pelota2.escala *= 0.02; + + + super(0,0, { subactores: [capy], puedoSostenerMasDeUno: true}); + } + + entregarSiPuede(){ + if (this.entregableEnMano){ + this.entregableEnMano.eliminar() + this.subactores = this.subactores.filter(actor => actor !== this.entregableEnMano) + this.entregableEnMano = null + } + } + + acomodarEntregable(){ + const actorConEntregable = this.subactores[this.subactores.length - 1] + actorConEntregable.acomodarseEnCapy(this) + } + + posicionarEnMano(entregable: ActorAnimado){ + this.entregableEnMano = entregable + } + + entregar(): void{ + this.entregableEnMano.eliminar() + } + + espejarSeguidor(seguidor, posicion){ + const x = posicion * 50 - 30 + + if (!this.espejado){ + seguidor.x = this.subactores[0].izquierda - x + } + + else { + seguidor.x = this.subactores[0].derecha + x + } + } + + espejarEntregableEnMano(){ + if (!this.espejado){ + this.entregableEnMano.x = this.subactores[0].izquierda + } + else{ + this.entregableEnMano.x = this.subactores[0].derecha + } + } + + tieneAlgoEnLaMano(): boolean{ + return false + } + + actualizar(): void{ + super.actualizar() + this.subactores.forEach((seguidor, indice) => { + if(seguidor !== this.entregableEnMano && indice !== 0){ + this.espejarSeguidor(seguidor,indice) + } + }) + if(this.entregableEnMano){ + this.espejarEntregableEnMano() + } + } +} + +class AgregarASeguidores extends Sostener { + + alInteractuar(): void{ + super.alInteractuar() + this.receptor.entregarSiPuede() + this.receptor.acomodarEntregable() + } + + posicionHorizontalDeProximoSubactor(): number { + return this.receptor.subactores[0].izquierda + 50 * this.receptor.subactores.length + } +} + +class EscaparEnYacare extends Escapar { + direccion(): Direct{ + return new Direct(1,0) + } +} + +class EscapeEnYacare extends EscenaActividad { + + automata: CapySolo; + telescopio: Telescopio + manic: Manic + chuy: Chuy + yvoty: Yvoty + yacare: Yacare + + iniciar() { + this.fondo = new Fondo('fondo.capy.png', 0, 0); + + this.cuadricula = new Cuadricula(0,0,4,5, + EscenaCapy.opsCuadricula(), + EscenaCapy.opsCasilla()); + + this.telescopio = new TelescopioEntregable(); + this.cuadricula.agregarActor(this.telescopio, 1, 4) + + this.manic = new ManicConPelota() + this.cuadricula.agregarActor(this.manic, 0, 0); + + this.chuy = new ChuyConCargador() + this.cuadricula.agregarActor(this.chuy,2,2); + + this.yvoty = new YvotySinEntregable(); + this.cuadricula.agregarActor(this.yvoty, 1, 2); + + this.automata = new CapyConSeguidores() + this.cuadricula.agregarActor(this.automata, 3, 0); + + this.yacare = new Yacare(0,0) + this.cuadricula.agregarActor(this.yacare, 3,4) + + this.construirFSM(); + } + + + + private construirFSM(){ + const builder= new BuilderStatePattern(this, 'inicial'); + builder.agregarEstado('telescopioEnMano'); + builder.agregarEstado('pelotaEnMano'); + builder.agregarEstado('cargadorEnMano'); + builder.agregarEstado('todosEntregados'); + builder.agregarEstadoAceptacion('montandoYacare'); + + builder.agregarTransicion('inicial','telescopioEnMano','agarrarTelescopio'); + builder.agregarTransicion('telescopioEnMano','pelotaEnMano','entregarTelescopio'); + builder.agregarTransicion('pelotaEnMano','cargadorEnMano','entregarPelota'); + builder.agregarTransicion('cargadorEnMano','todosEntregados','entregarCargador'); + builder.agregarTransicion('todosEntregados','montandoYacare','escapar'); + + const estadosEnOrden = ['inicial','telescopioEnMano','pelotaEnMano','cargadorEnMano','montandoYacare'] + + //TODO: Hacer los errores para atras + for (let i = 0; i < estadosEnOrden.length; i++) { + if(estadosEnOrden[i]!='telescopioEnMano'){ + builder.agregarError(estadosEnOrden[i],'entregarTelescopio', 'Mañic necesita su telescopio.'); + } + if(estadosEnOrden[i]!='pelotaEnMano'){ + builder.agregarError(estadosEnOrden[i],'entregarPelota','Chuy necesita su pelota.'); + } + if(estadosEnOrden[i]!='cargadorEnMano'){ + builder.agregarError(estadosEnOrden[i],'entregarCargador','Yvoty necesita su cargador.'); + } + if(estadosEnOrden[i]!='todosEntregados'){ + builder.agregarError(estadosEnOrden[i],'montarYacare','Para montar el yacare todos tienen que tener sus cosas???? no se.'); + } + } + + this.estado=builder.estadoInicial(); + } + +} \ No newline at end of file diff --git a/src/escenas/libroPrimaria/EscenaCapy.ts b/src/escenas/libroPrimaria/EscenaCapy.ts index 10b4e54..dd5fbb9 100644 --- a/src/escenas/libroPrimaria/EscenaCapy.ts +++ b/src/escenas/libroPrimaria/EscenaCapy.ts @@ -95,10 +95,10 @@ class EscenaCapy extends EscenaDesdeMapa { cuadriculaY() { return -20; } - opsCuadricula() { + static opsCuadricula() { return { ancho: 400, alto: 380 }; } - opsCasilla() { + static opsCasilla() { return { grilla: 'casillas.capy.png', cantFilas: 1, From c7747cb36a2e42722a38dd3dea7f195688422886 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Tue, 24 Oct 2023 15:38:05 -0300 Subject: [PATCH 2/6] jiff o gif --- src/actores/segundoCiclo/Capy/Yacare.ts | 3 +- src/assets/actor.yacare.png | Bin 4272 -> 5861 bytes src/comportamientos/Escapar.ts | 6 +-- src/comportamientos/Irse.ts | 44 -------------------- src/escenas/libroPrimaria/EscapeEnYacare.ts | 36 ++++++++-------- 5 files changed, 20 insertions(+), 69 deletions(-) delete mode 100644 src/comportamientos/Irse.ts diff --git a/src/actores/segundoCiclo/Capy/Yacare.ts b/src/actores/segundoCiclo/Capy/Yacare.ts index f1560e7..7b451ff 100644 --- a/src/actores/segundoCiclo/Capy/Yacare.ts +++ b/src/actores/segundoCiclo/Capy/Yacare.ts @@ -4,7 +4,8 @@ class Yacare extends ActorAnimado { static _grilla = 'actor.yacare.png' constructor() { - super(0, 0, {cantColumnas: 1}); + super(0, 0, {cantColumnas: 2}); this.definirAnimacion("parado", [0], 1); + this.definirAnimacion("surfear", [1], 1) } } diff --git a/src/assets/actor.yacare.png b/src/assets/actor.yacare.png index a1b0e1b6802e92742047bccec36170fa09805779..d59cfc5fa5c88d32c8c4b1512078d6e73a9d1e46 100644 GIT binary patch literal 5861 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 iH5*{C)58SBM=lc2-@aUng>UZVmA^!vETxCuG literal 4272 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 Sn98yM0000 - -// Si se pasa por argumento "irseCon" entonces el receptor debe ser actor compuesto -class Irse extends MovimientoAnimado { - - iniciar(receptor){ - this.argumentos.idTransicion = "irse"; - super.iniciar(receptor); - } - - preAnimacion(){ - this.argumentos.direccion = new Direct(1); - this.argumentos.distancia = 600; - this.argumentos.velocidad = 8; - this.argumentos.cantPasos = 40; - - if (this.argumentos.irseCon) { - - if (typeof this.argumentos.irseCon == 'string') { - this.argumentos.irseCon = eval("pilas.escena_actual()." + this.argumentos.irseCon); - } - this.receptor.agregarSubactor(this.argumentos.irseCon); - } - super.preAnimacion(); - } - - configurarVerificaciones() { - super.configurarVerificaciones(); - this.verificacionesPre.push(new Verificacion(() => { - return this.estaEnTransporte(); - }, "Para irse hace falta un transporte")); - } - - estaEnTransporte(){ - if (typeof this.argumentos.irseCon == 'string') { - this.argumentos.irseCon = eval("pilas.escena_actual()." + this.argumentos.irseCon); - } - - let noTieneQueirseConNingunActor = (!this.argumentos.irseCon); - let colisionaConElActorParaIrse = this.receptor.colisiona_con(this.argumentos.irseCon); - - return (noTieneQueirseConNingunActor || colisionaConElActorParaIrse); - } -} diff --git a/src/escenas/libroPrimaria/EscapeEnYacare.ts b/src/escenas/libroPrimaria/EscapeEnYacare.ts index 5576373..325a199 100644 --- a/src/escenas/libroPrimaria/EscapeEnYacare.ts +++ b/src/escenas/libroPrimaria/EscapeEnYacare.ts @@ -24,6 +24,7 @@ class ManicConPelota extends ActorConEntregable{ const pelota = new Pulpito() pelota.escala *= 0.02; + pelota.x = manic.derecha + 10 this.agregarSubactor(pelota) @@ -39,6 +40,7 @@ class ChuyConCargador extends ActorConEntregable{ const cargador = new Cargador() cargador.escala *= 0.02; + cargador.x = chuy.derecha + 10 this.agregarSubactor(cargador) } @@ -62,17 +64,9 @@ class CapyConSeguidores extends ActorCompuesto{ entregableEnMano: ActorAnimado constructor(){ - const capy = - new Capy() + const capy = new Capy() capy.escala *= 0.06 - const pelota = new Pulpito() - pelota.escala *= 0.02; - - const pelota2 = new Pulpito() - pelota2.escala *= 0.02; - - super(0,0, { subactores: [capy], puedoSostenerMasDeUno: true}); } @@ -111,10 +105,10 @@ class CapyConSeguidores extends ActorCompuesto{ espejarEntregableEnMano(){ if (!this.espejado){ - this.entregableEnMano.x = this.subactores[0].izquierda + this.entregableEnMano.x = this.subactores[0].derecha } else{ - this.entregableEnMano.x = this.subactores[0].derecha + this.entregableEnMano.x = this.subactores[0].izquierda } } @@ -148,10 +142,13 @@ class AgregarASeguidores extends Sostener { } } -class EscaparEnYacare extends Escapar { - direccion(): Direct{ - return new Direct(1,0) - } +class IrseEnYacare extends Escapar { + iniciar(receptor){ + this.argumentos.nombreAnimacion = "surfear" + this.argumentos.direccion = new Direct(1) + this.argumentos.escaparCon = "yacare" + super.iniciar(receptor); + } } class EscapeEnYacare extends EscenaActividad { @@ -185,8 +182,10 @@ class EscapeEnYacare extends EscenaActividad { this.automata = new CapyConSeguidores() this.cuadricula.agregarActor(this.automata, 3, 0); - this.yacare = new Yacare(0,0) - this.cuadricula.agregarActor(this.yacare, 3,4) + this.yacare = new Yacare(); + this.cuadricula.agregarActor(this.yacare, 3, 4); + this.yacare.y -= 10; + this.yacare.aprender(Flotar, { Desvio: 2 }); this.construirFSM(); } @@ -209,7 +208,6 @@ class EscapeEnYacare extends EscenaActividad { const estadosEnOrden = ['inicial','telescopioEnMano','pelotaEnMano','cargadorEnMano','montandoYacare'] - //TODO: Hacer los errores para atras for (let i = 0; i < estadosEnOrden.length; i++) { if(estadosEnOrden[i]!='telescopioEnMano'){ builder.agregarError(estadosEnOrden[i],'entregarTelescopio', 'Mañic necesita su telescopio.'); @@ -221,7 +219,7 @@ class EscapeEnYacare extends EscenaActividad { builder.agregarError(estadosEnOrden[i],'entregarCargador','Yvoty necesita su cargador.'); } if(estadosEnOrden[i]!='todosEntregados'){ - builder.agregarError(estadosEnOrden[i],'montarYacare','Para montar el yacare todos tienen que tener sus cosas???? no se.'); + builder.agregarError(estadosEnOrden[i],'montarYacare','Para montar el yacare todos deben haber recuperado sus cosas.'); } } From 14ad9f5341de9f0ce7a444263db02e817d10c569 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Tue, 24 Oct 2023 17:07:36 -0300 Subject: [PATCH 3/6] yacare fix --- src/actores/segundoCiclo/Capy/Yacare.ts | 1 - src/escenas/libroPrimaria/EscapeEnYacare.ts | 13 ++++++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/actores/segundoCiclo/Capy/Yacare.ts b/src/actores/segundoCiclo/Capy/Yacare.ts index 7b451ff..be77488 100644 --- a/src/actores/segundoCiclo/Capy/Yacare.ts +++ b/src/actores/segundoCiclo/Capy/Yacare.ts @@ -6,6 +6,5 @@ class Yacare extends ActorAnimado { constructor() { super(0, 0, {cantColumnas: 2}); this.definirAnimacion("parado", [0], 1); - this.definirAnimacion("surfear", [1], 1) } } diff --git a/src/escenas/libroPrimaria/EscapeEnYacare.ts b/src/escenas/libroPrimaria/EscapeEnYacare.ts index 325a199..0919f68 100644 --- a/src/escenas/libroPrimaria/EscapeEnYacare.ts +++ b/src/escenas/libroPrimaria/EscapeEnYacare.ts @@ -144,11 +144,17 @@ class AgregarASeguidores extends Sostener { class IrseEnYacare extends Escapar { iniciar(receptor){ + super.iniciar(receptor) this.argumentos.nombreAnimacion = "surfear" this.argumentos.direccion = new Direct(1) this.argumentos.escaparCon = "yacare" - super.iniciar(receptor); + this.argumentos.idTransicion = "irse" } + + preAnimacion(){ + super.preAnimacion() + this.receptor.eliminarUltimoSubactor() + } } class EscapeEnYacare extends EscenaActividad { @@ -183,8 +189,9 @@ class EscapeEnYacare extends EscenaActividad { this.cuadricula.agregarActor(this.automata, 3, 0); this.yacare = new Yacare(); - this.cuadricula.agregarActor(this.yacare, 3, 4); + this.cuadricula.agregarActor(this.yacare, 3, 1); this.yacare.y -= 10; + this.yacare.escala *= 1.2 this.yacare.aprender(Flotar, { Desvio: 2 }); this.construirFSM(); @@ -204,7 +211,7 @@ class EscapeEnYacare extends EscenaActividad { builder.agregarTransicion('telescopioEnMano','pelotaEnMano','entregarTelescopio'); builder.agregarTransicion('pelotaEnMano','cargadorEnMano','entregarPelota'); builder.agregarTransicion('cargadorEnMano','todosEntregados','entregarCargador'); - builder.agregarTransicion('todosEntregados','montandoYacare','escapar'); + builder.agregarTransicion('todosEntregados','montandoYacare','irse'); const estadosEnOrden = ['inicial','telescopioEnMano','pelotaEnMano','cargadorEnMano','montandoYacare'] From e420f8700d3437f4e4d4e4478ae3a735014f4a26 Mon Sep 17 00:00:00 2001 From: Tomas Floxo Date: Tue, 24 Oct 2023 17:12:45 -0300 Subject: [PATCH 4/6] yacare fix 2 --- src/actores/segundoCiclo/Capy/Yacare.ts | 2 +- src/assets/actor.yacare.png | Bin 5861 -> 4272 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/actores/segundoCiclo/Capy/Yacare.ts b/src/actores/segundoCiclo/Capy/Yacare.ts index be77488..f1560e7 100644 --- a/src/actores/segundoCiclo/Capy/Yacare.ts +++ b/src/actores/segundoCiclo/Capy/Yacare.ts @@ -4,7 +4,7 @@ class Yacare extends ActorAnimado { static _grilla = 'actor.yacare.png' constructor() { - super(0, 0, {cantColumnas: 2}); + super(0, 0, {cantColumnas: 1}); this.definirAnimacion("parado", [0], 1); } } diff --git a/src/assets/actor.yacare.png b/src/assets/actor.yacare.png index d59cfc5fa5c88d32c8c4b1512078d6e73a9d1e46..a1b0e1b6802e92742047bccec36170fa09805779 100644 GIT binary patch literal 4272 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 Sn98yM0000sNt*WA^J!)@C?b;)@ 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 iH5*{C)58SBM=lc2-@aUng>UZVmA^!vETxCuG From 7b17b7f8c32ccb036ce0a372bcc785d5d7afb834 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Thu, 26 Oct 2023 19:05:23 -0300 Subject: [PATCH 5/6] bumping version 1.4.16 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index def6abc..53eec0b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pilas-bloques-exercises", - "version": "1.4.13", + "version": "1.4.16", "description": "Exercises for Pilas Bloques", "homepage": "http://pilasbloques.program.ar", "author": { From d5e989787bb292e693f48634ed729c218b6f5f00 Mon Sep 17 00:00:00 2001 From: Alfredo Sanzo Date: Thu, 26 Oct 2023 19:09:40 -0300 Subject: [PATCH 6/6] 1.4.17 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 91c5266..23340e1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "pilas-bloques-exercises", - "version": "1.4.13", + "version": "1.4.17", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 53eec0b..745919b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pilas-bloques-exercises", - "version": "1.4.16", + "version": "1.4.17", "description": "Exercises for Pilas Bloques", "homepage": "http://pilasbloques.program.ar", "author": {