Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/12/2012, 21:31
Tachikomaia
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Sopa de letras en flash

Me cansé -.-

Versión 2.
Cita:
¿Objeto de aprendizaje? Nunca oí algo así.

Si con sopa de letras te refieres a una especie de tabla de excel donde en cada celda (o en casi todas) hay una letra y se debe "trazar" una línea que pase por las que formen ciertas palabras, lo que te recomiendo es que al hacer clic en una casilla/letra en casilla cambie de color el borde (me refiero al del casillero, pero si cambia de color el fondo o la letra misma no está mal) y aparezca una flecha encima que gire hacia donde muevas el mouse y que se enciendan los bordes de los casilleros por los que más cerca pasara la línea que va desde el casillero primero hasta el que estés señalando. La flecha capáz que no queda bien o sobra, no sé.

Para eso tienes que crear X botones, siendo X la cantidad de casilleros con letras. Si tienes alguno sin letras puedes hacerlo cliqueable y que aparezca un mensaje gracioso cuando se cliqué, como "Aquí no hay letra ¿qué estás haciendo?" o "WFT!". Para ahorrar trabajo mejor piensa antes más o menos qué código tendrán todos por igual. Además tienes que poner los bordes encendidos, no visibles, y de forma que queden cuando quites los botones originales. Porque habría 2 estados del juego: Uno en que seleccionas 1 letra, o sea es un estado que incluye ciertos botones, y otro en que seleccionas palabras, que también incluye (ese estado) botones pero de otro tipo.

La forma más fácil es poniéndoles en una capa superior y con alfa 0, pero creo que más eficiente (para que funcione más rápido/mejor) es poner al principio un código para que queden invisibles, y mejor aún si son algo que simplemente se inserta, 1, cuando llega el momento, pero para hacer eso tienes que indicar en cada caso donde deben insertarse... Para eso es más fácil si lo insertas en los símbolos de las letras o de alguno vacío, es decir, que esté justo en el centro de donde quieras que aparezca, luego sólo deberías indicar en qué símbolo ha de aparecer, en vez de indicar X e Y cada vez. Esos símbolos deben estar en una capa distinta de los botones.

Ok, tienes los botones y los cuadros encendidos listos para quedar cuando se presiona un botón.
Versión 1:
Cita:
¿no? Para que te quede más cómodo tenlos en diferentes layers, aunque creo que perjudica la eficiencia (lo bueno es que antes de publicar puedes hacer un remake en donde ambas cosas estén en un mismo layer).

Ahora haces los cuadros normales, en otro layer o de forma que no se sustituyan por los otros; pueden ser simplemente figuras mientras que los otros sean símbolos. Sí, es mejor hacer los bordes comunes primero... Y las letras, pero no sirve de mucho si no sabes hacer el resto.

Casilleros con fondo especial si quieres, letras, bordes encendidos (que deben hacerse invisibles) y botones.

Código para los botones, es una de las cosas que faltan.

Tendrás que ponerle un nombre a cada borde encendido. B1, B2, etc, sirve.

Cuando haces clic en el primer botón, se hace visible B1.
Cuando haces clic en el segundo, se hace visible B2.

Y así sucesivamente.

Hay una forma menos aburrida pero me parece BASTANTE complicada. No, son un par de formas.

1- Creas un objeto que basado en la posición del mouse especifique un casillero, un número, luego el botón simplemente toma ese número y lo usa para encender el borde relacionado con ese número. El problema es que no sé si sería "luego", podría entonces causar errores. La solución es poner ese código en cada botón, en vez de crear ese objeto extra. O hacer que el código del botón se aplique sólo cuando, digamos A sea 1, siendo así sólo cuando ya el objeto indicó el número. Pero lo estaría indicando constantemente a menos que le pongas que lo indique sólo cuando B sea 1, que debería suceder sólo cuando se presione un botón.

O sea (forma NO recomendada, pero interesante XD ):
A y B inician como 0. Cuando cliqueas un botón (mejor simplemente señalarlo, más cómodo) B pasa a ser 1. El otro objeto hace que A sea 1 (e indica el casillero) cuando B es 1. El botón enciende el borde cuando A es 1. Cuando dejas de señalar botones (posiblemente cuando señalas los bordes) B pasa a ser 0 y a su vez A pasa a 0.

2- (otra forma).
Conviertes los casilleros en símbolos

No, wait...

La cosa es que se encienda el borde correcto, pero es sencillísimo si lo haces así:
1- Creas un símbolo (película).
2- Le pones un botón (un casillero).
3- Le pones un borde encendido (si no quieres hacerlo con attach movie (eficiencia)).
4- Nombras B al borde.
5- Cuando señalas el botón, B se hace visible (en el 1er frame de la película pones que sea invisible).
6- Cuando dejas de señalarlo, se hace invisible.
7- Copias esos símbolos (películas con botones y bordes dentro) tantas veces como casilleros quieras.

El problema es que me parece que con eso sería más complicada, aún, la parte más complicada. Porque tendrías que hacer referencia a objetos dentro de otros. No sé si puede quedar más sencillo...

Ya señalas el botón y se enciende el borde correspondiente. La flecha puede aparecer si quieres... no es tan difícil eso. Ahora se necesita que, al cliquear el botón, y mover el mouse, se enciendan otros bordes y se consideren ciertas letras, eso para ver si se está formando una palabra o no.

Well... Eso será difícil si tienes otros botones, al lado...
Diferencias:
Me confundí, en la 1. Lo que está en rojo es facilícimo hacerlo con un botón ¡simplemente un botón y el borde dentro! El problema, lo que había olvidado, y que señalé bastante en la versión 2, es que ese borde debe conservarse cuando se pase al siguiente estado, en el que los botones del primer estado no pueden quedar.

En otro momento sigo, por ahora como dije me cansé. Igual ya te aclaro -por si no quedó claro Xb - que no tengo tan claro cómo lo haría, y te recomiendo empezar por algo sencillo como una sopa de letras de 2 x 2, luego de 3x3 y sí sucesivamente, por más ridículo que suene, es que si no sabes hacer eso entonces difícil que hagas algo más difícil. Perdón si te confundí o no sirvió, etc, al menos estimulo a que responda otro XD