Bugs (antes 'Fades')

Started by Packo_z007, September 21, 2008, 01:07:47 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

SplinterGU

#45
Quote from: Packo_z007 on September 25, 2008, 08:59:38 PM
Hola. Mira este ejemplo.


Program Ejemplo
private
    word pointer puntero;
    word array[] = 1,2,3,4,5,6,7,8,9,10,11,500,2000,7000,8000,35000,60000;
    I;
end
begin
    puntero = &array;
    for(i = 0;i < sizeof(Array) / sizeof(array[0]);i++)
        say(puntero[i]);
    end
    repeat
        frame;
    until(key(_esc))
    let_me_alone();
end


Salida:
1
2
3
4
5
6
7
8
9
10
11
500
2000
7000
8000
4294936760
4294961760

ya esta solucionado el problema, habia una serie de cosas...

1) era el usar un direccionamiento con una variable ("i" en este caso) en arrays de tipo diferente al int..

2) no era el mismo problema pero me lo tope al probar esto, es que habia una serie de fallas en algunos operadores con diferentes tipos de datos que no sean int...

ya corregi todo esto, espero no haber arruinado otra cosa, hasta donde probe todo en orden...

Luego subo un fix... ahora me voy a dormir un ratito que en 3 horas tengo que trabajar...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Packo_z007

Gracias. Por lo visto no dormis nunca.. Ya bajo el fix.Lo probare mañana. Un saludo
[STRING] *PANIC Too many strings, allocating more space

SplinterGU

ahora si lo subi... y cambie el nombre a los paquetes porque no entraban en el list del directorio...

si, tengo un problema con el dormir... ultimamente no nos llevamos muy bien...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Danielo515

Quote from: SplinterGU on September 26, 2008, 01:05:09 AM
que queres decir con que se dibuja a cuadraditos? y pueden ir retrasados unos con respecto a otros si no tienen prioridad asignada... imagino que estaras usando la wip9, no?
No, no, retrasados irian siempre si no tuvieran prioridad asignada, digo yo... es algo que pasa unas veces sí y otras no, además ya he comentado que pasa también con procesos que ocupan toda la pantalla con un mismo gráfico, se dibuja a cuadraditos. Lo único es que tiene size 400. Los otros son 6 cuadrados, gordos, y se dibujan a cuadraditos que son aproximadamente una cuarta de lo que es cada cuadrado, por lo que no es que unos procesos aparezcan antes que otros, de hecho suelen aparecer todos a la vez pero a todos les falta algún cacho, que no tarda en dibujarse. Es algo de un segundo o así.

SplinterGU

anoche detecte un error en los graficos al hacer size mayor a 100, donde los graficos tienen a tener una forma cuadrada, recortando parte del grafico... imagino que te referis a eso... ya lo corregi, como tambien corrigi otros errores referentes a la paleta en 8 bits, el usar fade_off y fade_on sin un frame intermedio, y otros mas, con trasparencias, blendop en 8 bits y esas cosas...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Danielo515

Quote from: SplinterGU on September 27, 2008, 02:09:14 PM
anoche detecte un error en los graficos al hacer size mayor a 100, donde los graficos tienen a tener una forma cuadrada, recortando parte del grafico... imagino que te referis a eso... ya lo corregi, como tambien corrigi otros errores referentes a la paleta en 8 bits, el usar fade_off y fade_on sin un frame intermedio, y otros mas, con trasparencias, blendop en 8 bits y esas cosas...
Aaaaaaaaaaaaaaa, ahora entiendo porqué no conseguia hacer funcinar los fade_on y off, se quedaba la pantalla en negro, y es que no había ningun frame en  medio!! pero por lo que veo ya está solucionado.

No, no es que se recortara parte del gráfico, el gráfico acaba saliendo bien,pero primero aparece 3/4 partes del grafico en cuadraditos y luego el gráfico completo, es cosa de menos de un segundo, pero se ve. También pasa con procesos con size=100.

SplinterGU

#51
no se entonces de eso, no lo vi nunca... si usas un size a 400 es logico que eso pase, ya que no hay suavizado en el zoom, es zoom... pero en 100 si me extraña...

para un uso correcto del fade_off y fade_on, tenes que poner un "while (fading); frame; end" tras cada una de las instrucciones anteriores...

o por lo menos esperar a que fading valga cero para hacer el siguiente fade... ya que sino no se aprecia el efecto...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Packo_z007

Hola. Aca dejo un bug nuevo.Funciona correctamente en fenix.

[code language="bennu"]Program ejemplo;
begin
   set_fps(24,1);
   set_mode(320,240,16);
   pr1();
   repeat
      frame;
   until(key(_esc))
   let_me_alone();
end

process pr1();
private
   grafico;
end
begin
   grafico = graph = new_map(40,40,16);
   map_clear(0,graph,65535);
   loop
      if(key(_1))
         graph = 0;
      elseif(key(_2))
         graph = grafico;
      end
      say(graph);
      frame;
   end
end[/code]

Saludos.
[STRING] *PANIC Too many strings, allocating more space

