Bennu Game Development

Foros en Español => Offtopic => Topic started by: panreyes on November 05, 2008, 02:16:56 PM

Title: A ver quién encuentra el fallo xD
Post by: panreyes on November 05, 2008, 02:16:56 PM
Tonteridas raras:

[code language="bennu"]Global
   teladearaña;
Begin
   teladearaña=tela_de_araña();
   elefante();
End

Process elefante();
Private
   grav;
Begin
   x=300;
   y=200;
   grav=-20;
   graph=load_png("elefante.png");
   loop
      if(collision(teladearaña))
         if(exists(teladearaña))
            grav=-20;
            elefante();
         else
            //OMFGLOL
         end
      end
      y+=grav;
      grav++;
      frame;
   end
End

Process tela_de_araña();
Begin
   graph=load_png("tela_de_araña.png");
   x=300;
   y=400;
   Loop
      Frame;   
   End
End[/code]
Title: Re: A ver quién encuentra el fallo xD
Post by: HaCkZJuaNN on November 05, 2008, 02:43:33 PM
En principio creo que el fallo es que la ñ no se puede utilizar en programación, o si se puede?? Juraría que no.

El programa es por la canción no? :D
Title: Re: A ver quién encuentra el fallo xD
Post by: SplinterGU on November 05, 2008, 02:59:48 PM
No, no es eso...

Primero seria importante definir que llamas por fallo, porque a mi entender, el programa se comporta como lo programaste, asi que no hay fallos...

Pero bueno, dando por supuesto que querias hacer lo que pienso, los fallos son:

1) No incluiste ningun import.
2) No incluiste graficos.
3) Falta set_mode con tamaño mayor a 320x200 que es el default (ya la teladearaña se situa en la posicion 400 y no se ve en pantalla) y profundidad de color adecuado si usas graficos de mayor profundidad que 8.
4) ñ no es posible usarla en los archivos, no los carga.
5) deberias hacer que cuando colisione y cambia la gravedad tambien cambie la "y" para que no siga colisionando en ese frame, y por consiguiente creando nuevos elefantes
6) No se si tu intencion es que cada elefante al colisionar cree otro nuevo elefante o solo queres que se cree 1 por frame... no se, pero bueno, si es asi ese seria otro fallo...
Title: Re: A ver quién encuentra el fallo xD
Post by: TYCO on November 05, 2008, 03:19:15 PM
Yo veo que cada vez que toca la tela de araña crea otro elefante como mínimo.

¿Qué es lo que quieres conseguir? y ¿Qué es lo que según tú hace mal?
Title: Re: A ver quién encuentra el fallo xD
Post by: blostec on November 05, 2008, 09:17:19 PM
Quote from: PiXeL on November 05, 2008, 02:16:56 PM

      if(collision(teladearaña))
         if(exists(teladearaña))
            grav=-20;
            elefante();
         else
            //OMFGLOL
         end


Ese exists no sirve para nada, si colisiona esta claro que existe.  :P
Title: Re: A ver quién encuentra el fallo xD
Post by: SplinterGU on November 05, 2008, 09:27:20 PM
je, eso es cierto, pero no es un fallo...
Title: Re: A ver quién encuentra el fallo xD
Post by: Prg on November 05, 2008, 09:38:56 PM
graph=load_png("elefante.png");  Estas cargando gráficos, y nunca los descargas, cuando termines de crear un montón de elefantitos tendrás un montón de gráficos en memoria. y todo lo demás que observo ya te lo han dicho. Oye, es buena idea, en lugar de poner imágenes que digan ¿Cuál es el problema?, mejor un poco de código y a volar la imaginación. :)
Title: Re: A ver quién encuentra el fallo xD
Post by: HaCkZJuaNN on November 05, 2008, 11:13:59 PM
Está clara la intención del programa:

"Un elefante se balanceaba sobre la tela de una araaaaaaaaaaaaña, como veían que no se caía, fueron a llamar a otro elefaaaaaaaaaaante.
Dos elefantes se balanceaban sobre la tela de una araaaaaaaaaaaaaña, como veían que no se caían, fueron a llamar a a otro elefaaaaaaaaaaaante.
Tres elefantes..."

