Mi primera demo

Started by Yawin, January 15, 2011, 03:45:22 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Yawin

Bueno, como estoy atascado con mi Age of Yawin y no quiero perder la costumbre de programar todos los dias algo, he comenzado a hacer una demo. Una demo es algo que se hace para un movimiento llamado Demoscene que consiste en hacer videoclips programando (mas o menos es eso).

Acabo de entrar en ese mundo y obviamente lo he hecho con Bennu.

Antes de nada os voy a enseñar lo poquito que llevo hecho:
http://www.youtube.com/watch?v=EgawCkbVI-A

Además me gustaría pedir unos permisos:

1º A... Josebita, creo por la cabecera del Bennu en 3D que aparece en el video. ¿Me dejas usarla en la demo? Que luego igual no la uso porque es muy larga, pero al menos saber que me dejas. (Si no lo ha hecho Josebita, pos el que lo haya hecho xD).

2º Los administradores del lugar, en la demo, saldrán palabras desplazandose de derecha a izquierda. Van a ser comandos de Bennu y vuestros nicks. Es una especie de... mención y agradecimiento. ¿Me dejáis poner vuestros niks en la demo?


Por último unas dudas.

Referentes a... imagino que mod_write:
-En otro momento de la demo, quiero que caigan al estilo matrix palabras japonesas, coreanas, chinas y árabes. He probado tanto con write como con write_var y nada, me saca simbolos raros. ¿Hay alguna forma de hacer que salgan caractéres no románicos (los que no son nuestros, vamos)?
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

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

FreeYourMind

Muy chula, cuando pongas la descarga te llevas otro karma  ;)

Yawin

eheheheh, tranquilidad, que llevo menos de un minuto y quiero que dure la cancion entera. O sea unos 2-3 minutos xD

Añado una duda más al post de arriba.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

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

Kloppix

¿No podrías crear algunos .fnt para los caractéres no románicos?


Drumpi

Para caracteres no románicos, no, no hay forma, ya que los FNT utilizan la nomenclatura ASCII en dos variantes, lo que significa que sólo tienes disponible 256 caracteres: 31 de control (fin de línea, retorno de carro, beep...), hasta el 128 con los caracteres básicos, y hasta el 256 con los extendidos (vocales acentuadas, con diéresis, caritas, líneas)...
Para poder añadir más caracteres habría que usar UNICODE o similar, y ya no usaría CHAR de 8 bits.

Por lo que la solución pasa por crearte una fuente cambiando las letras normales por las que quieres, al fin y al cabo, un FNT no es más que un FPG, con información distinta sobre cada mapa (como el espacio entre letras-gráficos, altura real y altura de línea...).
De momento no hay una utilidad FPG->FNT (se intentó) pero lo puedes hacer tú usando código Bennu, o con el método de Splinter, usando un gráfico, pero cambiando las letras del PNG por las que necesites.
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)

SplinterGU

quien intento hacer un fpg->fnt?

mientras iba leyendo el hilo pense que seria util...

aunque realmente a mi me resultan mas practicos los png... en general, me resultan mas practicos los graficos sueltos que los fpg/fnt etc.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Kloppix

Quote from: Drumpi on January 16, 2011, 04:25:13 PM
Por lo que la solución pasa por crearte una fuente cambiando las letras normales por las que quieres

Me refería a eso. A crear (o editar) algún FNT en el que por ejemplo A sea caracter_raro1, B sea caracter_raro2, etc.

Yawin

mmmm, ¿y hay algún programa gratuíto para crear una fuente?

En otro orden de cosas. Ya no necesito ayuda con la librería vlc. Estos son los primeros 57 segundos:
http://pensarescompartir.com/lahsoft/lahsoftcorp/?direc=fenix/&id=demo1.rar
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

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

Drumpi

Quote from: SplinterGU on January 16, 2011, 05:12:12 PM
quien intento hacer un fpg->fnt?

¿Tú quien crees? ;D

Quote from: Kloppix on January 16, 2011, 06:43:29 PM
Quote from: Drumpi on January 16, 2011, 04:25:13 PM
Por lo que la solución pasa por crearte una fuente cambiando las letras normales por las que quieres

Me refería a eso. A crear (o editar) algún FNT en el que por ejemplo A sea caracter_raro1, B sea caracter_raro2, etc.

