Conectarse
Últimos temas
» Concurso 1º Aniversario FFSK!!!por Wecoc Hoy a las 20:09
» Hola Hola <3
por AlemánGift Hoy a las 4:13
» Sobrepasar el límite de caracteres permitidos.
por drakem Ayer a las 21:09
» Necesito tilesets con nieve.
por HatsuHurimi Ayer a las 2:40
» Hola nuevo mundo
por Gacoro Ayer a las 2:30
» Cambiar color sistema de texto
por Lithium Miér 18 Abr 2018 - 0:21
» PETICION DE LINKS ROTOS
por RinerV Mar 17 Abr 2018 - 17:57
» una ayudita porfavor
por Gacoro Mar 17 Abr 2018 - 15:34
» Hola,soy nuevo en el foro.
por Gacoro Mar 17 Abr 2018 - 15:30
» the world of the gods crystals
por Gacoro Mar 17 Abr 2018 - 7:19
[Ayuda][XP] Engine Puzzle Profesor Layton
Mundo Maker :: RPG Maker :: Ayuda RPG
Página 1 de 1. • Comparte •
[Ayuda][XP] Engine Puzzle Profesor Layton
¡Hola a todos!
Vereis, estoy intentando hacer en el XP una versión de un puzzle del Profesor Layton en el que se mueven las piezas hasta dejar paso a la bola. Este es:

He hecho esto:

Los charas son "simples" y los que son más amplios están hechos con piezas, es decir, la pieza horizontal tiene el chara de la parte derecha y de la parte izquierda, y ambos se mueven a la vez mediante este engine:

Como veis, es un engine sencillito, pero a veces me da un problema,y es que en ocasiones se "separan" las piezas compuestas, y mira que el engine es bien simple, no tengo ni idea de donde estará el error :S
Por ejemplo, si yo tiro de esa pieza hacia abajo, se separa, y yo lo que quiero es que en esos casos se mantenga unida u.u (bueno, que se mantengan unidas siempre xD)

Ojalá se solucione ese error, pues me gustaría poder aportar un engine en condiciones sin bugs >.<
¡Saludos!

Vereis, estoy intentando hacer en el XP una versión de un puzzle del Profesor Layton en el que se mueven las piezas hasta dejar paso a la bola. Este es:

He hecho esto:

Los charas son "simples" y los que son más amplios están hechos con piezas, es decir, la pieza horizontal tiene el chara de la parte derecha y de la parte izquierda, y ambos se mueven a la vez mediante este engine:

Como veis, es un engine sencillito, pero a veces me da un problema,y es que en ocasiones se "separan" las piezas compuestas, y mira que el engine es bien simple, no tengo ni idea de donde estará el error :S
Por ejemplo, si yo tiro de esa pieza hacia abajo, se separa, y yo lo que quiero es que en esos casos se mantenga unida u.u (bueno, que se mantengan unidas siempre xD)

Ojalá se solucione ese error, pues me gustaría poder aportar un engine en condiciones sin bugs >.<
¡Saludos!

natalie_cuxi- Principiante
-
1072
Gracias : 25
Re: [Ayuda][XP] Engine Puzzle Profesor Layton
Sí, y entiendo porqué pasa...

Es la parte más complicada xd... Hay una forma de hacerlo, que es simular una tabla de coordenadas por medio de variables, y hacer que cada evento verifique que para las demás partes hay un espacio libre.
En una matriz de números, el puzzle que muestras digamos se ve así:
1,-1,-1,0,
2,2,3,4,
5,6,6,7,
5,6,6,7,
8,9,10,10,
0,-1,-1,0
Cada número simboliza un "objeto". El 1 es la pelota roja. El -1 es un lugar bloqueado. Los números 2 al 10 son cada una de los objetos/piezas del puzzle. Esta idea efectivamente usaría 4x6=24 variables (aunque también puedes usar un array y guardarlo en una variable xD). Más unas tres, quiza, para guardar datos de búsqueda. Porque habrá que buscar en nuestra "matriz" de números...
Entonces, para verificar si, por ejemplo, la pieza 10 (la verde de abajo-derecha) puede moverse hacia abajo, harías...
En la línea que dice Condición: Script:, en lugar de varIndice pones el número de la variable que usaste en todo esto.
Esto es un buscador, implementado por engine x'D. Simplemente itera entre un número de variables, y devuelve el primer valor entre ese grupo de variables que encuentre que iguale a un valor específico (en este caso 10).
Ya con eso, es hacer verificaciones... Digamos que queremos mover la pieza hacia abajo...
:^DDDDD... Espero que te sirva xD.

