Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Temas - Naitsabes0

61
Básicamente busco que un personaje cambie su apariencia de sprite inicial cuando se queda quieto unos "X" para luego volver en otros "X" segundos a su sprite original, los detalles están abajo.

La animacion de pie, parado, quieto, normal o idle (creo que así le llamaban) como le colocan los que programan en ingles, es la apariencia que tiene el personaje cuando no esta haciendo nada, por ejemplo este es mi idle.



En muchos juegos hay personajes que cambian su sprite/modelo 3D (dependiendo si esta en 2/3 D) cuando se les deja "X" tiempo sin hacer nada, por dar un ejemplo.

En uno de 3D tenemos a link de ocarina of time bosteza y se pone a estirar las piernas.
https://www.youtube.com/watch?v=QGn2cgQYszY

En uno de 2D tenemos a Jim de earthworm jim que hace cosas raras, como todo en su mundo.
https://www.youtube.com/watch?v=46n6ZQx3Yco

Y yo tengo aquí estos 2 sprite

62
Preguntas y respuestas / [Borrar]
Septiembre 25, 2017, 11:15:28 AM
La animacion de pie, parado, quieto, normal o idle (creo que así le llamaban) como le colocan los que programan en ingles, es la apariencia que tiene el personaje cuando no esta haciendo nada, por ejemplo este es mi idle.



En muchos juegos hay personajes que cambian su sprite/modelo 3D (dependiendo si esta en 2/3 D) cuando se les deja "X" tiempo sin hacer nada, por dar un ejemplo.

En uno de 3D tenemos a link de ocarina of time bosteza y se pone a estirar las piernas.
https://www.youtube.com/watch?v=QGn2cgQYszY

En uno de 2D tenemos a Jim de earthworm jim que hace cosas raras, como todo en su mundo.
https://www.youtube.com/watch?v=46n6ZQx3Yco

Y yo tengo aquí estos 2 sprite



La verdad esto no aporta nada en el ámbito de jugabilidad, pero le da mas vida a los personajes de juego, de todas formas ¿no son ellos el icono de un video juego?  ;)

63
He estado usando un programa como "gom player" y una aplicación como "GifCam", después de ver el asunto que tuve en "Tema: ¿ Como descargar los fotogramas de una animación visual?", resulta que el primero sirve para vídeo a pesar de que se usen las opciones avanzadas, básicamente es un editor de vídeos como cantasia o sony vegas, mientras que en el la otra parece ser mas especifica en lo que busco, pero hay que darle un 1 clic para cada captura, lo que provoca que se salte fotogramas y quede mal hecho, ademas de que reemplaza todos los colores dominantes por verde a partir de la primera imagen, asiendo que se vea irreconocible ¿entonces no puedo convertir un vídeo en un sprite con sus fotogramas? básicamente estoy tratando de descubrir las capacidades de  :GMS:, para saber que puede y que no puede hacer.
64
Preguntas y respuestas / Trampa péndulo[Solucionado]
Septiembre 23, 2017, 10:33:02 AM
Es aquel mecanismo que cuando alcanza una cierta altura vuelve para llegar al otro lado con la misma fuerza, lo que permite que tenga un ciclo infinito moviendoce de un extremo a otro, teniendo esto en claro esto es lo que busco.

Tengo un mazo/palilla/palo con picos que debe moverse bajo estas condiciones.

-Rotara de su base que vendría siendo algo así, origen 16x16 de un tamaño de sprite de 128x32 algo que a la vista es así.
https://i.gyazo.com/85710cd735d1c41973b4150f7243291d.gif

-Se detendrá cuando alcance "X" punto para volver a otro punto "X", para ser mas preciso abarcara 180° grados de la parte inferior, en pocas palabras un péndulo.

-Debe hacer el ciclo infinito, es decir que que rotara en esos 180° grados de forma permanente, en este  caso comenzara en 0°/360° grados para llegar a los 180° en la parte inferior, para luego volver al inicio, así la amenaza estará en constate movimiento.

