Configuración de botones

Hola @hugoruscitti como siempre haciendo cosas nuevas. Hoy tengo un desafío en mi cabeza y no logro hacerlo y por eso te lo quiero preguntar. Como hacer unos ajustes en unos botones para que funcionen en mi juego:

En el juego tú puedes hacer click y crear actores, pero luego que creo a varios actores quiero moverlo cada uno individual. Pero cuando lo muevo el clima crea a otro actor y eso es lo que no quiero.
1-Me imagino un botón que me permita hacer click para hacer los actores.
2- y uno que me permita luego moverlos.
3- aquí viene el desafío cuando presiones el de hacer click deshabilita el de mover y cuando presione mover deshabilita el de click. Pero luego lo quiero seguir usando, no es que más nunca lo utilice.
4- no sé si hay una manera de que una presiones dos veces el mismo botón. Ejemplo presione el botón hacer click y puedo hacer personaje y luego vuelvo a presionar el botón hacer click y ya no me deja algo así. Espero que no sea un factidio pero eso me tiene loco.
Nota: intente trabajar con aprender y olvidar arrastra pero al momento de arrastrar cuando doy click se clona. Algo fácil es como hacer que el hacer click se active y se desactiva. Gracias por antemanos. Aah una cosita más como hago para utilizar aprender y olvidar arrastra afecto a varios actores con la misma etiquetas o nombre no se.

Y una cosita cómo va pila de nuevo? Jeej

Hola @VictorRico !!!, me quedé pensando en cómo hacer algo así como mencionas… me imagino que lo que podrías tener es alguna variable global o autómata para que el mouse responda de forma diferente en cada caso.

Veamos un ejemplo de cómo hacer esto con una variable global y dos botones:

Para empezar, en el proyecto hice una variable llamada “modo” y ahí guardé una cadena de texto, “crear” o “mover”:

image

Luego, hice dos botones. El de la izquierda guarda en la variable modo el texto crear y el botón de la derecha pone en la variable mover.

image

A su vez, cada uno de estos botones se hace “semi-transparente” cuando la variable modo tiene un valor distinto al que tiene asignado (por ejemplo el botón “crear” se pone semi-transparente si la variable no dice modo=crear):

image

Te debería quedar así:

https://app.pilas-engine.com.ar/#/proyecto/d4305a5a-bf2e-47ca-aacf-b88134264f90

Observá que todo este código depende de tener esa variable modo en el proyecto, por eso los botones pueden leer y escribir esa variable llamada this.proyecto.modo.

Luego, para las acciones, podrías hacerlo en dos pasos:

  • Primero, para que se puedan clonar actores haciendo click podrías simplemente implementar la función cuando_hace_click en la escena pero no hacer nada si la variable this.proyecto.modo tiene guardado algo distinto a la cadena de texto “crear”:

De esa forma, te aseguras que solo se clonen actores cuando ese modo está activado.

  • Y para que los actores se puedan arrastrar, tal vez lo que podrías hacer es que la habilidad
    de arrastrar y soltar se aprenda y olvide en los métodos que detectan que el mouse está sobre el actor.

Por ejemplo, en el método cuando_mueve se ejecuta cuando el mouse pasa por arriba del actor, ahí podrías ver si el modo es mover y en ese caso enseñarle la habilidad para que se pueda arrastrar y soltar.

Luego, el método cuando_sale podrías usarlo para desactivar la habilidad. Aquí no haría falta que consultes el modo:

image

Te paso el ejemplo completo:

Abrir este proyecto en el editor de pilas

Avisanos si te sirve para hacer el juego que tienes en mente!!!

Wow gracias Hugo. De verdad que sabes desifrar cualquier problema. Con lo que hiciste creo que no debería tener porblema. Cuando termine lo subo para que veas el proyector. Un abrazo psicologíco