Bennu Game Development

Foros en Español => Sugerencias => Topic started by: Prg on November 02, 2010, 02:51:55 AM

Title: polimorfismo en variables públicas
Post by: Prg on November 02, 2010, 02:51:55 AM
Hola, recientemente estaba trabajando con varias funciones que tiene variable públicas y me doy cuenta que lo conveniente que sería poder hacer algo como esto:

declare interfaz enemigo();
private
estado,valentía, energía, fuerza, resistencia;
end
end

process araña(...) implements enemigo;
begin
...
end

process gusano(...) implements enemigo;
begin
...
end

process cienpies(...) implements enemigo;
begin
...
end

...
otros 10 enemigos que implementan la interfaz enemigo
...

...
procesos que no requieren tener ninguna de las variables públicas de los enemigos que nos hacen pensar en no usar locales
...

process protagonista(...);
private
enemigo enem;
begin
loop
    if (enemigo=collision(type araña))
       ener-=enemigo.fuerza;
    end

   if (enemigo=collision(type gusano))
       ener-=enemigo.fuerza;
   end

  if (enemigo=collision(type cienpies))
       ener-=enemigo.fuerza;
   end
...
frame;
end
end


esta es una sugerencia a largo plazo.
lo que hago actualmente es una variable de cada tipo de dato, hay otra forma?


por otro lado, hay alguna forma de declarar los parámetros de alguna función como públicos?, sería bueno poderlo hacer.

gracias y saludos

pd: espero no haber sugerido una barbaridad XD
Title: Re: polimorfismo en variables públicas
Post by: Windgate on November 02, 2010, 06:25:59 AM
Tu idea de herencia es muy buena, ahora mismo puedes usar INCLUDE de los fragmentos de código a heredar, el funcionamiento final sería muy similar, pero pierdes la posibilidad de tener una única variable de tipo enemigo para todos ellos :(

Sobre los parámetros PUBLIC no se puede, pero puedes usar una variable intermedia como parámetro y luego asignar.
Title: Re: polimorfismo en variables públicas
Post by: SplinterGU on November 02, 2010, 06:54:55 AM
no esta mal la idea, pero hay algunos problemas:

1) las variables privadas no se pueden acceder desde otro proceso
2) eso deberia ser una declaracion, o sea, que esas serian las unicas variables (solo en el caso de las publicas) que tiene el proceso que use esa interfaz, se complicaria un poco el tema de variables.

entiendo la necesidad y me gusta, pero se necesita pensar bastante en como implementarlo sin que no de problemas o la otra es reescribir todo el core del compilador y del interprete, cosas que me parece un poco loco.

pero bueno, anotado y tendre en mete alguna manera de heredad cosas.

Title: Re: polimorfismo en variables públicas
Post by: Prg on November 02, 2010, 03:28:47 PM
Quotepero bueno, anotado y tendre en mete alguna manera de heredad cosas.
excelente, gracias :)

Quote
1) las variables privadas no se pueden acceder desde otro proceso

se me pasó, ahí son públicas

[code language="bennu"]
declare interfaz enemigo();
private
public int estado;
public int valentía;
public int energía;
public int fuerza;
public int resistencia;
end
end[/code]

gracias, y saludos