Lo que he considerado.

En Step tengo este código "image_angle=image_angle-3" que lo ara moverse de forma horaria por debajo, pero cuando alcance un valor de 180° grados su "image_angle=image_angle+3" para volver de forma anti-horaria por debajo, y para cuando su grado sea 0°/360°, este volverá nuevamente para hacer el ciclo infinito, pero si supiera como armar el código para que esto funcione así, no estaría preguntando esto  :D.
65
Pues en muchos lugares es ir y ver que la imagen tengan varios fotogramas para ordenarlos, en otros la imagen ya viene en formato GIF con la animación correspondiente, pero ¿y si una animación que vi en un vídeo me llama mucho la atención y quiero ver cuantos fotogramas se hicieron para crearla? pues como programador lo mio serian los códigos hasta el momento, creo que esa área les corresponde a los animadores, pero como me gusta aprender un poco de todo, quería saber si conocen una forma de descargar en "FOTOGRAMAS" algo que se esta viendo en pantalla, no confundir con descargar vídeos, ya que busco hacer animaciones para mis sprite, hasta el momento creo dibujos muy pequeños para que se vean mas fluidos o imágenes que tienen mucho código para evitar algunas animaciones, ejemplos de esto son:

Animación por fotogramas:

Esta pequeña cosa se mueve fluida mente, y como no si mide 16 de ancho y 24 de alto

Animación por código:

Como pueden ver es solo 1 fotograma, pero este objeto tiene su centro en la base y no en el centro de la imagen seria algo así, 128 de ancho y 32 de alto y centrado en 16x16 por lo que ya saben de donde girara, gracias a este código el objeto se considera animación, image_angle=image_angle+3 en STEP, por lo que evite crear 60 fotogramas asiendo una linea de código.

Lo que busco lograr a futuro.

Esta es una pelea de "Street Fighter II: The World Warrior" aquí el personaje "Ryu tiene una animación fluida para tener un tamaño grande de sprite, soy cociente de que el juego es antiguo y tiene bibliotecas para descargar sprite, pero lo que busco al final es descargar de la forma del titulo.

¿Como descargar la animación en fotogramas de algo que se esta viendo en pantalla?
66
Esta pequeña falla pertenece al puzzle de colisiones , funcionaba bien y todo, pero cuando volví a probarlo al día siguiente surgió esto.


FATAL ERROR in
action number 1
of  Step Event0
for object oPlayer:

Variable oBlockPattern.hecho(100004, -2147483648) not set before reading it.
at gml_Object_oPlayer_StepNormalEvent_1 (line 44) -                 ds_list_add(hecho, orden); //Meter el identificador en la lista, en orden de llegada.

El enlace del puzzle termina con este código.

oPlayer

STEP
[gml]
///Toooodo este código va en el step del jugador; ni más ni menos. Elimina el código antíguo y pega éste.
var vel = 5;
var hor = keyboard_check(ord("D")) - keyboard_check(ord("A"));
var ver = keyboard_check(ord("S")) - keyboard_check(ord("W"));
repeat(vel)
{
    if(place_free(x + hor, y))
        x += hor;
    else break;
}
repeat(vel)
{
    if(place_free(x, y + ver))
        y += ver;
    else break;
}
//Codigo encargado de los patrones alarma
var wall = instance_place(x, y, oBlock); //Encontrar el bloque con quien colisiona
if(instance_exists(wall)) //Si hay colisión
{
    with(wall)
    {
        if(!colliding) //Si no ha cambiado antes (para evitar parpadeo)
        {
            if(image_index == 0) //Si no está activo
                image_index = 1; //Activarlo
            else if(image_index == 1) //y viceversa
                image_index = 0;
               
            colliding = true; //Evitar nueva colisión
        }
    }
}
wall = instance_place(x, y, oBlockPattern); //Encontrar el bloque con quien colisiona
if(instance_exists(wall)) //Si hay colisión
{
    with(wall)
    {
        if(!colliding) //Si no ha cambiado antes (para evitar parpadeo)
        {
            if(image_index == 0) //Si no está activo
            {
                image_index = 1; //Activarlo
                ds_list_add(hecho, orden); //Meter el identificador en la lista, en orden de llegada.
            }
            else if(image_index == 1) //y viceversa
                image_index = 0;
               
            colliding = true; //Evitar nueva colisión
        }
    }
}
[/gml]