SplinterGU

Quote from: Packo_z007 on September 28, 2008, 09:07:37 PM
Hola. Aca dejo un bug nuevo.Funciona correctamente en fenix.

[code language="bennu"]Program ejemplo;
begin
   set_fps(24,1);
   set_mode(320,240,16);
   pr1();
   repeat
      frame;
   until(key(_esc))
   let_me_alone();
end

process pr1();
private
   grafico;
end
begin
   grafico = graph = new_map(40,40,16);
   map_clear(0,graph,65535);
   loop
      if(key(_1))
         graph = 0;
      elseif(key(_2))
         graph = grafico;
      end
      say(graph);
      frame;
   end
end[/code]

Saludos.

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

Packo_z007

#54
de nada... Aca dejo otro mas :

[code language="bennu"]Program ejemplo;
begin
   set_fps(24,1);
   set_mode(320,240,16);
   rojo();
   blanco();
   repeat
      frame;
   until(key(_esc))
   let_me_alone();
end

process blanco();
private
   grafico;
end
begin
   x = 160;
   y = 120;
   z = 0;
   graph = new_map(40,40,16);
   map_clear(0,graph,65535);
   loop
      if(key(_left))
         x--;
      end
      frame;
   end
end

process rojo();
private
   grafico;
end
begin
   x = 160;
   y = 120;
   z = 100;
   graph = new_map(100,100,16);
   map_clear(0,graph,rgb(255,0,0));
   loop
      frame;
   end
end[/code]


Edito: Por si sirve el dato, lo probe en fenix y funciona bien.
[STRING] *PANIC Too many strings, allocating more space

SplinterGU

#55
pone una descripcion del error, asi no tengo que estar adivinando que pasa... gracias...

ya veo el error, bueno, me retiro a dormir que manana tengo que trabajar, luego le buscare solucion... gracias...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

solucionado, gracias...
el problema estaba en que cuando cambia la z, se reordena, y se reinserta en una lista de objetos listos para ser dibujados, pero por un "<" donde debia ir un ">", producia que el objeto que cambiaba si su z era mayor a la anterior se pusiera por delante de los objetos de la misma z anterior, pero solo hasta que ese objeto sea redibujado (por algun cambio)... en este caso, el que cambia desde su creacion (cuando se crean, se crean con z=0) era el que tenia z 100 que se ponia por delante de los que tenian z = 0...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

hola,  :)creo que aquí van los bugs ¿verdad?, lo que pasa es que los float funcionan de una forma extraña. Dejo aquí un proyecto para la clase de álgebra, eh intentado escribir un número de 3 enteros, el punto y 2 decimales, sin embargo no lo logro, pues después del primer decimal escribe otros números, si se usa un sólo entero las cosas mejoran, pero para resolver ecuaciones los decimales son importantes  ;). No se si el bug ya se conocía.  :)

http://rapidshare.com/files/154441377/resolutordeecuaciones.rar.html

A propósito, que bueno que los procesos ya no se tiene que declarar, y... ¿los proyectos con bennu wip 2 para pasarlos a la nueva versión, tengo que quitarle todos los declares o se soportan.?
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

#58
Quote from: Prg on October 16, 2008, 02:19:07 AM
hola,  :)creo que aquí van los bugs ¿verdad?, lo que pasa es que los float funcionan de una forma extraña. Dejo aquí un proyecto para la clase de álgebra, eh intentado escribir un número de 3 enteros, el punto y 2 decimales, sin embargo no lo logro, pues después del primer decimal escribe otros números, si se usa un sólo entero las cosas mejoran, pero para resolver ecuaciones los decimales son importantes  ;). No se si el bug ya se conocía.  :)

http://rapidshare.com/files/154441377/resolutordeecuaciones.rar.html

A propósito, que bueno que los procesos ya no se tiene que declarar, y... ¿los proyectos con bennu wip 2 para pasarlos a la nueva versión, tengo que quitarle todos los declares o se soportan.?

Bien, es el eterno problema con los numeros flotantes, los numeros de punto flotante no se representan en C con real precision...
los numeros de punto flotante no son tan precisos como uno espera...
quizas te conviene trabajar con la string y luego cuando le das a calcular convertirlo en float...

Por otra parte, no quites la declaracion de los procesos, es conveniente tenerla...

PD: Tremendo avatar... :)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

QuoteBien, es el eterno problema con los numeros flotantes, los numeros de punto flotante no se representan en C con real precision...
los numeros de punto flotante no son tan precisos como uno espera... quizas te conviene trabajar con la string y luego cuando le das a calcular convertirlo en float..

entiendo, ¿No hay doble precisión o algo así?... entonces voy a intentar transformar hasta el final la cadena de texto a float para ver si mejora.

QuotePor otra parte, no quites la declaracion de los procesos, es conveniente tenerla...

que bueno que me dices, porque ya  pensaba borrar todos los declares... ¿y el private tiene que seguir estando en el declare?

Quote
PD: Tremendo avatar...  :)

:D Muchas gracias, representa la universalidad del bennu, y su brillante futuro :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)