TODO

Started by SplinterGU, November 28, 2008, 06:08:30 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

l1nk3rn3l

como hago para declarar un tipo de una estructura algo asi como

type entidad3d
   x,y,z;
end;

type entidad3d pointer   PE3D;

actualmente estoy usando define:

#define PE3D  entidad3d pointer

pero lo malo es cuando se declaran varias variables ej;:

PE3D i,j,x;

SplinterGU

Pregunto, no se leen mis mensajes?

Quote from: SplinterGU on May 04, 2009, 11:15:45 AM
Quote from: TYCO on May 04, 2009, 06:56:31 AM
save_png... con graph "-1"??? -1 es la pantalla? falta ayuda completa XD está bien el moddesc.exe pero está claro que no es suficiente.

Así que con -1 graba los fade? y esas cosas? a ver si puedo probarlo en un rato.

Yo si noté hace tiempo (y lo Posteé en el Foro) que el save_png guardaba el negro Puro como transparente. Lo que hice fue ponerle un graph como fondo con un negro rgb(5,5,5).

Me extraña araña!

Eso del mapa 0,-1 deberias saberlo desde hace tiempo... 0,-1 desde los remotos tiempos de fenix fue la pantalla... no tiene nada que ver con la save_png.

No tiene que estar esto en el help del save_png... ni de ningun save... -1 es el mapa de la pantalla, sabiendo esto, las posiblidades y lo que podes hacer dependen de tu capacidad de imaginacion... es imposible que un help pueda documentar todas la posibles combinaciones de sus componentes... es lo mismo que pretenda que el man del C del printf me diga que puedo imprimir un atol de una string... eso es ridiculo, el uso depende de mi imaginacion...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

Lo de las transparencias es exacto, si queres que no las guarde tenes que ponerle el flag no_colorkey al mapa en cuestion... por ende clonar el mapa de pantalla, y en fin...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

Quote from: l1nk3rn3l on May 04, 2009, 05:30:01 PM
como hago para declarar un tipo de una estructura algo asi como

type entidad3d
   x,y,z;
end;

type entidad3d pointer   PE3D;

actualmente estoy usando define:

#define PE3D  entidad3d pointer

pero lo malo es cuando se declaran varias variables ej;:

PE3D i,j,x;

A menos que exista una forma desconocida por mi, no es posible.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Hombre, yo sabía lo de file=0 graph=0 es el "fondo" de la ventana, y todo lo que se dibuje ahi es lo que se guarda, pero con graph=-1 nunca vi nada ¿cual es la diferencia? es decir, creo haber entendido que el graph=0 es el fondo, lo que se "put" en él, y que graph=-1 es todo lo que hay en la pantalla (se haya "put" o no, procesos incluidos, vamos, lo que hay en el buffer antes del volcado a pantalla).
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)

splinter_work

Quote from: Drumpi on May 05, 2009, 11:31:54 AM
Hombre, yo sabía lo de file=0 graph=0 es el "fondo" de la ventana, y todo lo que se dibuje ahi es lo que se guarda, pero con graph=-1 nunca vi nada ¿cual es la diferencia? es decir, creo haber entendido que el graph=0 es el fondo, lo que se "put" en él, y que graph=-1 es todo lo que hay en la pantalla (se haya "put" o no, procesos incluidos, vamos, lo que hay en el buffer antes del volcado a pantalla).

-1 es lo que hay antes (y tambien es correcto decir "lo que hay despues", segun el punto de vista y en relacion a que) de lo dibujado en pantalla... es el ultimo frame dibujado, aunque si bien podes dibujar en este, este sera pisado en el proximo frame.

El 0 (fondo) es la imagen de fondo, o sea, lo que se dibuja (parcial o total) primero cuando se dibuja un frame.

Windgate

Quotecomo hago para declarar un tipo de una estructura algo asi como

type entidad3d
   x,y,z;
end;

type entidad3d pointer   PE3D;

actualmente estoy usando define:

#define PE3D  entidad3d pointer

pero lo malo es cuando se declaran varias variables ej;:

PE3D i,j,x;

L1nk, es sencillo, he abusado y abuso bastante del uso de tipos definidos (structs) en Bennu. Supongo que te refieres a esto:

Una vez declaras una nueva estructura:

TYPE tp_persona
   string nombre;
   int edad;
END

Para crear una variable de este tipo tendras que declarar:

PRIVATE
   tp_persona windgate;

Es decir, prefijando la variable con el nombre del tipo que quieres que tenga, al igual que prefijas con los tipos primitivos como int o string.

Y si quieres tener una variable que sea un puntero puedes declarar:

PRIVATE
   tp_persona POINTER windgate;

Añadiendo [10] al nombre de la variable puedes tener arrays del tipo definido, por supuesto.

Y añado que en el caso de los POINTER no es necesario poner el tp_persona, ya que con un pointer puedes apuntar a donde quieras, ¿Me equivoco en esto ultimo?

Si era eso a lo que te referias espero haberte ayudado, puedo pasarte ejemplos de programitas Bennu breves con hartos TYPE declarados y variables asociadas a ellos si quieres, pide por esa boquita.
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

SplinterGU

No amigo, lo que el quiere es hacer un tipo de dato que sea puntero.
Eso que dices es parecido a lo que el hace con el define.
Pero el pregunta si se puede hacer un tipo de dato que a la vez sea un puntero.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

Por otro lado, creo que ya es hora de largar la version actual como release.
Hay cosas que sabemos hay que mejorar y completar, pero me parece que esta ya podria ser la 0.93 oficial o 0.94... no se que opinan Uds.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

