Novato con dudas

Started by OscarBraindeaD, March 08, 2009, 08:20:12 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

OscarBraindeaD

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

darío

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.
My sites:
Smart Fpg Editor - Painless FPG Edition for Bennu and PixTudio
fenixlib - .NET support for manipulating PixTudio, Bennu and Div graphic formats

OscarBraindeaD

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.

OscarBraindeaD

Solucionado.
He bajado la R24 de Bennu y funciona perfectamente sin tocar nada.
Muchas gracias.
Salud

HaCkZJuaNN

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.

OscarBraindeaD

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.

SplinterGU

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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

OscarBraindeaD

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

SplinterGU

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

panreyes

Holas Oscar, me alegro de verte por aquí :)
¿Participarás en la crap 4? xD

OscarBraindeaD

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!


Drumpi

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.
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)