Saludos

Started by carles, April 20, 2010, 07:21:43 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

FreeYourMind

Tu ponlo, llevo años buscando ese ejemplo :)
Aqui publiques lo que publiques siempre habrá gente que te intentará ayudar, es lo bueno de esta comunidad.

Fede

Si, si, ponlo.  ;D

Que los que estamos aprendiendo te lo agradecemos.

Muaaaa.
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

panreyes

No! No lo pongas! ES UNA TRAMPA!

Y no publiques nunca nada sobre el proceso colisionador de Garnatron. Quedamos en que eso era secreto entre tú y yo. Aunque sea software libre xD

Drumpi

El código durará más tiempo frente a estos super-destructores que si te enfrentas a la Estrella de la Muerte... espera, esto no iba así.

Aquí todo código se agradece, aunque luego no lo use nadie ;D ;D ;D

PD: lo dicho, locos de atar :D
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

carles


Vale, aqui esta el codigo para ondular.

radio es lo que se desvia el grafico.
omega es el numero de ondulaciones que sufre(poner valores mayores de 1000 ya que se trata de un angulo)
delta es la velocidad a la que se mueven las ondas(poner valores mayores de 1000)

Si quereis ver un efecto chulo fijaros en el jefe final del PiX Pang, es la unica vez que he usado este efecto.

Tranquilo PiXeL solo queda una copia del Garnatron que usaba ese sistema de colisiones y esta a buen recaudo.

[code language="bennu"]
process ondular(x,y,z,grafico,radio,omega,delta);

private
   angulo;
   altura;
   desfase;
begin
   loop
      graph=new_map(radio*2+graphic_info(0,grafico,g_wide),graphic_info(0,grafico,g_height),16);
      angulo=desfase;
      from altura=0 to graphic_info(0,grafico,g_height);
         map_block_copy(0,graph,radio+get_distx(angulo,radio),altura,grafico,0,altura,graphic_info(0,grafico,g_wide),1,128);
         angulo+=omega;
      end
      desfase+=delta;
      if(angulo>360000) angulo-=360000; end
      if(desfase>360000) desfase-=360000; end
      frame;
      unload_map(0,graph);
   end
end
[/code]

BoMbErLiNk

Yo tengo un efecto de deformación similar usando también map_block_copy y get_disx.  :)

Quizas sería mejor quitar el graphic_info de los bucles de ese código y usar variables, pues grafico va a dar siempre el mismo resultado.

FreeYourMind

carles, te vas a llevar un karma, porque sobretodo Bomber prometio poner su código aqui y no lo hizo  ;)

BoMbErLiNk

Yo solo te dije (única y exclusivamente a ti) que tenia intención de hacer un hilo de efectos especiales para poner y depurar codigos, si no esta todavía lo puedes crear tu, no hay problema..

FreeYourMind

Hombre, espero que no te hayas enfadado  :P
Esperamos tu hilo, porque nos gusta aprender de los grandes  ;D

Drumpi

Segundo efecto gráfico publicado en 4 mensajes, esto ya se merece un karma ;)
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

FreeYourMind

Y sabes que, lo he probado hace rato y le voy a dar otro karma, te crees que es uno de los efectos que llevo soñando poder hacer con Div-likes desde que salio DIV !? Tuvierón que pasar 11 años, hay que jorobarse...  :D

Fede

Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

FreeYourMind

Pongo una versión modificada:

Esta nueva versión hace la distorción inicial y se va normalizando hasta parar (se ve en muchos titulo, como el Toki de Mega Drive).

Esta un poco chapucerá sobre todo la parte final que hace que pare y quede en estado normal, pero funciona, y siempre la podeis mejorar :)

process ondular2(x,y,z,grafico,radio,omega,delta);
 
private
angulo;
altura;
desfase;
n;
begin
loop
graph=new_map(radio*2+graphic_info(0,grafico,g_wide),graphic_info(0,grafico,g_height),16);
angulo=desfase;
from altura=0 to graphic_info(0,grafico,g_height);
map_block_copy(0,graph,radio+get_distx(angulo,radio),altura,grafico,0,altura,graphic_info(0,grafico,g_wide),1,128);
angulo+=omega;
end
desfase+=delta;

if(angulo>360000) angulo-=360000; end
if(desfase>360000) desfase-=360000; end

delta = delta - 2 * n;
n++;

if (delta <= 0) delta = -20;
    omega = omega - 20;
    delta++;
    if (omega < 0) omega = 0; delta = 0; end
end

frame;
unload_map(0,graph);
end
end


Yo lo llamo de esta forma:

ondular2(320,140,1,MapTitulo,40,1100,20000);

shao

Quote from: FreeYourMind on April 21, 2010, 03:19:32 PM
Pongo una versión modificada:

Esta nueva versión hace la distorción inicial y se va normalizando hasta parar (se ve en muchos titulo, como el Toki de Mega Drive).

Esta un poco chapucerá sobre todo la parte final que hace que pare y quede en estado normal, pero funciona, y siempre la podeis mejorar :)

process ondular2(x,y,z,grafico,radio,omega,delta);
 
private
angulo;
altura;
desfase;
n;
begin
loop
graph=new_map(radio*2+graphic_info(0,grafico,g_wide),graphic_info(0,grafico,g_height),16);
angulo=desfase;
from altura=0 to graphic_info(0,grafico,g_height);
map_block_copy(0,graph,radio+get_distx(angulo,radio),altura,grafico,0,altura,graphic_info(0,grafico,g_wide),1,128);
angulo+=omega;
end
desfase+=delta;

if(angulo>360000) angulo-=360000; end
if(desfase>360000) desfase-=360000; end

delta = delta - 2 * n;
n++;

if (delta <= 0) delta = -20;
    omega = omega - 20;
    delta++;
    if (omega < 0) omega = 0; delta = 0; end
end

frame;
unload_map(0,graph);
end
end


Yo lo llamo de esta forma:

ondular2(320,140,1,MapTitulo,40,1100,20000);

Hola!
no podia entrar con mi viejo nick y he tenido que dar de alta otro.
free! para hacer lo que dices solo tienes que poner
if(radio>0)
   radio--;
end
despues del from aunque quiza se para un poco en seco lo mejora bastante con simplemente eso!
gracias por el codigo a los dos!

SplinterGU

estos codigos pueden ser muy utiles, pero para que no se pierdan, ponganlos en posts separados o 1 uno que sea "algoritmo para hacer explosiones con particulas" o algo asi, en la seccion de recursos.

gracias a ambos, y ambos karmas por sus codigos.

ahh, por favor, agreguen un programa de test, listo para compilar y probar.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2