oBlock y oBlockPattern

CREATE
[gml]
image_speed = 0;
colliding = false;
[/gml]

STEP
[gml]
if(!place_meeting(x, y, oPlayer)) //Si no está colisionando con el jugador
    colliding = false; //Permitir colisión de nuevo
[/gml]

control

STEP
[gml]
///Y tooodo éste en el step del controlador; ni más ni menos. Borra el código antíguo y pega éste.
var completed = true; //Comenzamos pensando que todos están completos
with(oBlock)
{
    if(image_index == 0) //Si se encuentra uno incompleto
        completed = false; //No se ha completado el puzzle
}
if(completed) //Si se ha completado el puzzle
    with(oBlock)
    {
        image_index = 2; //Ponerles la imagen verde
    }


//Otro puzzle
var completed = true; //Comenzamos pensando que todos están completos
with(oBlockPattern)
{
    if(image_index == 0) //Si se encuentra uno incompleto
        completed = false; //No se ha completado el puzzle
}
if(completed) //Si se ha completado el puzzle
{
    with(oBlockPattern)
    {
        image_index = 2; //Ponerles la imagen verde
    }
   
    var correcto = true; //Comenzamos pensando que se hizo correctamente
    for(var i = 0; i < ds_list_size(base); i++) //Recorremos toda la lista
    {
        var bs = base[| i]; //Obtenemos el valor i de la lista original
        var he = hecho[| i]; //Obtenemos el valor i en el orden de activación
        if(bs <> he) //Si los valores son diferentes (si se activaron en un orden incorrecto)
        {
            correcto = false; //No se ha completado;
            break; //Ya con eso no tenemos que recorrer más la lista
        }
    }
    if(correcto)
    {
        //Algo si el puzzle es correcto
    }
    else
    {
        //Supongo que se reiniciará el puzzle
        with(oBlockPattern)
        {
            image_index = 0; //Ponemos su estado a 'desactivado'
        }
        ds_list_clear(hecho); //Vaciamos la variable `hecho`
    }
}
[/gml]
67
Preguntas y respuestas / Puzzle de patrones [Solucionado]
Septiembre 16, 2017, 11:15:31 AM
Con este GIF muestro lo que busco.

En algunos juegos, el jugador debe tocar ciertos objetos en un orden para que pase "X" acción, en este ejemplo de Mario 64 el jugador debe tocar los cofres en el orden correcto, de no seguir la secuencia correcta sufrirá daño, ademas los cofres volverán a su estado original, de esta forma el jugador deberá tener algo de memoria hasta encontrar el patrón correcto por descarte.

¿Hay algún tutorial de  :GMS: para hacer esta mecánica en particular? la verdad no se como se puede llamar a esta mecánica de puzzle de patrones, puede verse común y simple, pero la he visto pocas veces en juegos, y con el diseño de escenario adecuado mas otros puzzles que tengo en el "proyecto texteo" que siempre muestro para dar informacion visual, podria hacer combinaciones que logren captar la atencion.

Si no hay un tutorial, pues no importa, poco a poco analizare los elementos involucrados, por el momento sigo experimentando con el "puzzle de colisiones", gracias por leer  :).
68
Preguntas y respuestas / Puzzle de colisiones [Solucionado]
Septiembre 15, 2017, 02:23:05 PM
Mientras estudio el obj_Aplastador de mi post anterior para crear mecánicas nuevas, dejare pendiente este problema para progresar en un nuevo elemento.


