Septiembre 23, 2013, 10:50:44 AM Ultima modificación: Septiembre 25, 2013, 10:46:23 AM por Eggshell
Hola a todos. Mi duda es si es posible mostrar un sprite o background pero al que se le pueda cambiar un solo (o más, pero por separado) color. No me refiero a la función de colorear todo el sprite con un color,  sino que quiero saber si se puede tomar un color específico en una imagen para reemplazarlo por otro.
Por ejemplo así, para cambiarle el color de pelo..:

(ver archivo adjunto)




Cita de: Texic en Septiembre 23, 2013, 07:58:40 PM
Fijate este script que hice
http://www.comunidadgm.org/index.php?topic=16970.0
Lo estuve viendo y aparentemente es exactamente lo que busco. Voy a tratar de dominarlo a ver si me sirve, por lo pronto, es lo más parecido a lo que necesito. Gracias.

PD. - EDITADO -
Hay alguna precaución que se deba tomar a la hora de usar este script? Es decir, consume muchos recursos por el hecho de usar funciones de dibujo?

#3 Mayo 10, 2015, 05:13:50 PM Ultima modificación: Mayo 10, 2015, 07:43:15 PM por Clamud
El script puede ser lento porque usa la función surface_getpixel, que es una de las funciones más lentas en GM, y el tiempo se multiplica al modificar sprites grandes. Lo mejor es usar la función al inicio del juego o en las transiciones entre niveles para evitar retardos a mitad del juego.

Aquí hay otro script que es un poco más rápido, en ese sript se cambian los modos de mezcla al dibujar en superficies, y parece extraño, pero eso se hace más rápido en GM. Además el script cambia el color en todas las sub-imágenes del sprite. Hay una advertencia de bug en :GMS:, pero es completamente compatible con :GM8:

También he leído de una extensión para :GM8: que permite utilizar shaders, pero creo que eso ya es complicarse demasiado.

EDITO: Los siento, había olvidado poner el enlace: http://www.gmlscripts.com/script/sprite_replace_color

Cita de: Clamud en Mayo 10, 2015, 05:13:50 PM
El script puede ser lento porque usa la función surface_getpixel, que es una de las funciones más lentas en GM, y el tiempo se multiplica al modificar sprites grandes. Lo mejor es usar la función al inicio del juego o en las transiciones entre niveles para evitar retardos a mitad del juego.

Aquí hay otro script que es un poco más rápido, en ese sript se cambian los modos de mezcla al dibujar en superficies, y parece extraño, pero eso se hace más rápido en GM. Además el script cambia el color en todas las sub-imágenes del sprite. Hay una advertencia de bug en :GMS:, pero es completamente compatible con :GM8:

También he leído de una extensión para :GM8: que permite utilizar shaders, pero creo que eso ya es complicarse demasiado.

EDITO: Los siento, había olvidado poner el enlace: http://www.gmlscripts.com/script/sprite_replace_color

Gracias!