Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: Yawin on June 02, 2015, 04:46:47 PM

Title: Asignar a procesos funciones para invocar
Post by: Yawin on June 02, 2015, 04:46:47 PM
¡Hola a todos! Sé que el título no es muy descriptivo pero es que no se cómo contar lo que quiero hacer. Os cuento:

En Unity hay una función que se llama invoke, y funciona pasándole como parámetros una string con el nombre de la función a la que quieres que llame y un int con los milisegundos de delay con la que quieres que la llame.

Mi pregunta es: ¿sería posible en Bennu guardar en una string el nombre de una función a la que quiera llamar y que luego se llame a esa función?
Title: Re:Asignar a procesos funciones para invocar
Post by: warrior_rockk on June 03, 2015, 10:23:12 AM
Me temo que de momento tendrás que hacerlo a mano. Es decir, crearte tu una función que le pases esa string y el tiempo por parámetro y con un case lances la función correspondiente al string
Title: Re:Asignar a procesos funciones para invocar
Post by: Yawin on June 03, 2015, 12:27:39 PM
Es que el tema es que quiero hacer una librería que te permita hacer botones y que puedas hacer algo así como:


process main()
   private
       gui_button boton=gui_button(x,y,size_x,size_y,etc...);
   end
   begin
       boton.onclick="función";
   end

function función()
    begin
       loquesea;
    end
Title: Re:Asignar a procesos funciones para invocar
Post by: warrior_rockk on June 03, 2015, 01:48:59 PM
En Bennu no es posible eso que quieres hacer.
Title: Re:Asignar a procesos funciones para invocar
Post by: Yawin on June 03, 2015, 02:02:44 PM
Jo, pues estaría guay que se añadiera en una próxima versión.
Title: Re:Asignar a procesos funciones para invocar
Post by: FreeYourMind on June 03, 2015, 02:40:42 PM
y para que ? para engorrar el lenguaje ? eso que pides es cambiar la filosofia o estructura de un lenguaje como lo quieras llamar, es hacer del lenguaje algo parecido a los lenguajes con eventos/objetos, para tener eso que pides tambien tienes que tener creada la funcion que llamas en el texto del nombre, que es lo mismo.

Tener

boton.onclick = "función";

a fines practicos es lo mismo que tener  boton_onclick = función();
Title: Re:Asignar a procesos funciones para invocar
Post by: Yawin on June 03, 2015, 05:29:05 PM
No, no es lo mismo. Porque con boton.onclick="funcion" estás guardando en una variable esa función y cuando el proceso tenga que echar mano de ella la usará.
boton.onclick=funcion(); lo que hace es ejecutar la función y guardar en una variable el resultado que devuelve.
Title: Re:Asignar a procesos funciones para invocar
Post by: FreeYourMind on June 03, 2015, 09:38:46 PM
mas bien estas asignando un evento, tal como en programacion windows forms, en bennu si tienes que echar mano de ella como dices pues la llamas y ya esta ;)
Title: Re:Asignar a procesos funciones para invocar
Post by: Yawin on June 03, 2015, 09:44:15 PM
Pero si quiero hacer una librería que proporcione botones, textboxes y tal, es mucho más cómodo dar esta opción que proporcionar un sistema de flags que diga si se está pulsando, si no, etc...

Pero bueno, como no puede ser tampoco hace falta darle más vueltas.
Title: Re:Asignar a procesos funciones para invocar
Post by: FreeYourMind on June 03, 2015, 10:16:37 PM
pues la hay, esta por el foro, que tiene botones, ventanas, etc, estilo windows forms, no recuerdo es donde y quien la hizo, prg quizas ? habria que ver su src para ver como lo hizo
Title: Re:Asignar a procesos funciones para invocar
Post by: FreeYourMind on June 03, 2015, 10:18:50 PM
et voila!


http://forum.bennugd.org/index.php?topic=1752.msg30641#msg30641
Title: Re:Asignar a procesos funciones para invocar
Post by: Yawin on June 03, 2015, 10:56:10 PM
La quise usar, pero no se adaptaba a lo que necesitaba xD
Imagino que soy un tanto rarete con estas cosas.