A ver quién encuentra el fallo xD

Started by panreyes, November 05, 2008, 02:16:56 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

panreyes

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]

HaCkZJuaNN

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

SplinterGU

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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

TYCO

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?
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

blostec

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

SplinterGU

je, eso es cierto, pero no es un fallo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

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. :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

HaCkZJuaNN

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...

SplinterGU

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...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

blostec

Pixel contesta ya que nos tienes intrigados  ;D

DCelso

Ya lo encontré.
falta un bucle para escapar en el proceso principal :D.
while (!key(_esc))
Frame;
End
let_me_alone();
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

panreyes

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]

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

blostec