ahora lo miro y lo modifico ,gracias....Lo he bajado y ahora va..incluyo codigo fuente aqui...
/*
Program's Name: <My Program Name>
Author's Name: <My Name>
Company's Name: <My Company or Group>
*/
program volcan_particulas;
global
N_P=0;// numero de particulas...
struct particulas[10000]
xx;
yy;
v;
s;
a;
end
struct particulas2[10000]
xx;
yy;
v;
s;
a;
end
jota;
jota2;
begin
set_title("Sistema de particulas");
set_icon("graficos/009.png");
// write_int(0,80,100,0,offset jota);
// write_int(0,160,100,0,offset jota2);
// screen canvas options
set_mode(128,128,3);
screen_color(cc_black);
set_fps(60, 0);
screen_smooth(false);
INIT();
UPDATE();
loop
// _DRAW();
if (key(_esc)) exit("Text Exit", 1); end
frame;
end
end
//____________________________________________________________________________________________________________________________________________________________________________________________________________
//____________________________________________________________________________________________________________________________________________________________________________________________________________
//____________________________________________________________________________________________________________________________________________________________________________________________________________
//____________________________________________________________________________________________________________________________________________________________________________________________________________
//____________________________________________________________________________________________________________________________________________________________________________________________________________
PROCESS INIT()
BEGIN
//particulas[0].xx = rand(124,4);
//particulas[0].yy = 128;
// particulas[0].v = rand(0,5)+0.5;
//particulas[0].s = rand(8,0);
//particulas[0].a = 0;
// N_P=1;
END
//____________________________________________________________________________________________________________________________________________________________________________________________________________
//____________________________________________________________________________________________________________________________________________________________________________________________________________
//____________________________________________________________________________________________________________________________________________________________________________________________________________
//____________________________________________________________________________________________________________________________________________________________________________________________________________
PROCESS UPDATE()
private i,j,k,npp;
BEGIN
LOOP
N_P;
npp=0;
for(j=0;j<=6;j++)
particulas[N_P].xx = rand(4,124);
particulas[N_P].yy = 128;
particulas[N_P].v = rand(0,5)+0.5;
particulas[N_P].s = rand(0,8);
particulas[N_P].a = 0;
N_P++;//////////////////////////////////////////en cada bucle le asigno una particula mas...
end
for(j=0;j<=N_P;j++)
particulas[j].xx =particulas[j].xx + rand(0,2)-1 ;
particulas[j].yy =particulas[j].yy - particulas[j].v ;
particulas[j].a =particulas[j].a + 1 ;
if (particulas[j].yy<=0 OR particulas[j].a>=30)
particulas[j].a=-1;
end
jota=j;
end
/////////////////////////////////////////////////////////////////////////////////////
k=0;
/*
for(j=0;j<=N_P;j++)//N_P numero de particulas...
if( particulas[j].a<>-1)//si es diferente a 1.copio tabla...
particulas2[k].xx = particulas[j].xx ;
particulas2[k].yy = particulas[j].yy ;
particulas2[k].v = particulas[j].v ;
particulas2[k].s = particulas2[j].s ;
particulas2[k].a = particulas2[j].a ;
k++;
npp++;//indica numero de particulas..
end
end
*/
npp=0;k=0;
for(j=0;j<=N_P;j++)//N_P numero de particulas...
particulas2[k].xx = particulas[j].xx ;
particulas2[k].yy = particulas[j].yy ;
particulas2[k].v = particulas[j].v ;
particulas2[k].s = particulas[j].s ;
particulas2[k].a = particulas[j].a ;
npp++;
k++;
end
/////////////////////////////////////////////////////////////////////////////////////
_DRAW();
// DEL();
FRAME;
END
END
//____________________________________________________________________________________________________________________________________________________________________________________________________________
//____________________________________________________________________________________________________________________________________________________________________________________________________________
//____________________________________________________________________________________________________________________________________________________________________________________________________________
//____________________________________________________________________________________________________________________________________________________________________________________________________________
PROCESS DEL()//borro los elementos de la structura..
private i,j,npp;
BEGIN
npp=0;
for(i=0;i<=N_P;i++)//N_P numero de particulas...
if( particulas[i].a<>-1)//si es diferente a 1.copio tabla...
particulas2[i].xx = particulas[i].xx ;
particulas2[i].yy = particulas[i].yy ;
particulas2[i].v = particulas[i].v ;
particulas2[i].s = particulas2[i].s ;
particulas2[i].a = particulas2[i].a ;
j++;
npp++;//indica numero de particulas..
end
end
// N_P=npp;
END
//____________________________________________________________________________________________________________________________________________________________________________________________________________
//____________________________________________________________________________________________________________________________________________________________________________________________________________
//____________________________________________________________________________________________________________________________________________________________________________________________________________
PROCESS _DRAW()
private i;
BEGIN
for(i=0;i<=N_P;i++)
x= particulas2[i].xx ;
y= particulas2[i].yy ;
z= particulas2[i].a ;
alpha= particulas2[i].s ;
if(y>0)
SPRITE(x,y,z,alpha);
end
end
END
PROCESS SPRITE(xx,yy,aa,ss)
private spr;
BEGIN
graph=11;
if (aa>=25)
spr=11;
else
spr=floor(ss)+12;
end
graph=spr;
x=xx;
y=yy;
END
//____________________________________________________________________________________________________________________________________________________________________________________________________________
//____________________________________________________________________________________________________________________________________________________________________________________________________________