Como se puede apreciar en el GIF de este juego "Super Mario Galaxy 2", hay unas baldosas (suelo/bloques) que al pisarlas o mas bien tocarlas, cambian de color, y si el jugador las toca nuevamente, recuperan su estado original, básicamente el jugador debe pasar por el mismo sitio una única vez ¿que planeo hacer con esto? pues un puzzle de colisiones como dice el titulo, esto es lo que se me ocurrió implementar.

La idea es crear 2 objetos nuevos.

El obj_Bloque_Alarma: Este objeto dispone de un spr_Bloque_Alarma, el cual tiene 3 fotogramas para el cambio de estado que en este caso es de azul (inactivo) a amarillo (activo), y si se pudiera armar un GIF mas largo el verde (completado), claro que esos colores los cambiare, pero es un ejemplo.

El obj_Puerta_Alarma: Este objeto simplemente es una puerta que se debe destruir cuando todos los obj_Bloque_Alarma estén en el estado (completado).

El obj_Jugador: Simplemente debe colisionar.

Esto es lo que he considerado en código.

obj_Bloque_Alarma
///CREATE
///Estados
image_speed = 0      //Evitar que los fotogramas cambien por step
estado = inactivo      //Estado inicial/normal
estado = activo         //Estado después de la colisión
estado = completado //Estado permanente

///COLLISION obj_Jugador (Bueno aquí esta con palabras)
Si el jugador colisiona con el obj_Bloque_Alarma (inactivo)
Su estado es (activo)
Si el jugador colisiona con el obj_Bloque_Alarma (activo)
Su estado es (inactivo)
Un problema que hay en esto es que el bloque va a parpadear de forma infinita por tener al jugador encima, en vez de contar el 1° impacto como colisión.

///STEP
Si todos los obj_Bloques están en estado (activo)
Todos se volverán en estado (completado)

///ALARMA
Algo tendrá que hacer aquí?

obj_Puerta_Alarma
///STEP
Si todos los obj_Bloques_Alarma se encuentran en estado (completado)
instance_destroy()

Creo que he considerado todos o al menos la gran mayoría de los elementos que son necesarios para crear las baldosas que aparecen en "Super Mario Galaxy 2", al menos la mecánica de colisiones.

Bien creo que me iré a dormir por que "el que madruga ¡SE MUERE DE SUEÑO!  XD.
69
Como el titulo es muy genérico, mostrare un ejemplo de lo que quiero hacer.



Como pueden el comportamiento de este enemigo/trampa, es moverse de forma lineal cuando detecta al jugador, en este caso es cuando lo detecta verticalmente hacia abajo, lo que vendría siendo una coordenada "Y" positiva, pero no solo va al ataque del jugador cuando pasa por lo que seria su rango de visión (abajo en este caso), sino que se mantiene quieto por unos segundos, después empieza a subir hasta llegar a su lugar de origen lentamente, mientras esta asiendo la recarga de volver a su lugar de origen no puede atacar, y solo se detiene cuando golpea el suelo, las posibilidades que tendría un objeto con estas cualidades no se encuentran en muchos juegos de este genero, ademas el código para crearlo no se muestra en algún tutorial, probablemente por que sea un elemento muy rebuscado, incluso en mi juego "Red Heart" ningún enemigo o jefe tiene cambios de estado, excepto el jefe final, pero utiliza patrones de movimiento de los "paths", por lo que este seria el enemigo con la IA mas compleja en comparación a los demás, como todo inicio tengo el sprite y el objeto que recibirá los códigos, probablemente tenga que usar los eventos "CREATE","STEP" y tal vez alguna "ALARMA" ya que este enemigo tiene cambios de estado que hacen un siclo una vez que cumplió su acción, aquí ya es la hora de la madrugada y creo que desvelarme no fue buena idea  :-\.
70
Preguntas y respuestas / Aumento de escala [Solucionado]
Septiembre 11, 2017, 03:09:42 AM
Pues voy pensando en poderes que cambien el juego, y ahora se me paso por la mente el hacer que un objeto aumente proporcionalmente su escala a un tamaño mayor.