No entiendo lo que dice splintergu de que no incluyó gráficos. No está haciendo load_png??? Lo que has puesto es solo el código, se supone que eso va con unos gráficos.

Y lo que dices de que al chocar con la tela de araña debería cambiar la y además de la gravedad, en realidad no hace falta, pues lo único que hace es ajustar la gravedad a -20 todos los frames hasta que deja de tocar, pero no hace que el elefente se "atasque". Aunque también es verdad que eso hace que salgan tropecientos elefantes de golpe...
Title: Re: A ver quién encuentra el fallo xD
Post by: SplinterGU on November 06, 2008, 02:13:07 AM
Donde estan los graficos??? yo solo encontre en este post el codigo... los graficos no los subio a ningun lado...

No, no lo hace hasta que deje de tocar, es mas, en mis pruebas, colisiona mas de 1 vez en ese momento y despues de actualizar la "grav"... al momento de colisionar la primera vez, la "y" vale 266 y "grav" vale 24... y el ejemplo setea "grav" a -20 y luego usa ese valor para sumarlo a "y", con lo que quedan 4 pixels de diferencia los cuales pueden hacer que colisione nuevamente el grafico, y de hecho en algunos casos lo hace... pero todo esto depende del tamaño de los graficos utilizados, por eso digo, que la primer falla es no incluir los graficos, porque de ellos dependen los resultados...
Y dando mas datos, el ejemplo, asi como esta, si lo ejecutamos 300 frames da 106 elefantes... ahora si al momento de colisionar, hacemos esto:

...
if(exists(teladearaña))
   y -= grav;
   grav=-20;
   elefante();
   frame;
   continue;
else
...


entonces en los mismos 300 frames obtenemos solo 64 elefantes... o sea, crea realmente 1 solo elefante por momento de colision... y no varias veces hasta salir de la zona de colision... y con el "y -= grav;" lo que haces es descontar de "y" el "grav" que hizo que colisione con la telaaraña... y de paso calcular una nueva gravedad.

pero posiblemente este no sea el error que queria resaltar pixel y solo queria señalar el fallo de la "ñ" como caracter invalido para nombres de archivos... los demas son mas que nada a modo chiste, pero no dejan de ser fallos...
Title: Re: A ver quién encuentra el fallo xD
Post by: blostec on November 06, 2008, 09:03:10 AM
Pixel contesta ya que nos tienes intrigados  ;D
Title: Re: A ver quién encuentra el fallo xD
Post by: DCelso on November 07, 2008, 12:30:04 PM
Ya lo encontré.
falta un bucle para escapar en el proceso principal :D.
while (!key(_esc))
Frame;
End
let_me_alone();
Title: Re: A ver quién encuentra el fallo xD
Post by: panreyes on November 14, 2008, 05:43:52 PM
Hosti, perdón xD
Se me OLVIDÓ totalmente :!

Era una curiosidad, simplemente la canción del elefante y la telaraña pero programada xD
[code language="bennu"]
Global
teladearaña;
Begin
teladearaña=tela_de_araña();
elefante(); //UN ELEFANTE
End

Process elefante();
Private
grav;
Begin
x=300;
y=200;
grav=-20;
graph=load_png("elefante.png");
loop
if(collision(teladearaña)) //SE BALANCEABA SOBRE LA TELA DE UNA ARAÑA
if(exists(teladearaña)) //Y COMO VEÍA QUE NO SE ROMPÍA
grav=-20;
elefante(); //FUERON A LLAMAR A OTRO ELEFANTE
else
//OMFGLOL
end
end
y+=grav;
grav++;
frame;
end
End

Process tela_de_araña();
Begin
graph=load_png("tela_de_araña.png");
x=300;
y=400;
Loop
Frame;
End
End
[/code]
Title: Re: A ver quién encuentra el fallo xD
Post by: SplinterGU on November 14, 2008, 05:49:11 PM
puf! :P
Title: Re: A ver quién encuentra el fallo xD
Post by: blostec on November 15, 2008, 07:03:17 PM
Pixel necesitas vacaciones  :D