Autor Tema: Efectos visuales  (Leído 6889 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Yawin

  • Hero Member
  • *****
  • Mensajes: 1088
  • Karma: 44
  • Sexo: Masculino
  • La primera persona que ha "demosceneado" en Bennu.
    • Ver Perfil
Efectos visuales
« en: Enero 18, 2011, 10:31:07 am »
Bueno, gracias a que estoy haciendo una demo, estoy empezando a cojerle práctica a todo lo que son efectos visuales, cosenos, senos (ojalá que fuesen físicos), etc...

Por eso, abro este post para ir poniendoos animaciones y efectos que haga. Si vosotros habéis hecho alguna ponedla.

Empiezo enseñándoos lo último que he hecho. Espirales.


Mover el proceso en una trayectoria espiral:

Código: [Seleccionar]
process espiral()
private
float fi,ro;
float py=3.1416; //Número Pi
int eq=0; //La X alrededor de la cual quieres que trace la espiral.
int yi=0;  //La Y alrededor quieres que trace la espiral.
int tipo; //Tipo 0 hace que la espiral se vaya haciendo más grande y tipo 1 hace que la espiral se vaya haciendo más pequeña. Si no se pone límite, cuando fi sea negativo irá haciendose más grande.
end
begin
file=fpgs[0];
graph=1;

fi=1000000; //Este es el ángulo. Cuanto más alejado de 0 (tanto por arriba como por abajo), más lejos del centro.

loop
ro=(fi*py)/180000; //Calculamos Ro (Que es la distancia entre el centro de la espiral y el punto)

x=ro*cos(fi)+eq; //Como ro*cos(fi) saca la x teniendo el centro de la espiral en el origen de coordenadas, sumamos eq al resultado para que se pinte según el centro de espiral que hemos decidido
y=ro*sin(fi)+yi; //Lo mismo que el anterior

if(x<-10 || x>650 || y<-1 || y>650)
break;
end

frame(10);

if(tipo==0)
fi+=incre;
else
fi-=incre;
end
end
end


Pintar una espiral con Map_put_pixel:

Código: [Seleccionar]
process espiral()
private
float fi,ro;
float py=3.1416;
int eq=0;
int yi=0;
int map;
end
begin
map = new_map(640,480,16);
map_clear(0,map,rgb(0,0,0));

fi=1000000; //Este es el ángulo. Cuanto más alejado de 0 (tanto por arriba como por abajo), más lejos del centro.

loop
ro=(fi*py)/180000; //Calculamos Ro (Que es la distancia entre el centro de la espiral y el punto)

x=ro*cos(fi)+eq; //Como ro*cos(fi) saca la x teniendo el centro de la espiral en el origen de coordenadas, sumamos eq al resultado para que se pinte según el centro de espiral que hemos decidido
y=ro*sin(fi)+yi; //Lo mismo que el anterior

pixels(x,y,map,rgb(255,0,0));
if(x<-10 || x>650 || y<-1 || y>650 || fi==0)
break;
end

// Puts the map in the center of the screen
put(0,map,320,240);

frame(10);

if(tipo==0)
fi+=incre;
else
fi-=incre;
end
end
end

process pixels(x,y,int map,int color)
private
int i;
end
begin

map_put_pixel(0,map,x,y,color);
for(i=0;i<120;i++)
frame;
end
map_put_pixel(0,map,x,y,rgb(0,0,0));

end

Espero que os resulten útiles o, al menos, interesantes.
« última modificación: Enero 18, 2011, 10:32:54 am por yawin »
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

Desconectado Fede

  • Hero Member
  • *****
  • Mensajes: 1531
  • Karma: 71
  • Sexo: Masculino
  • Buen ambiente, buen karma.
    • Ver Perfil
Re: Efectos visuales
« Respuesta #1 en: Enero 18, 2011, 10:45:15 am »
Je, je. Karma.

Me los quedo para la colección.  ;D

Me rio porque me da la impresión de que bennu no estaba pensado para esto. Así que no sé como andará de potencia matemática.

Y porque la nueva hornada utilizamos bennu para cualquier cosa.  :D

¡Al ataqueeeeerrrrrrr! (Famoso humorista español, Chiquito de la calzada).  ;D
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.

Desconectado Yawin

  • Hero Member
  • *****
  • Mensajes: 1088
  • Karma: 44
  • Sexo: Masculino
  • La primera persona que ha "demosceneado" en Bennu.
    • Ver Perfil
Re: Efectos visuales
« Respuesta #2 en: Enero 18, 2011, 10:50:39 am »
Pues debería, al fin y al cabo, mítico videojuego en el que el texto de inicio entra con un efecto de espiral...

jajaja
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

Desconectado Fede

  • Hero Member
  • *****
  • Mensajes: 1531
  • Karma: 71
  • Sexo: Masculino
  • Buen ambiente, buen karma.
    • Ver Perfil
Re: Efectos visuales
« Respuesta #3 en: Enero 18, 2011, 11:15:30 am »
Jua, jua. Si es el que pienso, si, pero despacito.  ;D
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.

Desconectado Yawin

  • Hero Member
  • *****
  • Mensajes: 1088
  • Karma: 44
  • Sexo: Masculino
  • La primera persona que ha "demosceneado" en Bennu.
    • Ver Perfil
Re: Efectos visuales
« Respuesta #4 en: Enero 18, 2011, 11:26:43 am »
Nah, el efecto de la trayectoria va rapido, el de pintar es el que igual no va tan rapido como gustaría
xD
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

Desconectado josebita

  • Administrator
  • Hero Member
  • *****
  • Mensajes: 4038
  • Karma: 257
  • Sexo: Masculino
    • Ver Perfil
    • BennuGD Mobile Worklog
Re: Efectos visuales
« Respuesta #5 en: Enero 31, 2011, 12:18:34 am »
Yawin, ¿por qué no subes alguno de estos ejemplos a la página de map_put_pixel de la wiki? Me imagino que será útil.

Desconectado Yawin

  • Hero Member
  • *****
  • Mensajes: 1088
  • Karma: 44
  • Sexo: Masculino
  • La primera persona que ha "demosceneado" en Bennu.
    • Ver Perfil
Re: Efectos visuales
« Respuesta #6 en: Enero 31, 2011, 01:58:38 am »
Porque no se escribir en wikis. Prefiero dejaros a vosotros ese trabajo xD
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

Desconectado Yawin

  • Hero Member
  • *****
  • Mensajes: 1088
  • Karma: 44
  • Sexo: Masculino
  • La primera persona que ha "demosceneado" en Bennu.
    • Ver Perfil
Re: Efectos visuales
« Respuesta #7 en: Noviembre 13, 2011, 04:00:21 am »
¡Juer, tengo esto más abandonao que yo que se!


Bueno, os traigo un nuevo efecto recien salido de mi horno. Lo más posible es que se le puedan mejorar los fps, pero lo hice ayer a las 3 de la mañana y no estaba el horno para bollos xDD


Demonstruación:
http://www.youtube.com/watch?v=6u4Isy86ZMI


Códigos, códigos, códigos:
Código: [Seleccionar]
function presentacion()
   public
      int i,j,iy,eq,aux;
   end
   begin
     
      fade(0,0,0,100);
      while(fading)
         frame;
      end
      screen_put(fpgs,1);
      fade(100,100,100,1);
      while(fading)
         frame;
      end
      for(i=0;i<120;i++)
         frame;
      end
      fade(0,0,0,1);
      while(fading)
         frame;
      end
      clear_screen();
      fade(100,100,100,64);
     
      eq=100;
      iy=195;
     
      set_fps(120,1);
      mostrar=true;
      for(i=0;i<81;i++)
         for(j=0;j<487;j++)
            if(map_get_pixel(fpgs,2,j,i)==map_get_pixel(fpgs,3,0,0))
               switch(rand(1,4))
                  case 1:
                     aux=rand(0,480);
                     punto(-1,aux,eq,iy);
                  end
                  case 2:
                     aux=rand(0,640);
                     punto(aux,-1,eq,iy);
                  end
                  case 3:
                     aux=rand(0,480);
                     punto(641,aux,eq,iy);
                  end
                  case 4:
                     aux=rand(0,640);
                     punto(aux,481,eq,iy);
                  end
               end
            end
            eq++;
         end
         eq=100;
         iy++;
      end
      for(i=0;i<340;i++)
         frame;
      end
      mostrar=false;
      set_fps(60,1);
   end
   
process punto(int x, int y, int eq, int iy)
   private
      int aux,i;
   end
   begin
      graph=new_map(1,1,32);
      map_put_pixel(0,graph,0,0,map_get_pixel(fpgs,3,0,0));
     
      repeat
         if(x<eq)
            x++;
         end
         if(eq<x)
            x--;
         end
         if(y<iy)
            y++;
         end
         if(iy<y)
            y--;
         end
         
         frame;
         
         for(i=0;i<rand(1,3);i++)
            if(x<eq)
               x++;
            end
            if(eq<x)
               x--;
            end
         end
         for(i=0;i<rand(0,3);i++)
            if(y<iy)
               y++;
            end
            if(iy<y)
               y--;
            end
         end
      until(mostrar!=true)
   end


La idea es, nuestro juego llama a la función "presentación". Cuando esta acaba, hace un let_me_alone() y a otra cosa mariposa.
« última modificación: Noviembre 13, 2011, 04:02:08 am por Yawin »
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

Desconectado FreeYourMind

  • Hero Member
  • *****
  • Mensajes: 5530
  • Karma: 125
  • Sexo: Masculino
    • Ver Perfil
    • GECA soft
Re: Efectos visuales
« Respuesta #8 en: Noviembre 13, 2011, 04:32:20 am »
Muy guapo, pero un pelin lento, que PC tienes ?

Desconectado Yawin

  • Hero Member
  • *****
  • Mensajes: 1088
  • Karma: 44
  • Sexo: Masculino
  • La primera persona que ha "demosceneado" en Bennu.
    • Ver Perfil
Re: Efectos visuales
« Respuesta #9 en: Noviembre 13, 2011, 04:38:10 am »
Mi ordenador es una mierda así de grande: <-------------------------------------------------------------------->
xDD Ya he dichoq ue se podría mejorar. En cuanto pueda os pondré un nuevo efecto. Forma parte de una dmeo que estoy haciendo. Esta:
http://www.youtube.com/watch?v=3m4Z-CBNgWs
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

Conectado SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12426
  • Karma: 366
  • Sexo: Masculino
    • Ver Perfil
Re: Efectos visuales
« Respuesta #10 en: Noviembre 13, 2011, 08:16:07 am »
hace las particulas mas grandes... 2x2 o 4x4.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Desconectado Yawin

  • Hero Member
  • *****
  • Mensajes: 1088
  • Karma: 44
  • Sexo: Masculino
  • La primera persona que ha "demosceneado" en Bennu.
    • Ver Perfil
Re: Efectos visuales
« Respuesta #11 en: Noviembre 13, 2011, 09:04:04 am »
Esque entonces el logo no queda tan nítido. Ya lo había pensado
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

Desconectado Prg

  • Hero Member
  • *****
  • Mensajes: 1569
  • Karma: 140
  • Sexo: Masculino
    • Ver Perfil
    • Mi pagina
Re: Efectos visuales
« Respuesta #12 en: Noviembre 13, 2011, 01:51:56 pm »
vi el video de youtube. Me encantó. Cuando tenga un poco de tiempo libre me estudiaré el efecto. Saludos y karma++
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Conectado SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12426
  • Karma: 366
  • Sexo: Masculino
    • Ver Perfil
Re: Efectos visuales
« Respuesta #13 en: Noviembre 13, 2011, 02:59:23 pm »
Esque entonces el logo no queda tan nítido. Ya lo había pensado

si puede quedar nitido, fijate que yo puse un efecto que componia una pantalla completa moviendo bloques de pixels por toda la pantalla, o sea, 4x4, pero no 1 pixel, sino 4x4 pixels de la imagen...

es mas, lo puse como libreria .dcl... busca dcl en el foro, no hay mucho de eso.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Conectado SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12426
  • Karma: 366
  • Sexo: Masculino
    • Ver Perfil
Re: Efectos visuales
« Respuesta #14 en: Noviembre 13, 2011, 03:03:42 pm »
pues no lo encuentro ni yo... pero la idea es que cada pixel sea en realidad un bloque de pixels
Download Lastest BennuGD Release: http://www.bennugd.org/node/2