Como ahora estoy asiendo experimentos con el "Arkanoid", sera la bola la que sea afectada, para ello tengo.

obj_Bola 16x16 centrada.

obj_Poder_Bola_Grande
///COLISION con el obj_Bola
//codigo//
effect_create_above (ef_firework,x,y,1,c_red);
audio_play_sound (snd_Bloque,50,false);
instance_destroy();

Lo que tengo en //código// seria lo que debo combinar, asumo que la función image_scale, tiene que estar ubicada en alguna parte, ya que es la encargada de ver los tamaños de los sprite, esto ayudaría a golpear mas objetivos, por el hecho de ser mas grande, ademas que permitiría al jugador atraparla mas fácilmente, las ventajas son muy favorables, por lo tanto mi pregunta se resumiría de la siguiente forma.

¿Como aumento el tamaño de mis bolas?
71
Preguntas y respuestas / Regeneración general [SOLUCIONADO]
Septiembre 10, 2017, 06:01:37 AM
Pues en muchos juegos hay elementos de regeneración, tales como vida, energía, magia, munición etc.

Lo que busco en este caso seria regeneración de vida, y he pensado en establecer lo siguiente.

-Una condición de que la vida se recupere de forma continua, lo que significa que va sumando mientras pasa el tiempo.

-Un limite, pues en algún momento debe parar de generar vida (salud), ya que seria raro que la vida sea 100% y pase a valores superiores.

Mi jugador tendría una vida 18(100%) como máximo y un regenerador que lo recuperara 1 de vida cuando pasen 30 step
global. vida = 18;
regenerador = 1

En STEP estaría el regenerador, cuando este sea == 30 tendría que dar un global. vida += 1 y volver el regenerador a 0 para repetir el ciclo, pero claro el mayor problema estaría en como detengo el ciclo? en algún momento el jugador podría llegar a tener tanta vida que sea casi imposible de matar.

La verdad podría servir para la regeneración de muchos elementos que mencione con anterioridad, pero analizando 1 da pie a organizar y complementar con otros, lo mas parecido que tengo a esto es el objeto_Tiempo, por lo que creo que debe ser muy similar.
72
He pensado en algo como lo de abajo para crear un sprite especifico para cada habitación.

///Nombre nivel
if room=room_Nivel1 (draw_sprite(spr_Icono nivel,0,32,32));
if room=room_Nivel2 (draw_sprite(spr_Icono nivel,1,32,32));
if room=room_Nivel3 (draw_sprite(spr_Icono nivel,2,32,32));

Pero como es de costumbre, hay algo que me falla al momento de realizar este código, ya que puedo llegar a armar 30 niveles y debo ordenarlo como si fuera una lista, de todas formas en un juego que va por versiones y se ara pesado de organizar a futuro.

NOTA: Resumí esto así, por que mi problema anterior se alargo y nos desvió del problema principal, ademas de descubrir que no le puedo sumar tiempo a un objeto que se crea.
73
el objeto que tiene el tiempo dispone de

obj_Tiempo_juego
CREATE
///Variables
global.tiempo = 130; //tiempo en segundos

Los demás elementos se encargan de que corra 30 step por segundo y de dibujarlo.

obj_Poder_Aumento_Tiempo
COLISION con bola
///Sumar tiempo
global.tiempo += 30;
instance_destroy();


El tiempo no se suma se conserva, por lo que se vuelve inútil el poder de aumentar tiempo, hay algo que falla en estos códigos.

74
Preguntas y respuestas / Darle nombre a la habitación
Septiembre 07, 2017, 08:51:49 AM
Pues no es un nombre como tal, sino que es una forma de llamar a la habitación, para que el jugador tenga una orientación de donde se encuentra, en mi caso es simplemente llamar a cada cuarto con un numero creado por un sprite, lo que trato de hacer es crear un objeto controlador que me diga en que nivel se encuentra el jugador, lo mas parecido que tengo a esto es el objeto controlador de música fondo, el cual tiene un código que permite tocar la música correspondiente a cada nivel, para hacerse una idea esta seria su estructura

