Autor Tema: Sugerencia  (Leído 1241 veces)

Yawin

  • Hero Member
  • *****
  • Mensajes: 1088
  • Karma: 44
  • La primera persona que ha "demosceneado" en Bennu.
Sugerencia
« en: Marzo 02, 2011, 09:26:43 am »
Bueno, esta sugerencia parte de mi nueva incursión al C# y esque he empezado a encontrar utilidad a una cosita muy cuca: la sobrecarga.

Tal vez sea completamente imposible, así como descabellada mi propuesta; pero, mi sugerencia es, que las funciones y procesos se puedan sobrecargar. De forma que un proceso sobrecargado, en vez de quedar así:
Código: [Seleccionar]
process espiral(int eq,int yi,int fi2,int incre,int tipo,int modo,int map,int color)
private
float fi,ro;
float py=3.1416;
end
begin
fi=fi2;
if(modo==1)
file=fpgs[0];
graph=1;
end

size=10;
loop
ro=(fi*py)/180000;

x=ro*cos(fi)+eq;
y=ro*sin(fi)+yi;

switch(modo)
case 1:
if(x<-10 || x>650 || y<-1 || y>650)
break;
end
end
case 2:
pixels(x,y,map,color);
if(x<0 || x>640 || y<0 || y>480 || fi==0 || ro>250)
break;
end
end
end

frame(10);

if(tipo==0)
fi+=incre;
else
fi-=incre;
end
end
end

process pixels(x,y,int map,int color)
private
int i;
end
begin

map_put_pixel(0,map,x,y,color);
for(i=0;i<120;i++)
frame;
end
map_put_pixel(0,map,x,y,rgb(0,0,0));

end


Quedase asi:
Código: [Seleccionar]
process espiral(int eq,int yi,int fi2,int incre,int tipo)
private
float fi,ro;
float py=3.1416;
end
begin
fi=fi2;

file=fpgs[0];
graph=1;

size=10;
loop
ro=(fi*py)/180000;

x=ro*cos(fi)+eq;
y=ro*sin(fi)+yi;

if(x<-10 || x>650 || y<-1 || y>650)
break;
end

frame(10);

if(tipo==0)
fi+=incre;
else
fi-=incre;
end
end
end

process espiral(int eq,int yi,int fi2,int incre,int tipo,int map,int color)
private
float fi,ro;
float py=3.1416;
end
begin
fi=fi2;

loop
ro=(fi*py)/180000;

x=ro*cos(fi)+eq;
y=ro*sin(fi)+yi;

pixels(x,y,map,color);
if(x<0 || x>640 || y<0 || y>480 || fi==0 || ro>250)
break;
end

frame(10);

if(tipo==0)
fi+=incre;
else
fi-=incre;
end
end
end


process pixels(x,y,int map,int color)
private
int i;
end
begin
map_put_pixel(0,map,x,y,color);
for(i=0;i<120;i++)
frame;
end
map_put_pixel(0,map,x,y,rgb(0,0,0));
end

Yo creo que realmente sería algo útil que, además, nos evitaría tener que añadir parámetros a las llamadas que especifiquen que "modo" queremos emplear.
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: Sugerencia
« Respuesta #1 en: Marzo 03, 2011, 11:38:11 pm »
Se propuso hace tiempo para la 2.0, quizás incluso lo propuse yo y todo xD

Apoyo la MOSIÓN!

Pero creo recordar que implicaba un cambio brutal en el motor, no se podría hacer sin reescribirlo casi todo.
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

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12819
  • Karma: 376
Re: Sugerencia
« Respuesta #2 en: Marzo 03, 2011, 11:42:00 pm »
es imposible hacer esto sin romper compatibilidad... si hubiesen tomado con alegria el cambio de no permitir autodeclaracion de funciones, esto seria otra cosa.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

  • Hero Member
  • *****
  • Mensajes: 5662
  • Karma: 127
    • GECA soft
Re: Sugerencia
« Respuesta #3 en: Marzo 04, 2011, 08:17:45 am »
Hombre, cuesta mucho poner un 1 o 2 despues del nombre de la función hermana ?  ;D

Yawin

  • Hero Member
  • *****
  • Mensajes: 1088
  • Karma: 44
  • La primera persona que ha "demosceneado" en Bennu.
Re: Sugerencia
« Respuesta #4 en: Marzo 04, 2011, 08:58:55 am »
Hombre, no es que cueste, pero es más... no se como decirlo, más sucio jajajajaja

Imaginaba que no se podía, pero como un día de estos se pueda, será la caña xD
Sigue el desarrollo de mi motor RPG: https://www.youtube.com/watch?v=TbsDq3RHU7g

process main()
       begin
           loop
               pedo();
               frame;
            end
       end