Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: OscarBraindeaD on March 08, 2009, 08:20:12 AM

Title: Novato con dudas
Post by: OscarBraindeaD on March 08, 2009, 08:20:12 AM
Hola a todos.

Por fin he decidido ponerme a mirar Bennu en serio (he tardado lo mío) y quiero adaptar algunas cosas que tengo hechas en Fénix y no doy con cómo hacerlo.
Por ejemplo, si hago un programa como éste:

[code language="bennu"]
process proceso()
begin
   graph=write_in_map(0,"kk",4);
   x=100;y=100;
   otro();
   loop
      frame;
   end
end

process otro()
begin
   frame;
end

begin
   proceso();   
   Loop       
      Frame;
   End
end
[/code]

al compilar, me da el siguiente error:
[code language="bennu" options="singleline"]Error in file D:\fenix\bennu\prueba\prueba.prg at line 6: Undefined procedure ("OTRO")[/code]

En ese aspecto...
¿Bennu no es como Fénix?
¿En qué orden hay que declarar los procesos?
Recuerdo que en ANSi C, pasaba algo parecido y se podía poner el prototipo de la función al inicio y desarrollarla luego en cualquier parte del código, ¿es así también en Bennu? ¿cómo escribo el prototipo?

Perdonad si esto ya se ha respondido en otras ocasiones, pero lo he buscado por el foro y no lo he encontrado.

Muchas gracias,
Salud
Title: Re: Novato con dudas
Post by: darío on March 08, 2009, 08:42:27 AM
En bennu las funciones están agrupadas en varios módulos (librerías). Escribe al principio de tu programa:

import "mod_text";

Ya que estás usando la función write_in_map.

Si usases funciones de teclado, por ejemplo "key", tendrías que incluir el módulo correspondiente, que para el caso es "mod_key".

Por el foro hay varios sitios donde se habla de esto y también una lista con los módulos disponibles, por si quieres saber más.

Si te preguntas qué ventajas tiene esto, bueno, entre otras implica que no es necesario distribuir todas las librerías con tu juego, sólo aquellas que estás utilizando.

Al principio puede parecer incómodo pero en realidad todos los módulos tienen nombres autodescriptivos por lo que es fácil acostumbrarse.
Title: Re: Novato con dudas
Post by: OscarBraindeaD on March 08, 2009, 09:02:38 AM
Hola Darío, gracias por la respuesta.
Más o menos conozco la modularización de Bennu y ése, creo, no es el problema...
El problema es que, al compilar, no encuentra el proceso "otro()" al estar declarado debajo del proceso "proceso()"... si los coloco al revés (el proceso "otro()" declarado sobre el proceso "proceso()")  compila perfectamente... pero esto obliga a estructurar el código "físicamente", no sólo "lógicamente"...
Muchas gracias.
Title: Re: Novato con dudas
Post by: OscarBraindeaD on March 08, 2009, 09:35:06 AM
Solucionado.
He bajado la R24 de Bennu y funciona perfectamente sin tocar nada.
Muchas gracias.
Salud
Title: Re: Novato con dudas
Post by: HaCkZJuaNN on March 08, 2009, 10:38:34 AM
El tema es que antes era obligado hacer la declaración de procesos, esto quiere decir que antes de empezar a escrbir código tenías que escrbir los prototipos:

declare process proceso()
private
    //variables privadas
end
local //o public
    //variables PUBLICAS
end
end

declare process otro()
end

Ahora se sigue podiendo hacer y es recomendado, pero no es obligatorio, aunque ayuda muchísimo a mantener el orden y el correcto entendimiento de programas largos.
Title: Re: Novato con dudas
Post by: OscarBraindeaD on March 08, 2009, 12:17:27 PM
Gracias por la explicación, HaCkZJuaNN.
Tienes razón, para proyectos largos es más claro y ayuda a planificar el código, pero para pequeñas pruebas es más cómodo no tener que hacer los prototipos de las funciones.
Muchas gracias.
Salud.
Title: Re: Novato con dudas
Post by: SplinterGU on March 08, 2009, 02:53:14 PM
justo te iba a responder que tenias una version vieja... me alegro que te hayas animado con bennu y que hayas solucionado tu problema... bienvenido...
Title: Re: Novato con dudas
Post by: OscarBraindeaD on March 08, 2009, 08:07:12 PM
Sí, la verdad es que me ha costado pasarme a Bennu... más que nada porque no sabía cómo iba ni cuánto me iba a costar portar lo que tenía hecho en Fénix. Una vez que he bajado la r24 de Bennu, ha compilado todo y funcionado sin problemas. Así que ya me tendréis por aquí trasteando...
Muchas gracias
Salud
Title: Re: Novato con dudas
Post by: SplinterGU on March 08, 2009, 09:43:44 PM
:)
Title: Re: Novato con dudas
Post by: panreyes on March 08, 2009, 10:12:19 PM
Holas Oscar, me alegro de verte por aquí :)
¿Participarás en la crap 4? xD
Title: Re: Novato con dudas
Post by: OscarBraindeaD on March 09, 2009, 06:32:26 PM
Holas PíXeL!
Cuenta con mi juego para la compo... es hasta el 12 de Abril, no?
Que sepas que precisamente tu migración de Fénix a Bennu (y la de algunos otros, como Drumpi que creo también anda por aquí de vez en cuando) han ayudado a que me cambie.
Bueno, voy a ver si preparo un truño-game parala compo... mi mujer igual se anima a hacer otro.
Salud!

Title: Re: Novato con dudas
Post by: Drumpi on March 13, 2009, 12:24:29 PM
Si, por aqui me paso... a veces :D Pero hay más gente que ha migrado desde Fenix, solo que con cambio de seudónimo por el camino.