Si podes cambiar el valor de las variables pero nose como funciona signal. Mira este codigo:
Con la "p" cambias el padre del ultimo cuadrado.. con la k matas el arbol de procesos a partir del segnudo.
[code language="bennu"]Program DataBase;
private
Paused;
proc;
end
begin
set_fps(24,1);
set_mode(640,480,16);
pr1();
repeat
if(exists(type pr2) && key(_k))
signal(type pr2,s_kill_tree);
end
frame;
until(key(_esc))
let_me_alone();
end
process pr1();
begin
x = 100;
y = 200;
graph = new_map(64,64,16);
map_clear(file,graph,rgb(255,255,255));
pr2();
loop
frame;
end
end
process pr2();
begin
graph = new_map(64,64,16);
map_clear(file,graph,rgb(204,255,255));
pr3();
loop
x = father.x+50;
y = father.y+50;
frame;
end
end
process pr3();
begin
graph = new_map(64,64,16);
map_clear(file,graph,rgb(153,255,255));
loop
if(key(_p));
father = father.father;
break;
end
x = father.x+100;
y = father.y+100;
frame;
end
loop
x = father.x+100;
y = father.y+100;
frame;
end
end[/code]
No digo que no se pueda hacer con variables (la verdad no lo se).. pero evidentemente hay que cambiar algo mas que que el valor de father, por eso seria comoda una funcion.Saludos