Cita de: brunoxzx en Diciembre 12, 2017, 07:22:18 AM
¿Intercambio de que hombres? Tranquilo que aquí llegará la respuesta de TheWood en algún momento con paciencia, yo creo que el no te dejo el ejemplo para que te eches la talacha (el trabajo) y aprendas, así que no te apresures.
Mira lo que debes hacer en pocos pasos para ahora que estás conectado y tengo ganas de divertirme:
- Crear un "obj_muro_color" padre, y le das "color=image_blend" (o el color que quieras) en el evento create.
- Crear un hijo de "obj_muro_color" que se llame "obj_bloque_verde" a ese le pones en create "image_blend=c_green; color=image_blend;". Puedes crear cuantos hijos quieras para cuantos colores quieras y así añadirlos fácilmente en el room.
- Crear un hijo de "obj_muro_color" llamado "obj_pincho", puedes crear cuantos hijos quieras de obj_pincho de diversos colores o solo añadir el objeto pincho en el editor de rooms y cambiar el color desde allí
- Añadir a obj_muro_color el siguiente código en el "event_user 0":
[gml]
if (alarm[0]<0) {
alarm[0]=30; //o el tiempo que le quieras poner antes que se destruyan
var ins;
for(var i=0; i<4; i++){
ins=collision_point(x+sprite_width/2+lengthdir_x(sprite_width, i*90), y+sprite_width/2+lengthdir_y(sprite_width, i*90), obj_muro_color, false, true);
if ( instance_exists(ins) ){
if (ins.alarm[0]<0 && color==color) {
with(ins) event_user(0);
}
}
}
}
[/gml]- Añadir al objeto "obj_muro_color" en el evento de colisión con tu personaje lo siguiente: "event_user(0)"
- Añadir el D&D de instance_destroy() a la alarma 0 de el "objeto_muro_color"
- Añadir el "with(other) instance_destroy();" al evento de colision del "obj_pincho" con tu personaje
- Añadir el siguiente código al step de "objeto_muro_color":
[gml]
if (alarm[0]>0) image_blend=lerp(color, c_white, sign(alarm[0] mod 2)); //puedes cambiar el 2 para que parpadee más lento o más rápido
[/gml]
Listo, siempre puedes añadir el "obj_muro_color" directamente en el room sin necesidad de crear un hijo y darle el color que quieras desde la interfaz.
Edit: Me di cuenta que querías una cosa un poquitín distinta a lo que pensaba y acabo de modificar
He leído detenidamente cada parte y he armado lo siguiente:
obj_Muro_Color
CREATE
[gml]
///Color
color = image_blend
[/gml]
ALARM 0
Tiene un D&D de "destroy the instance"
STEP
[gml]
if (alarm[0]>0) image_blend=lerp(color, c_white, sign(alarm[0] mod 2));
[/gml]
COLLISION obj_Jugador
[gml]
///Activar evento
event_user(0)
[/gml]
USER DEFINED 0
[gml]
///Evento
if (alarm[0]<0) {
alarm[0]=30; //o el tiempo que le quieras poner antes que se destruyan
var ins;
for(var i=0; i<4; i++){
ins=collision_point(x+sprite_width/2+lengthdir_x(sprite_width, i*90), y+sprite_width/2+lengthdir_y(sprite_width, i*90), obj_Muro_Color, false, true);
if ( instance_exists(ins) ){
if (ins.alarm[0]<0 && color==color) {
with(ins) event_user(0);
}
}
}
}
[/gml]
obj_Bloque_Verde (Hijo obj_Muro_Color)
CREATE
[gml]
///Color
image_blend=c_green;
[/gml]
obj_Pincho (Hijo obj_Muro_Color)
CREATE
[gml]
///Color
image_blend=c_green;
[/gml]
Quiero aclarar que los 2 objetos tienen un sprite a los que llame spr_Bloque y spr_Pincho, los cuales son con tonalidades de blanco, el obj_Muro_Color se encuentra en la room, pero me da error.

FATAL ERROR in
action number 1
of Other Event: User Defined 0
for object obj_Muro_Color:
Variable obj_Bloque_Verde.color(100015, -2147483648) not set before reading it.
at gml_Object_obj_Muro_Color_UserEvent0_1 (line 8) - if (ins.alarm[0]<0 && color==color) {