PDA

Ver la versión completa : optimizar el codigo



zark
04/05/2005, 17:55
hola,
pngo este post poruqe mi hermano que no tiene ni idea de programacion pero es muy sabio me ha dicho que mi codigo no le gusta que cree que no esta nada optimizado i yo tambien creo lo mismo.
aka pondre un trozo de mi juego i que los expertos digan que creen:


emotic ()

begin

graph=2;
x=160;
y=120;
loop
if (arma==1); //graph arma 1

if (mirar==1);
graph=1;
end

if (mirar==2);
graph=2;
end

if (mirar==3);
graph=3;
end

if (mirar==4);
graph=4;
end
end

if (arma==2); //graph arma 2

if (mirar==1);
graph=5;
end

if (mirar==2);
graph=6;
end

if (mirar==3);
graph=7;
end

if (mirar==4);
graph=8;
end
end

if (arma==3); //graph arma 3

if (mirar==1);
graph=9;
end

if (mirar==2);
graph=10;
end

if (mirar==3);
graph=11;
end

if (mirar==4);
graph=12;
end
end

if (arma==4); //graph arma 4

if (mirar==1);
graph=13;
end

if (mirar==2);
graph=14;
end

if (mirar==3);
graph=15;
end

if (mirar==4);
graph=16;
end
end

if (arma==5); //graph arma 5

if (mirar==1);
graph=17;
end

if (mirar==2);
graph=18;
end

if (mirar==3);
graph=19;
end

if (mirar==4);
graph=20;
end
end


//disparar
if (key(_control or alt));
if (arma==2);
balap ();
end

if (arma==3);
balam ();
end
end

if (key(_control));
if (arma==5);
laser ();
end

if (arma==4);
missil ();
end
end

if (key(_alt));
if (arma==5);
bolla ();
end

if (arma==4);
metralla ();
end

end




end

//fi dispar


frame;
end

creo que es un poko repetitivo no ???

las anotaciones estan en catalan pero es facil
fi dispar= fin disparo....

gracias

Karkayu
04/05/2005, 18:03
Zark dice:


if (mirar==1);
graph=1;
end

if (mirar==2);
graph=2;
end

if (mirar==3);
graph=3;
end


Para tanta sentencia IF repetitiva y sobre el valor de la misma variable usa la sentencia SWITCH-CASE
Mirala en cualquier manual de programacion. La mayoria de los lenguajes la soportan.

La coss quedaria mas o menos asi:

switch (mirar)
case 1: graph=1; end;
case 2: graph=2; end;
...
end //switch

Eso para empezar. :saltando:

Un par de cosas importantes:
-usa los tabuladores para hacer sangrado en el codigo.
(mejora mucho la comprension visual).
-DOCUMENTA a muerte tu programa.
Piensa que a lo mejor algun dia habra gente que vea tu codigo o que tu avandones el proyecto por un tiempo y lo retomes mas adelante.
Si no documentas te va a ser imposible saber lo que hacia cada cosa.

Ya te dare mas consejillos de programador... :musico:
A cuidarse
:brindis:

anibarro
04/05/2005, 20:11
los primeros ifs,los de:


if (arma==1); //graph arma 1

if (mirar==1);
graph=1;
end

if (mirar==2);
graph=2;
end

if (mirar==3);
graph=3;
end

if (mirar==4);
graph=4;
end
end

if (arma==2); //graph arma 2

if (mirar==1);
graph=5;
end

etc...


puedes sustituirlos por:
graph=mirar+(4*(arma-1));

luego en la parte que ejecuta ciertas funciones dependiendo de la tecla q presiones, no hay mucho donde rascar

Karkayu
04/05/2005, 21:35
Anibarro dice:

graph=mirar+(4*(arma-1));

Muy buena esa!!! :musico:

Segata Sanshiro
07/05/2005, 22:58
Sí, sí, pero llegaremos a ver el juego de los emoticonos algún día? xD

zark
09/05/2005, 10:26
jejje no se .. eso creo que sera inpossible... ami me gustaria terminarlo pero seguramente acabara en la basura como casi todo XDDDDDDDDD

pero si lo tiro aun me abra servido para aprendera.
el juegos hace 1 semana que no siguo porque son las fiestas de mi pueblo !!!!!!!!


a cuidarse :brindis:
XD
/////
morus!!!!!!!!!!

Karkayu
10/05/2005, 19:31
Por lo menos pon unas fotos de lo que llevas hecho... :musico:
Mas que nada porque yo ya tengo curiosidad :rolleyes:

A cuidarse
:brindis:

zark
11/05/2005, 14:37
noimporta que suba imagenes... porque ya estan aki.

por aora hay
:ametra:
:canon2:

como es logico las he modificado un poco i he echo un de delante una de detras de la derecha i de la izquierda. a parte de la ametralladora y el bazoka tambien hay una sierra un cañon laser los punyos y una pistola.

:laser:
:motora:
las explosiones aun nose muy bien como se hacen no lo entiendop mucho pero las e cogido de un juego de metall slug i de estos gifs....
salu2