Es la parte más complicada xd... Hay una forma de hacerlo, que es simular una tabla de coordenadas por medio de variables, y hacer que cada evento verifique que para las demás partes hay un espacio libre.
En una matriz de números, el puzzle que muestras digamos se ve así:
1,-1,-1,0,
2,2,3,4,
5,6,6,7,
5,6,6,7,
8,9,10,10,
0,-1,-1,0
Cada número simboliza un "objeto". El 1 es la pelota roja. El -1 es un lugar bloqueado. Los números 2 al 10 son cada una de los objetos/piezas del puzzle. Esta idea efectivamente usaría 4x6=24 variables (aunque también puedes usar un array y guardarlo en una variable xD). Más unas tres, quiza, para guardar datos de búsqueda. Porque habrá que buscar en nuestra "matriz" de números...
Entonces, para verificar si, por ejemplo, la pieza 10 (la verde de abajo-derecha) puede moverse hacia abajo, harías...
- Código:
<>Poner etiqueta: inicioBusqueda
<>Condición: [varIndice] < 24
<>Condición: Script: $game_variables[$game_variables[varIndice]]==10
<>Ir a etiqueta: finBusqueda
:Excepción
<>Operación de variable: [varIndice] sumar 1
:Fin
:Excepción
<>Operación de variable: [varIndice] poner 0
<>Ir a etiqueta: finBusqueda
:Fin
<>Ir a etiqueta: inicioBusqueda
<>Ir a etiqueta: finBusqueda
En la línea que dice Condición: Script:, en lugar de varIndice pones el número de la variable que usaste en todo esto.
Esto es un buscador, implementado por engine x'D. Simplemente itera entre un número de variables, y devuelve el primer valor entre ese grupo de variables que encuentre que iguale a un valor específico (en este caso 10).
Ya con eso, es hacer verificaciones... Digamos que queremos mover la pieza hacia abajo...
- Código:
<>Operación de variable: [verificadora] poner var[varIndice]
<>Operación de variable: [verificadora] sumar 4
- Sumando 4 (el tamaño en X de la matriz), obtenemos el índice del campo que está justo abajo. -
<>Condición: Script: $game_variables[$game_variables[verificadora]] != 0
<>Ir a etiqueta: finMovimiento
:Fin
- Repetimos lo anterior, sumando 1 al índice para trabajar con la pieza derecha. -
<>Operación de variable: [varIndice] sumar 1
<>Operación de variable: [verificadora] poner var[varIndice]
<>Operación de variable: [verificadora] sumar 4
<>Condición: Script: $game_variables[$game_variables[verificadora]] != 0
<>Ir a etiqueta: finMovimiento
:Excepción
:Fin
- Y ahora, si ambos lugares están vacíos (iguales a cero), ejecutamos el movimiento -
<>Mover evento: [10parteIzquierda] (...)
<>Mover evento: [10parteDerecha] (...)
- También debemos recordar actualizar la matriz numérica -
<>Llamar script:
# Primero liberamos los campos donde estaba la pieza
$game_variables[$game_variables[varIndice]-1]=0
$game_variables[$game_variables[varIndice]]=0
# Y ahora ponemos la pieza en los lugares actuales
$game_variables[$game_variables[varIndice]+3]=10
$game_variables[$game_variables[varIndice]+4]=10
<>Poner etiqueta: finMovimiento
:^DDDDD... Espero que te sirva xD.
orochii- Reportero
-
7613
Gracias : 412
Re: [Ayuda][XP] Engine Puzzle Profesor Layton
¡Muchas gracias por contestar Orochii!
Pues...he releido 4 veces el post para intentar comprenderlo xDD
A ver, he intentado seguir tus pasos y he hecho esto (a ver si es lo que tu dices)

Esto tengo que hacerlo para todas las piezas compuestas, ¿no? Tendría que sustituir el "10" por el "2", "6", etc...¿es eso?
Entonces me surgen dudas: ¿tienen que ir todos en el mismo evento? ¿lo pongo como paralelo en el mismo mapa o como evento común? ¿o tal vez tiene que ir cada uno dentro de su propia pieza?
--------------------
Ahora ya esta parte la he entendido menos >.< Me he quedado así:

Esta parte la he entendido menos, lo siento, le he puesto ganas, pero como tengo dudas de la parte anterior, difícilmente puedo comprender bien esta parte D:
¡Oh gran Orochii, ilumíname con tu conocimiento! *o*
XDD
¡Saludos y gracias!

Pues...he releido 4 veces el post para intentar comprenderlo xDD
A ver, he intentado seguir tus pasos y he hecho esto (a ver si es lo que tu dices)

Esto tengo que hacerlo para todas las piezas compuestas, ¿no? Tendría que sustituir el "10" por el "2", "6", etc...¿es eso?
Entonces me surgen dudas: ¿tienen que ir todos en el mismo evento? ¿lo pongo como paralelo en el mismo mapa o como evento común? ¿o tal vez tiene que ir cada uno dentro de su propia pieza?
--------------------
Ahora ya esta parte la he entendido menos >.< Me he quedado así:

Esta parte la he entendido menos, lo siento, le he puesto ganas, pero como tengo dudas de la parte anterior, difícilmente puedo comprender bien esta parte D:
¡Oh gran Orochii, ilumíname con tu conocimiento! *o*
XDD
¡Saludos y gracias!

natalie_cuxi- Principiante
-
1072
Gracias : 25
Mundo Maker :: RPG Maker :: Ayuda RPG
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.