#99
Hombre, yo creo que habría que romper la nomenclatura de fenix.
Debería ser algo como la 0.1 (esto da poca seguridad de uso) o la 1.0, no comprendo porqué no empezar en la versión 1.0, nunca vi que un programa no empezase en la versión 1.0.
Un poco ilógico, si ya se usa y está al alcance de cualquier persona es la primera versión útil, por tanto es la primera y la primera implica 1.
Alguien conoció msdos 0.X o windows 0.X o div 0.X o cuaquier otro programa de índole reconocida, no se nunca los ví, y los pocos que he visto con esas nomenclaturas de cero coma lo que sea han sido versiones internas de testeo de programadores implicados en el desarrollo o personas allegadas. Bueno o proyectos abiertos en los que a priori se sabe que es imposible llegar a una versión final, ejemplo MAME: es imposible terminar el proyecto, debido a que son innumerables máquinas recreativas las que existen y siempre van saliendo nuevas con nuevos sistemas o rescatando antiguas con sistemas antiguos.

Una buena nomenclatura sería con tres cifras, la primera para cambios drásticos en apariencia y funcionalidad, la segunda para cambios masivos de mejoras y correcciones y la tercera para correcciones pequeñas o mínimas pero importantes

Bueno todo este rollo es para defender la entrada de, por lo menos, la versión 1.1.5, o así
el primer 1 por ser el primer bennuGD, el segundo 1 por las mejoras añadidas y cambios añadidos desde la versión inicial de bennu y la 5 porque llevas 5 binarios distintos soltados por ahora.

http://es.wikipedia.org/wiki/Versi%C3%B3n

http://es.wikipedia.org/wiki/Fases_del_desarrollo_de_software

http://www.tldp.org/HOWTO/Software-Proj-Mgmt-HOWTO/users.html#ALPHABETA

SplinterGU, no con esto quiero romperte los esquemas, solo es una opinión desde el punto de vista de un usuario nuevo. Puedes seguir con la nomenclatura fenix si lo que quieres es dejar rastro para que los antiguos usuarios de fenix migren a bennu.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

josebita

Desde luego, yo no lo llamaría 0.1 :)
Pero sí que creo que va siendo hora de hacer una release, aunque antes de hacerlo haría algo como la "semana de la documentación" donde pusiéramos un poquito de énfasis todos y mejoráramos un par de artículos cada uno del wiki para ir mejorando la documentación.

DCelso

Quote from: josebita on May 06, 2009, 09:42:16 AM
Desde luego, yo no lo llamaría 0.1 :)
Sí, no se ve muy pa allá pero es la cruda realidad, todo tiene un comienzo. :D
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

#102
Si tenemos un "antes", eso se dilata eternamente... tenemos que tomar alguna medida drastica...

me parece razonable que sea la version 1.X

yo pensaba en <version>.<release>.<builddate>, con esto seria muy facil identificar/relacionar los binarios...

en este caso, la siguiente seria: 1.49.20080506
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

blostec

Yo creo que sería bueno usar la nomenclatura 1.x. Una duda, la release traerá documentación como la que tenía Fenix con su .pdf? Sería bueno que el usuario disponga de documentación para empezar a trabajar sin necesidad de estar conectado a la wiki.

DCelso

Un poco largo diría yo, pero que mas da :D.
De todas formas le veo un problemilla, que quizás no sea tan problemilla pero la dependencia al número de revisión de subversion daría lugar a binarios alejados en números por ejemplo si haces 8 subidas separadas sin crear binarios y luego mas adelance creas uno saltarías así como de la versión 1.49.20080506  a la versión 1.57.20080608 (fecha inventada) y los usuarios no puestos en el tema preguntarían por las versiones intermedias.
También pasarían cosas como estas, en la versión 2 lo que sea, el segundo número seguiría incrementándose por donde quedó
versión 1.59 - vesión 2.60. Y como resultado pasaría que el usuario nuevo vería la falta de versiones intermedias.

Como conclusión, normalmente se separan las nomenclaturas de control de versiones a las nomenclaturas de entrega final de binarios o bién se usa el mismo número para ambas, no se entremezclan nomenclaturas porque da margen a error.
Por ejemplo binarios de la release 48 de svn, o binarios de la versión 1.1.5, pero nunca binarios de la versión 1.1.48 porque puede pasar que cambiese a 1.2.50 en vez de pasar a la 1.2.0.
Lo normal es resetear números inferiores al cambiar a versión superior, podeis ver ejemplos en la mayoría de programas conocidos. Si por ejemplo ejecutais el comando ver en windowx xp vereis algo como 5.1.2600, el último número es el "build" si haceis lo mismo en un xp con service pack ese último número cambia, ya que es el mismo programa pero con mejoras no significativas. en cambio si lo haces a windows vista verás que empieza de nuevo 6.0.1000, no sigue por la dosmilypico.

El número final "build" normalmente es incrementado automáticamente por los programas de compilación de alto nivel tipo borland c++builder, delphi, visual c++. Y se incrementa por cada vez que tocas el botón "build and compile".
Lo que quiere decir,que representa el número de veces que ha sido ejecutado dentro del entorno de programación para pruebas de resultados del programador.

Pero vamos, eso es lo que tengo yo entendido, no tiene porqué cumplirse siempre porque hay muchas formas distintas de llevar el versionado y no está muy estandarizado, cada uno suele seguir su propio criterio o adoptar el que les imponen las reglas de programación.

Con ésto solo intento explicar los problemas que le veo a tu propuesta Splinter.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/