Título: Confusión en cuanto a cambiar colores de películas en Flash. Publicado por: Tachikomaia en 29 Marzo 2024, 12:00 pm Intento hacer un generador de posibles dibujos, para eso se va variando qué pixel está negro o blanco, creo que se puede resumir en esto:
Código Los nombres de las variables son confusos, no sé cómo mejorarlos, pero hay un pixel del cual se mira si puede cambiar de color (a negro, 1, 0 es blanco), y en tal caso se lo modifica. El problema es que, supongo, se debería hacer de forma más directa, pero no sé cómo. Tengo ColordePixel1, ColordePixel2, etc, la cantidad de variables así va aumentando, todas son 0 o 1, y eso luego se usa para determinar si el pixel (Pixel1, Pixel2, etc) debe volverse negro o blanco. Para hacer ese cambio se crea una variable que es como una propiedad de una película (Pixel1, o Pixel2, etc), y luego se le asigna un valor que sería el color. También resulta curioso que al redefinir esa variable apuntando a otra película, el color de las películas anteriores que fueron definidas por ella no cambia. No me perjudica, de hecho podría ser mejor tener un montón de variables con 0 o 1, en vez de un montón con FFFFFF y 000000, pero al menos por curiosidad quisiera saber si se puede hacer de modo más directo y que me expliquen mejor qué hacen las 2 últimas líneas del código. Lo normal, digamos, debería ser algo así: Código: Apuntar a un pixel. Código: Apuntar a un pixel. Título: Re: Confusión en cuanto a cambiar colores de películas en Flash. Publicado por: EdePC en 30 Marzo 2024, 01:17 am No sé si entiendo bien tu pregunta pero estimo que quieres cambiar el color de un MovieClip dependiendo del color que tenga actualmente, para esto puedes recuperar el color con getRGB que tiene SIEMPRE Y CUANDO al momento de crearlos usaste setRGB
Por ejemplo yo puedo crear 25 cuadritos uno después de otro como si fuera un tablero, cada cuadrito de un color aleatorio entre blanco (0xFFFFFF) y negro (0x000000 o simplemente 0), luego reviso el color de cada cuadrito y comparo si es negro (0), si lo es le cambio a blanco (0xFFFFFF), sino lo cambio a negro (0) Crear cuadritos: Código
Cambiar color: Código
(https://i.ibb.co/K95yPj8/cambiacolor.gif) ... y que me expliquen mejor qué hacen las 2 últimas líneas del código. La primera de esas dos crea una Objeto Color para la instancia (vínculo) de un MovieClip y le llama Col La segunda especifica un color en formato RGB Hexadecimal (RRGGBB RedGreenBlue RojoVerdeAzul) para el Objeto Col creado anteriormente y como este está vinculado a una Instancia de un MovieClip, pues afecta a ese MovieClip Están usando parseInt() para convertir un texto dado en base 16 (hexadecimal) a número, pero no es necesario porque directamente puedes especificar un número hexadecimal, es decir 0xFFFFFF para blanco y 0x000000 (o solo 0) para negro El parseInt() está pensado más para cuando debes recibir un texto y convertirlo en número, por ejemplo de un cuadro de texto (txtColor) donde debe indicarlo el usuario y presionar un botón, si dicho usuario quiere el color verde pondrá: 00FF00 o FF00 en su cuadro de texto, luego tendrías que recuperar ese texto y convertirlo a número indicando que está en base 16 (hexadecimal) Código
Título: Re: Confusión en cuanto a cambiar colores de películas en Flash. Publicado por: Tachikomaia en 31 Marzo 2024, 14:28 pm Estoy asombrado por la simpleza conque generas los píxeles, mi código tiene variables que debo ver si sobran o no, luego quizá te lo muestre para que, en lo posible, me digas cómo simplificarlo, si no me doy cuenta, o como anécdota.
Lo del array también está interesante, pensaré en aplicarlo. Bien, todo bien. ¿Pero no te parece que sería más fácil algo como: setProperty ("cuadro" + i, _color, FFFFFF); ? Si existiera eso. Me resulta absurdo que requiera tanto trámite. El cuadradito ya tiene un color, como bien has dicho y no sabía sería cuestión de captar cual con get y según eso cambiárselo, como cuando se le cambia la posición u otra propiedad. Uno no hace: c = new XPosition("cuadro" + i); c.set(genXPosition()); en vez de eso se pone: setProperty ("cuadro" + i, _x, genXPosition()); Tal vez tiene que ver con la necesidad de que sea hexadecimal, no sé, asumo que es una imperfección de Flash. No me gustan los trámites absurdos xD Bueno, voy a cambiar cosas y luego comento, pero no sé cuánto tardaré, tal vez 3 días. Título: Re: Confusión en cuanto a cambiar colores de películas en Flash. Publicado por: Tachikomaia en 7 Abril 2024, 08:30 am Quité el Parseint y simplifiqué el cambio de colores como me dijiste, dejo los archivos a quien le interesen:
https://drive.google.com/file/d/1z3lL4wWYmJ_SCZcZliXx7fK8dH4TdOUS/view?usp=sharing Incluye la versión anterior y la nueva (simplificando). El objeto Vacío en frame 3 está en la punta inferior derecha, tiene la función Variar. Como alternativa, el código: Código
Cosas que quiero hacer luego: - Simplificar la creación de Píxeles, si es posible, debo ver bien cómo lo hiciste. - Evitar repeticiones por simetría horizontal. - Intentar que el orden sea según la combinación más distinta. La idea es que se muestren todos los dibujos posibles en que haya algún píxel pintado en cada columna y fila, pero son TANTOS, que es algo inútil de ver, no se produce mucho interesante... Por eso luego... - Hacer un generador random, de muchos dibujos con tamaño y colores a elección. Y programación genética. La idea es hacer un generador de sprites. |