Nuevo en Bennu...dudas varias

Started by Makinor, January 27, 2008, 03:03:49 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Makinor

En primer lugar gracias Splinter por todo lo que haces por mantener vivo y conmas fuerza este proyecto.

Varias dudas tengo:

Tengo un programa en fenix que al intentar compilar no me encuentra los procesos......en Bennu tengo al inicio del programa que poner prototipos de las funciones? como se hace? ...tengo el programa principal y detras de el los procesos...asi que al compilar me dice que el proceso XXX no lo encuentra o no existe.

Otra duda....se hace engorroso ver todas las dll sueltas...supongo yo que haran falta obligatoriamente las SDL y sus librerias como png etc.....y luego voy incluyendo las especificas de bennu que quiero no?...estas las incluyo en bgd.imp o en un fichero con el nombredejuego.imp¿

Puedo poner todas las librerias en un directorio (Lib por ejemplo) para que no se vea tan engorroso y quede mas limpio el directorio del juego?

Gracias

Drumpi

Pues bienvenido, antes que nada.

No he usado aun mucho bennu, pero si se algunas cosillas, por ejemplo:
El tema de los procesos se ha ido volviendo un poco más restrictivo, pero no te asustes, no es nada que no se haya visto en otros lenguajes. Seguramente bennu te está pidiendo que declares los procesos ANTES de llamarlos, hay dos formas de hacerlo:
1- Usa DECLARE: simplemente, antes del main pones DECLARE nombre_del_proceso (tipos y variables de entrada); Vamos una declaración, esto tabien es necesario para el uso de variables PUBLICAS
2- Escribe el proceso entero antes del que lo usa.

Solo he probado un código (y no lo tengo aquí) pero con incluir las dll que usaba Fenix ya te debería funcionar, si quieres añadir más, poniendo un include con la ruta (absoluta o relativa al exe) donde se encuentra ya estará.
Para ser más precisos ya tendría que responderte Splinter o alguien que ya esté metido con Bennu ^^U
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)

Makinor

HOla...intente hacer
Declare
  proceso();
  proceso2();
  .....
End

y me da error....he tenido que declarar cada proceso con un Declare .. End

Es normal? que hago mal?

Gracias

GINO

Debes ponerlo por separado:

[code language="bennu"]DECLARE PROCESS proceso1()
END

// o si tiene variables privadas o publicas
DECLARE PROCESS proceso2()
    PRIVATE
        INT var1;
        INT var2;
        // ...
    END
    PUBLIC
        INT var3;
        // ...
    END
END[/code]

Cada uno por separado, y luego no pongas en el proceso la seccion private/public.
YUUAAA KAA

SplinterGU

Tambien puedes usar el parametro de compatibilidad... chequeate la documentacion, en la seccion correspondiente del foro...
Por ahora las dlls deben estar en el mismo directorio donde se encuentra el bgdi.exe
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

GINO

Pero, las que importas supongo que podran en cualquier directorio no?
Con hacer include "ruta_al_modulo/mod_key.dll"

¿?¿?
YUUAAA KAA

SplinterGU

#6
No lo se, deberia funcionar como funcionaba Fenix... yo la verdad no me preocupo mucho en la distribucion final de los archivos... el jugador normal no se anda fijando que hay en los directorios, si estan ordenaditos, perfumaditos o con moñito rojo en la cabeza... los unicos enfermos que nos fijamos en esas cosas somos nosotros...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

GINO

Pues precisamente lo de ordenar todo y tal me gusta hacerlo por tenerlo yo todo claro, que sino, en nada que te descuides tienes miles de archivos sueltos por ahi, y de paso le queda al usuario tambien.
YUUAAA KAA

Coptroner

Yo tambien soy un maniatico del orden, tanto que para distribuir los juegos incluiré en la carpeta del mismo solo 2 cosas:
1.-Ejecutable .exe que arranca el juego
2.-Carpeta de recursos del juego donde se encuentra el resto (compilador, modulos, dll, reucrsos del juego, etc...)  ;D

Windgate

Hola, perdonad que escriba en este hilo después de tanto tiempo, pero tengo una duda "varia" sobre Bennu.

El problema es que cuando intento compilar siempre me dice que no encuentra la librería mod_video. Quería saber si se trata de un DLL, dónde conseguirlo y dónde debo copiar el archivo...

Gracias si alguien me contesta!
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

tenes que bajar el paquete de bennu wip15b, el paquete de library-externas-mandatory (o algo asi) y poner todo eso en una carpeta, luego cuando ejecutas tenes que o tener en el path la carpeta de estos archivos o usar el bgdi de esa carpeta...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

l1nk3rn3l

Es que soy nuevo en bennu y desearia saber como declaro el modulo inicializar y descargar de una dll

SplinterGU

perdon, por tu consulta del otro dia no respondida, pero no vi nada mal en tu ejemplo...

para inicializar es, por ejemplo:


void __bgdexport( libmouse, module_initialize )()
{
    gr_new_object( GLOINT32( libmouse, MOUSEZ ), mouse_info, mouse_draw, 0 );
}

/* --------------------------------------------------------------------------- */


para finalizar, lo mismo pero module_finalize

para declarar dependencias de otro modulo, por ejemplo...


char * __bgdexport( libmouse, modules_dependency )[] =
{
    "libsdlhandler",
    "libgrbase",
    "libvideo",
    "libblit",
    NULL
};



Download Lastest BennuGD Release: http://www.bennugd.org/node/2

l1nk3rn3l


Windgate

Muchísimas gracias, creo que ya estoy muy cerca, pero tengo un problemita más.

Al compilar me sale este error:

C:\Bennu\bin\bgdc.import:1: error: Libreary "bgdi.dll" not found (EOF)

Pero el fichero bgdi.dll sí que lo tengo en la ruta C:\Bennu\bin\ junto con todo lo demás que me has dicho.

¿Qué es lo que me dejo? Quiero empezar a programar en Bennu... snif...  :'(


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