| |||
Sopa de letras en flash hola que tal, el asunto esta asi estoy haciendo un objeto de aprendizaje en as2 y me gustaría saber si me podrían ayudar con la creación de una sopa de letras ya que no tengo ni idea de como podría hacerla, gracias de antemano! |
| |||
Respuesta: Sopa de letras en flash Me cansé -.- Versión 2. Cita: Versión 1:¿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. Cita: Diferencias:¿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... 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 |
| |||
Respuesta: Sopa de letras en flash Que tal gracias por la respuesta aunque la vdd si me confundí algo yo tambien jejeje Aunque se me ocurrio una forma de hacerlo, lo primero seria hacer moviesclip o botones y que al pasar con el puntero presionado se fueran seleccionando, en caso de mc que te mande a algun frame para que marque como que esta seleccionado, o si btn que se ponga el estado, y al momento de que termine la seleccion de elementos este haga una comparacion para ver si corresponden a los elementos que forman la palabra correcta si no pues que se deseleccione. El problema esta en que no conozco el codigo que podria usar para que al ir arrastrando el puntero por encima estos ejecuten la acción que quiero ponerle. espero haberme explicado jeje Última edición por jaime_gpe; 11/12/2012 a las 13:26 |
| |||
Respuesta: Sopa de letras en flash Primero asegurate de que cuando presionas un botón y te sales de él sin soltar el botón del mouse otros botones captan que estás encima de ellos. En mi flash (5 viejo) no captan eso, tienes que soltar el botón del mouse. Capáz que hay alguna forma de que lo capten aunque no lo sueltes, no sé. Pero tampoco sé si es necesario que uses botones... Se me ocurre crear un botón que sea constante y automáticamente arrastrado por el mouse, y que cuando cliqueés capte mediante hittest qué casillero has tocado, pero no sé si se puede y me parece un poco delirante, lo mencioné por las dudas XD Si no se puede arrastrar un botón, sí se puede arrastrar una movie con uno dentro. Y ojo que con arrastrar me refiero a sustituir el puntero del mouse con eso, no es que debas estarle haciendo clic. Capáz que la solución es esa XD Otra cosa que se me ocurre es estilo age of empires, o sea, al cliquear que aparezca una linea (en el caso del aoe es un cuadro), y la rotas y expandes según hacia donde muevas el mouse, luego usas hit test para marcar por cuales casilleros está pasando. Antes había escrito esto, te lo dejo por las dudas: Cita: Algo que me parece más normal sería: Cuando cliqueás un botón, desaparecen todos los que no estén al lado (gralmente esos serían 8). Las letras y demás se quedan, pero los botones no. Para marcar cuales han de desaparecer sugiero nombrarlos tipo f1c1, f1c2, o sea, fila 1 columna 1, etc, y tienes que ponerlos dentro de películas y desaparecerlas a ellas, porque a los botones no se les puede nombrar (al menos en mi flash). También, cuando cliqueas, tienes que marcar cual has cliqueado, por algo que explicaré más adelante. Digamos que has cliqueado el 5 (piensa en la parte derecha de los teclados comunes). Cuando pases por el 8 por ejemplo, si no has soltado el botón del mouse, no sé si captará que estás encima del 8... |
Etiquetas: |