///////////////////////////////ROOM_START
///Musica de fondo
if room=room_Nivel1 {audio_sound_gain(snd_Delightful_D,0.7,1);
                   audio_play_sound(snd_Delightful_D,0,1);}else
if room=room_Nivel2 {audio_sound_gain(snd_Robobozo,0.7,1);
                   audio_play_sound(snd_Robobozo,0,1);}else
if room=room_Nivel3 {audio_play_sound(snd_Laser_Groove,0,1);}

////////////////////////////ROOM_END
audio_stop_all();

Por lo que deduzco que tendría que armar una estructura semejante, es decir, si cuarto es X , entonces crea/dibuja el sprite X en las coordenadas x,y, pero como no logro armar de forma correcta este elemento, he preguntado  :-\.
75
El problema de esto es que no armo de forma correcta el código, lo que busco es que cuando todos los bloques esten destruidos, el juego pase a la siguiente room, pero deben pasar 3 segundos, ya que quiero añadir algo a ese lapso de tiempo, en vez de ser un viaje instantáneo.

ALARMA 0
///Siguente cuarto
room_goto_next();

STEP
/// Contador de bloque
if (instance_number(obj_Bloque) == 0){
    alarm[0] = room_speed*3
    //show_message("Has ganado!");
    //game_restart();
}
76
Juegos en desarrollo / Darkill Arkanoid
Septiembre 06, 2017, 01:39:49 AM


Darkill Arkanoid


Arkanoid


GM: Studio


NOTA: La calidad real deeste video es superior a 720p, al verla en una cantidad inferior no se puede apreciar el verdadero aspecto visual que tiene el juego, por lo que se recomienda al espectador dejar cargando el vídeo un rato en caso de que no tenga un rendimiento optimo, de no hacerlo se vera muy distorsionado, ademas de ser visualmente horrible para los tiempos actuales.

Otro dato es que mi equipo tiene
Edición: windows 10 Pro
Procesador: intel(R) Core(TM) i3-7100 CPU @ 3.90Hz 3.91 Hz
Memoria instalada: (RAM): 12,0 GB
Tipo de sistema: Sistema operativo de 64 bits, procesador x64

Esto lo menciono por el hecho de que al al abrir la aplicación en window 7 de un amigo, este no pudo pasar del  escenario, ya que su versión de window no se lo permitió.






https://1drv.ms/u/s!Atq2jjfQXJlHgzpBmKIlRvQTAul_
https://www.dropbox.com/s/2ftz25yykncya5e/Juego_Darkill_Arkanoid.exe?dl=0

Versión 1.0
-3 zonas de nivel.
-3 poderes.
-3 temas de música de fondo.
- información de vidas (bolas).
- información de contador de bloques.

Esto comenzó con la base de un tutorial de escuela de vídeo juegos, las similitudes son evidentes, pero dejare eso a criterio de los usuarios que descarguen la primera versión y lo prueben por ellos mismos, buen día  :).

77
He imaginado como seria vería ver toda una habitación con la variable de opacidad, esta característica no aparecía en un Shaders de GM:S, el cual tenia múltiples efectos llamativos, pero como ya he mencionado, este no estaba en la lista, tomando en cuenta que tengo tiles y muchos  objetos de distinto tipo en una habitación, seria engorro ir 1 por 1 dándole opacidad, ademas que es un efecto que solo estará presente en una habitación de las decenas que hay, digamos que es una habitación especial a la que llamo "zona fantasma", es el nombre mas original que me pude inventar por evidentes razones  :D, al igual que otros efectos creados, el área de acción es toda la vista/habitación del juego.
78
Se que asisten las funciones.

effect_create_above
effect_create_below

¿Pero y si quiero crear un efecto de sprite y no uno que se genere por defecto de estas funciones?

