Bueno, antes era un poco más compleja, y obtenía ligeramente mejores resultados, pero seguía siendo el mismo problema, si mantengo pulsada la tecla de crear el proceso siempre se generan 4 ramas de procesos que siguen el mismo recorrido, como una fuente, y creo que le he dado a rand suficiente rango de acción. ¿como haríais vosotros para simular una explosion desde una perspectiva cenital?
Veis, para esto vendría bien un motor de físicas XD
si, despx y energia son float.
[code language="bennu"]process basurilla_miniradar(int x,int y,int jugador)//esto son los residuos de la explosion
private
float avancey,avancex;
int altura_inicial,altura_final;
basurilla_miniradar hermano_ma;
begin
hermano_ma=bigbro;
graph=new_map(4,4,16);
map_clear(0,graph,rgb(1,1,1));
region=jugador;
avancey=y;
avancex=x;
altura_inicial=y; //para saber donde empezó todo
if(exists(hermano_ma))
repeat
energia=rand(-3000,-1000)/1000;
until( energia<>hermano_ma.energia)
repeat
despx=rand(-17,17)/10;
until((despx<-0.9 || despx>0.9)&& despx<>hermano_ma.x)
else
energia=rand(-3000,-1000)/1000;
repeat
despx=rand(-17,17)/10;
until(despx<-0.9 || despx>0.9)
repeat
avancey+=energia;
avancex+=despx;
y=avancey;
x=avancex;
energia+=0.05;
frame;
until(energia>rand(1,2));
edad=timer;
repeat
frame;
until(timer-edad>=300);
end[/code]
La he modificado un poco y queda asi algo mejor, ahora os la pongo.
Lo que yo creo que no ocurre es lo que hay dentro del if del bigbro, creo que no lo tiene en cuenta por algún motivo, o bueno, es que solo tiene en cuenta a uno y desprecia a otros muchos. Si a alguien se le ocurre una forma de mejorarla porfi que me la diga.
la variable energia no aparece declarada como private, es global??? en tal caso me parece raro, pero, qué tipo de variable es, float? int? si es int, el problema es que la línea energia=rand(-3000,-1000)/1000 siempre te va a dar -3,-2 o -1, y el 99% de las veces -2 o -1...
Quote from: Danielo515 on September 20, 2008, 08:23:15 PM
si, despx y energia son float.
estaba en el primer post, ja ja, pero no pasa nada. Son variables public, por lo que aparecen en el declaration al principio de todo. Cuando consiga algo decente lo postearé por si alguien quiere usarlo es sus códigos (supongo que no)
ah, lo siento, me despisté :P Pues aparte de eso no veo nada raro, aunque se me puede escapar algo...
Usa algún say a ver que te están generando esos rand, por si fuera problema de eso. Por cierto que ni sabía que el rand aceptaba números negativos