pilas-engine

Juego de armar o desarmar cosas

Hola @hugoruscitti queria saber como hacer para hacer un minijuego donde por ejemplo armar un cohete, inicia con las parte separadas y regadas en la pantalla y uno lo arma como es pero no se como iniciar.
1- otra cosa es que la idea me vino como por ejemplo un carro, y tu lo estes armando colocando los asientos, luego las puertas del carro los cauchos y asi. No se si me explico

Fíjate en los ejemplos que trae Pilas hay uno de rompecabezas. Podrías empezar por ahí

Hola @PabloSosa lo intente con eso pero no me quedaba igual…

Hola @VictorRico !!! me gustó la idea del mini-juego que propones, creo que hay varias formas de armarlo… te tiro algunas ideas.

Supongamos que tenemos que hacer que un cohete pueda despegar, pero está separado en varias piezas. Una opción es pedirle al jugador que haga click en las piezas para armar el cohete y que solo pueda despegar si tiene todas las piezas.

En este caso, tendrías que crear un actor de nombre “cohete”, con una imagen de cohete incompleto y en su código tener atributos para indicar qué piezas tiene y que piezas le faltan:

Yo estoy imaginando que el cohete podría tener otras dos piezas que le faltan, un “cono”, que sería la parte de arriba del cohete. Y un “propulsor”, que sería la parte de abajo. Por eso en el código hice dos variables para indicar con true o false si tiene esa pieza o no.

Sin título 4.key 2021-08-28 18-42-01

Luego, para hacer que el cohete pueda conseguir esas partes hice dos actores y los puse en la escena:

image

Ahora, ¿cómo se integra todo eso?. Hay dos cosas a tener en cuenta:

  • Por un lado, el cohete tiene los atributos “tiene_cono” y “tiene_propulsor” en false.
  • El cohete no debería poder volar si tiene alguna de esas variables en false.
  • Cuando el usuario quiera colocar una pieza el código del programa debería poner el atributo “tiene_cono” en true o “tiene_propulsor” en true, dependiendo del caso.

Creo que para mantenerlo sencillo, lo que podemos hacer primero es que el cohete rechace volar si no tiene alguna pieza. Esto se puede hacer poniendo un botón que lance la señal “despegar” y haciendo que el cohete mire esos dos atributos para ver si puede volar. Si alguno de los atributos está en false, debería mostrar un mensaje diciendo que no puede volar:

image

Te debería quedar así:

image

Ahora, para que las partes se puedan conectar tendrías que crear los actores de las piezas y hacer que reaccionen al click del mouse. Aquí también se puede hacer que el juego te permita arrastrar y soltar las piezas, pero es más difícil. Más abajo en este mensaje te comento como hacerlo, pero por ahora dejémoslo lo más simple posible.

Por ejemplo, para el propulsor, lo que podría hacer cuando se hace click es que la pieza se coloque automáticamente debajo del cohete y le avise al cohete con una señal que se conectó, así el cohete pone el atributo “tiene_propulsor” en true.

y luego en el código del cohete, habría que reaccionar a la señal “recolecta_propulsor”:

Con eso, vas a ver dos cosas:

1 - cuando hagas click sobre el propulsor, se va “conectar” en el cohete y el cohete va a decir algo:

image

2 - Si ahora haces click sobre el botón despegar el mensaje cambia, ahora va a darse cuenta que le falta el cono:

image

La idea detrás del cono es la misma, tendrías que hacer que reaccione al click, que se posicione donde está el cohete y luego emita una señal para avisarle al cohete que ponga el atributo “tiene_cono” en true.

Te paso como quedó el proyecto que armé mientras pensaba la estrategia. Tenes que hacer click en las piezas que faltan y luego hacer click en el botón despegar:

Abrir este proyecto en el editor de pilas

Luego, si quisieras que la persona que juega tenga que arrastrar y soltar las piezas es más complejo, pero se puede hacer siguiendo algunos pasos:

  • Primero, para que este actor se pueda mover arrastrando y soltando deberías escribir este código en el método iniciar:

image

  • Luego, para detectar el momento en donde el usuario suelta al actor tendrías que escribir el método “cuando_termina_de_hacer_click” y ahí detectar si el actor está en la “zona correcta” o no.

Esto último es un poco más difícil, pero si el cohete está siempre en el mismo sector de la pantalla podes hacerlo con las coordenadas “x” e “y”.

Te paso el ejemplo que armé como para que puedas ver cómo quedaría arrastrando y soltando:

Abrir este proyecto en el editor de pilas

¡¡Avisame cualquier cosa!!

1 Like