Esto debería ser una deflagracion aleatoria, pero es una fuente

Started by Danielo515, September 20, 2008, 08:23:15 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Danielo515

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]

Danielo515

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.

HaCkZJuaNN

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...

Danielo515

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)

HaCkZJuaNN

ah, lo siento, me despisté :P Pues aparte de eso no veo nada raro, aunque se me puede escapar algo...

fr0d0b0ls0n

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
Follow the Moeko Principle

FAETON - En Progreso
15 Criaturas de ~28 |  18 Hechizos de ~41
25 Buffs de ~50      |  19 Enfrentamientos de ~80