Programación orientada a objetos en bennu o devolución de identificadores?

Started by Fede, March 26, 2010, 06:49:06 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Fede

Bueno, pues se me ha ocurrido hacer algo parecido a una pequeña librería de ventanas, por lo menos para mostrar mensajitos y alguna cosilla más; a raiz de que DCelso me comentara la implementación de una barra lateral.

Mi duda viene cuando pienso que lo suyo sería programación para objetos, pero no sé si se puede directamente con bennu; o devolver una estructura como identificador que contenga todos los datos del objeto para después poder, por ejemplo, borrarlo.

He observado que bennu da identificadores para casi cualquier cosa, y por eso pregunto si esa es lo que normalmente se hace.

Otra cosa que no se tampoco si se puede, porque no la he encontrado, es si existe algún tipo de variable que mantenga su valor incluso saliendo de la función y que sea privada.

Si mi memoria no me falla, en otros lenguajes era algo así como 'static var' paro aquí no me lo reconoce.

Saludos y perdonad si mis preguntas son muy básicas.
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

DCelso

A ver, aqui en bennu lo más sencillo sería hacer un proceso por cada componente y un proceso principal para gestionarlos todos.
Es decir, un proceso llamado combobox otro llamado checbox, otro llamado button, etc, ya que un proceso es "equivalente" a un hilo en c y puede autogestionarse desde él mismo lo que serían sus eventos, onclick, onmouseover, onkeypress,etc.
También desde el proceso principal podrías acceder a las variables public  de cada proceso (simulando asi a una clase) a través de su identificador de proceso, por lo que un proceso en bennu podríamos también equipararlo a una clase thread o runable de JAVA que son autoindemendientes del hilo principal de ejecución.
Asi pues quizás con esta información puedas replantearte la implementación de tu GUI,
Por otro lado, te puedes mirar cómo implementó splinterGU la suya, debido a una pérdida de datos que tuvo en su equipo no disponemos de la última versión ya que la perdió, pero al menos tenemos una  para usar hasta que se replantee reimplementar lo que hizo (si es que se acuerda y tiene ganas :D)

EDIT: te adjunto un enlace a la GUI de splinterGU
http://forum.bennugd.org/index.php?topic=280.0
Monstruos Diabólicos

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

Windgate

No hay STATIC y en algún caso puntual también lo he echado en falta, lo más parecido que puedes encontrar a eso es usar una GLOBAL...
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

Fede

Gracias compañeros.

Aunque ya me estrañaba a mí que no se hubiera pensado algo parecido.

El enlace que me has facilitado, DCelso, es más o menos lo que tenía en mente.

En su día cree una para clipper con objetos (en modo texto) y me rondaba meterme en algo por el estilo.

... Veo que ahora me toca estudiar, así que empezaré mirando lo que ha hecho splinterGU.

Saludos.
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

Prg

hay otra gui, no la he usado, solo la he visto algunas veces.
se implementa así:

[code language="bennu"]fuit_init("src/default.fpg", "src/cursors.fpg");

  ventana = window (120,200,"Testeando FUIT",BDR_NORMAL);
  info = label(ventana,10,30,"Titulo:");
  texto = input_box(ventana,50,25,"");
  option1 = option_button(ventana,50,50,"sin titulo");
  option2 = option_button(ventana,50,65,"con titulo");
  btnCambiar = button(ventana,20,150,"Cambiar");
  btnCambiar.tooltip_text = "Cambia la propiedad de la ventana";
  btnSalir = button(ventana,100,150,"Salir");
  btnSalir.tooltip_text = "Sale del programa";[/code]

si te interesa aquí hay un link de descarga.
abajo.
se encuentra en el bennupack
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Fede

Gracias también compañero. Sigo en fase de estudio.

Me estoy dando cuenta que estoy bastante pegado en bennu, y que cuanto más me releo el manual de Oscar más me doy cuenta de lo que antes no me había dado (valga la rebuznancia), y que bennu cada vez me asombra más.

A mi entender bennu hace que programes en objetos sin decírtelo.

He cambiado totalmente el enfoque de lo que quiero hacer gracias a vuestros comentarios.

A ver si esta Semana Santa me dejan meterle un poquito de caña...

Saludos.
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

Windgate

You're an amateur developer until you realize that everything you write sucks

Por cierto, he estado leyendo hoy y veo que en el Bennupack hay muchas más librerías de las que esperaba...
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

Fede

¿Mandeee?

No me entero de la parte en ingles.  ;D Y como este hilo lo abrí yo, no se si es una inderecta.  ;D

¿Me estas diciendo que ya pasó la semana santa y que donde está lo prometido?  ;D Porque voy por el boton-barra-caja de texto.  ;D
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

Windgate

No te estoy vacilando tranki, me refería a lo que dijiste de Bennu, que te asombra, a mí también me pasó lo mismo y con el tiempo conseguí hacer código que es pura poesía, algo que en otros lenguajes no he llegado a hacer, sencillamente porque no me han gustado tanto como Bennu...

Quería decir algo así como:

"Eres un programador aficionado hasta que te das cuenta de que todo lo que escribes apesta".
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

Fede

Lo siento, quillo, demasiado prufundo para mí. No lo pillo ni en español.

Me parece que vas con buena intención, pero na, que no lo trinco.
Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

Windgate

Nada, eso quiere decir que estás empezando con Bennu, yo que llevo casi 3 años programando miro mi código de los primeros años que a mí me parecía la bomba y ahora mismo me da lástima xD

Llegará un momento en el que te darás cuenta de que todo lo que has escrito con Bennu hasta ahora es basura, y empezarás a escribir poesía.

No sé si me explico así...
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

Fede

Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

JaViS

Wow, que loco ver que han continuado FUIT un tiempo mas, despues de todo :O

yo ya estaba pensando en que la iba a necesitar y que iba a gastar un monton de tiempo para portarla a Bennu, espero que la version actual funcione.

Si no, la voy a agarrar como punto de partida para el port a Bennu, aunque creo que va a haber que cambiarle el nombre. porque FUIT es un acronimo de Fenix User Interface Toolkit.

:P
Working on Anarkade. A couch multiplayer 2D shooter.

Fede

No se como andará la FUIT esa. Pero el desarrollo de la mía va más lento que un desfile de caracoles.

La voy haciéndo conforme me va haciendo falta y no sé si ni siquiera llamarla GUI.

La puedes ver en plena acción en el Bennu File Manager, que no se si conoces.

http://forum.bennugd.org/index.php?topic=2026.0

Te advierto que ni está documentada ni ná de ná.

Si quieres ser sabio, aprende a interrogar razonablemente, a escuchar con atención, a responder serenamente y a callar cuando no tengas nada que decir.

JaViS

pues, FUIT la hice yo alla por el 2002. Andaba en su momento, no se ahora :P en todo caso, la voy a tratar de portar.


a proposito, la tuya tb esta hecha 100% en bennu? o es una libreria aparte?
Working on Anarkade. A couch multiplayer 2D shooter.