Por ejemplo tengo este efecto de 300x300 con 31 sub-imágenes que encontré en foros japones/chinos/koreanos, la verdad es que dibujan efectos de otro mundo, pero eso no es relevante a mi pregunta.


La idea es que este efecto se cree cuando pase una acción X, por dar un ejemplo el jugador coje (agarra) a una estrella, y esta activa este efecto cuando es colisionada, pero el sprite (efecto) debe eliminarse cuando llegue al ultimo fotograma.

Quiero aclarar de que en mi juego ningún efecto es por sprite, todos son producto de las 2 funciones anteriormente mencionadas, con esto busco hacer efectos mas profesionales y trabajados, ya que los que se tienen por defecto están muy limitados.
79
Preguntas y respuestas / Busco como distorsionar la realidad
Septiembre 04, 2017, 12:19:36 AM
Pues he armado este código siguiendo un tutorial de Mega G.

obj_Pared
CREATE
///Variables
angulo=0
amplitud=10
b=10

DRAW
///Efecto distorcion
for(i=0; i<=sprite_height; i=i+1)
{
draw_sprite_part(sprite_index,0,0,i,sprite_width,1,x+sin((angulo+i)/b)*amplitud,y+i)
}
angulo+=2

El resultado es...

Por lo que las paredes cumplen su funcionamiento ¿Pero se puede armar un objeto que distorsione toda la vista/pantalla? algo así como crear un obj_Distorsionar, que mientras este presente todo se distorsiona, la verdad creo que debe ser algo similar al codigo para invertir la vista.

NOTA: Lo que esta aquí abajo no es un problema solo es el agradecimiento por ayudarme a salir de un error, ademas creo que este código puede tener alguna semejanza con mi actual problema, razón por la que lo puse mas abajo.

Respecto al problema de invertir la vista, lo solucione gracias al apoyo que se me dio, es mas, logre convertirlo en un poder negativo, el cual se activa por colisión y se desactiva por otra, claro que esto ultimo fue por un fallo que me gusto   XD, tal vez debería considerarlo logro por accidente  :).


Sea como sea este fue el código que me dieron.
///Invertir colores
draw_set_blend_mode_ext(bm_inv_dest_colour, bm_zero);
draw_rectangle_colour(view_xview[0], view_yview[0], view_xview[0] + view_wview[0], view_yview[0] + view_hview[0], c_white, c_white, c_white, c_white, false);
draw_set_blend_mode(bm_normal);
Y lo mezclado.
///Creacion del efecto invertir color
instance_create(x+obj_Jugador,y+obj_Jugador,obj_Invertir_Colores)
instance_destroy()
80
Preguntas y respuestas / [Borrar]
Septiembre 03, 2017, 06:58:59 PM
A lo ultimo que llegue fue esto desde el día viernes 1 hasta hoy, claro que he progresado en otros aspectos que si se como solucionar, pero este todavía me acongoja.

obj_Invertir_Colores
evento "DRAW"
///Invertir colores
with (all)
{
draw_set_blend_mode_ext(bm_inv_dest_colour, bm_zero);
draw_rectangle_colour(x, y, x+sprite_width, y+sprite_height, c_white,c_white,c_white,c_white,false);
draw_set_blend_mode(bm_normal);
draw_self();
draw_set_blend_mode_ext(bm_inv_dest_colour, bm_zero);
draw_rectangle_colour(x, y, x+sprite_width, y+sprite_height, c_white,c_white,c_white,c_white,false);
draw_set_blend_mode(bm_normal);
}

Resultado final.

ERROR in
action number 1
of Draw Event
for object obj_Invertir_Colores:

Trying to draw non-existing sprite.
at gml_Object_obj_Invertir_Colores_DrawEvent_1 (line 7) - draw_self();

Esta malo, probablemente porque no tengo ningún scrip en este experimento, tampoco sabría como conectarlo con el obj_Invertir_Colores si lo creara  :-\, en caso que este bien estaría mal distribuido.