Lo dicho, con el código de Splinter: le metes un png con los gráficos de las letras (o los caracteres raros) y te devuelve un FNT. Lo que no recuerdo es el hilo ^^U Revisa los de los últimos tres o cuatro días, sobre todo los de Splinter (el que venga con un gráfico con varias letras ese es).
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)

Yawin

Otra pregunta:

Si yo tengo el siguiente codigo, ¿es posible que cada línea se dibuje de un color diferente?
for(i=0;i<640;i+=1)
linea(i,rand(0,480),i,rand(0,480),2);
end


Porque si pongo lo siguiente, me las pinta todas del último color seleccionado:
for(i=0;i<640;i+=1)
drawing_color(rgb(rand(0,255),rand(0,255),rand(0,255)));
linea(i,rand(0,480),i,rand(0,480),2);
end
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

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

FreeYourMind

Yo de las lineas con varios colores ya lo he hecho en Pinball Action Remake, luego te paso la funcion.

Yawin

#11
Muchas gracias. Karma que te va ^__^

edit: Sigo mirando cosas para hacer en la demo. Me he fijado que es muy mítico hacer metaballs. Me he buscado un tutorial; pero, la verdad, no entiendo ni papa. Si alguien me pudiese ayudar a entender el tutorial me sentiría muy alegre y feliz. Creo que si hubiese atendido en el cole mejor lo entendería más fácil xD

Tutorial de las metaballs: http://escena.org/wiki/page/Tutoriales__Programacion__Metaballs/

Ejemplo de lo que son las metaballs: http://www.youtube.com/watch?v=62IPvRK0JI4
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

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

FreeYourMind

Aqui tienes, esta funcion pinta una linea, del color que quieras:



PROCESS draw_lines(xp, yp, xq, yq, colour)
PRIVATE
D = 0;
dx;
dy;
c1;
M;
xinc = 1;
yinc = 1;

BEGIN
x = xp;
y = yp;
dx = xq - xp;
dy = yq - yp;

IF(dx < 0)
    xinc = -1;
dx = -dx;
END

IF(dy < 0)
    yinc = -1;
dy = -dy;
END

IF(dy < dx)
    c1 = 2 * dx;
M = 2 * dy;

    WHILE(x != xq)
       put_pixel(x, y, colour);
       x += xinc;
   D += M;

       IF(D > dx)
      y += yinc;
  D -= c1;
   END
    END

ELSE
   c1 = 2 * dy;
   M = 2 * dx;
 
   WHILE(y != yq)
       put_pixel(x, y, colour);
       y += yinc;
   D += M;

       IF(D > dy)
      x += xinc;
  D -= c1;
   END
   END
END

put_pixel(xq, yq, colour);

END



Para hacer que una linea se mueva o crear varias lineas de colores, sólo hay que jugar con los parametros de entrada, ejemplo:



PRIVATE
CorActual = 0;
CorArcoIris[9] = 31, 255, 447, 703, 991, 1247, 1407, 1663, 1823, 1951;

BEGIN

FOR(x = 0; x < 224; x += 4);

     draw_lines(x, 0, x, 256, CorArcoIris[CorActual]);
     draw_lines(x + 3, 0, x + 3, 256, CorArcoIris[CorActual]);

CorActual++;

IF (CorActual >= 10)
     CorActual = 0;
END

  END

loop frame; end

END

Windgate

Vaya, sí que se ha escrito aquí en poco tiempo xD

Sobre lo de escribir caracteres tipo Matrix, ¿No se podía usar set_glyph ( ) para asignar a cada caracter un PNG o algo así?

Y otra cosa, he leído en Youtube que usas la mod_vlc y nunca he usado esa dll, ¿Es para el vídeo del principio o es para hacer algún tipo de sincronismo entre la emisión de bolas y la música del juego?

Te voy a dar un karma por ser tan freak y programar cosas tan raras xD
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

Yawin

Gracias Free, le voy a meter mano pero ya xD

Windgate: usaba la librería para la música porque la tenía en flv. Y había aprovechado para meterle la cabecera. Pero ahora que tengo la música en ogg, he quiado esa cabecera, y la verdad, ahora pesa 5 megas menos y la sincronía va mejor xD
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

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