Autor Tema: ¿Problema con delete_draw?  (Leído 965 veces)

Drumpi

  • Hero Member
  • *****
  • Mensajes: 6269
  • Karma: 159
  • Odio el periodo "entre proyectos"
    • La web de Drumpi
¿Problema con delete_draw?
« en: Junio 05, 2010, 05:02:07 pm »
Hola a todos:

Estaba programando con Bennu (muy mal por mi parte, teniendo otras cosas que hacer ;D) y me ha saltado un error. No se si se ha solucionado ya, estoy con la r131 y me parece recordar que hubo algunos cambios al respecto de la mod_draw.

Tengo el siguiente proceso:
[code language="bennu"]process test_mouse_direction ()
private
    int tmd_x1,tmd_y1;
    int tmd_draw,tmd_draw_exists;
begin
    write(0,0,0,0,"Draw a line to get angle and distance.");
    write(0,10,100,0,"ANGLE =");
    write(0,10,110,0,"DISTANCE =");
    
    write(0,0,240,6,"Press ENTER/START to exit.");
    drawing_color(rgb(255,0,0));
    drawing_map(0,0);
    
    tmd_draw_exists=false;
    say("hola");
    
    while (teclas[k_enter][2]!=1)
        if (teclas[mouse_left][2]==1)
            if (tmd_draw_exists) delete_draw(tmd_draw); end
            tmd_x1=mouse.x;
            tmd_y1=mouse.y;
            say("completo");
        end
        if (teclas[mouse_left][2]>1)
            say("segundo paso");
            if (tmd_draw_exists) delete_draw(tmd_draw); end
            say("borrado");
            tmd_draw=draw_line(tmd_x1,tmd_y1,mouse.x,mouse.y);
            tmd_draw_exists=true;
            say("fin segundo paso");
        end
        frame;
    end
    
    //delete_draw(tmd_draw);
    clear_screen();
    delete_text(all_text);
    signal(father,s_wakeup);
    frame;
end[/code]

He hecho mis deberes... o casi, este proceso basta con invocarlo y dormir al padre... y ponerle un gráfico al ratón. El objetivo es pintar una línea desde donde se hace clic con el ratón hasta donde se suelta, en tiempo real, y dejando sólo una. El caso es que al ejecutarlo obtengo la siguiente respuesta en la linea de comandos:

hola
completo
segundo paso
borrado
fin segundo paso
segundo paso

Por lo que falla con delete_draw, sale la ventanita de informe de errores.
Si es un fallo mío, es que estoy tonto, si no, pues reportado queda, mientras, usaré clear_screen.
« última modificación: Junio 05, 2010, 05:08:53 pm por Drumpi »
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

SplinterGU

  • Hero Member
  • *****
  • Mensajes: 12749
  • Karma: 375
Re: ¿Problema con delete_draw?
« Respuesta #1 en: Junio 05, 2010, 08:32:24 pm »
no es drawing_map(0,0)


proba con drawing_map(-1,0)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: ¿Problema con delete_draw?
« Respuesta #2 en: Junio 05, 2010, 10:27:12 pm »
¿El -1 es para dibujar directamente sobre el buffer de pantalla?

Pensaba que sólo podía accederse a ese map para lectura, no para escritura :o

Aprovecho para offtopicar ligeramente y comentar una curiosidad sobre el map -1:

Recientemente un amigo programó un juego en el que aparecía un estadio. En el estadio había una típica pantalla de cine que mostraba el campo de juego (Que era el propio buffer de pantalla, el map -1). Había una serie de parpadeos extraños, quizás debido a que el contenido del buffer se dibujaba en tamaño reducido sobre el propio buffer a cada frame... Espero que se entienda lo que hizo mi amigo y el problema que tenía, ¿Sabéis algo al respecto?

Si hace falta le pido el juego y os lo subo :P
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

Drumpi

  • Hero Member
  • *****
  • Mensajes: 6269
  • Karma: 159
  • Odio el periodo "entre proyectos"
    • La web de Drumpi
Re: ¿Problema con delete_draw?
« Respuesta #3 en: Junio 05, 2010, 10:43:25 pm »
Raro, pensé que el mapa de fondo de pantalla era el file=0 y graph=0 (al menos recuerdo que siempre fué así). Probaré.

===========

Sigue dando problemas: aleatoriamente se cuelga. E incluso, una vez dibujada una línea, al soltar el ratón, en ocasiones (normalmente en ángulos próximos a 270) la linea se mueve ligeramente (cuando, como se puede ver, no se está haciendo nada sobre ella).

Si necesitas el código completo, me mandas un MP y te doy un enlace (aunque está con el código ligeramente modificado, para usar clear_screen).
« última modificación: Junio 05, 2010, 10:51:39 pm por Drumpi »
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: ¿Problema con delete_draw?
« Respuesta #4 en: Junio 06, 2010, 03:44:13 pm »
No era graph = 0 seguro, porque un proceso al que no le asignas gráfico tiene graph = 0 y no muestra nada :P

Sube el código y le echamos un ojete Drumpi.
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: 12749
  • Karma: 375
Re: ¿Problema con delete_draw?
« Respuesta #5 en: Junio 06, 2010, 06:35:45 pm »
repito, drawing_map( -1, 0 )

para la proxima podra ser -1, -1, pero por ahora es -1, 0 (o mejor dicho, primer parametro cualquier numero negativo, 2do parametro cualquier numero de 0-999 ).
« última modificación: Junio 06, 2010, 06:46:40 pm por SplinterGU »
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

  • Hero Member
  • *****
  • Mensajes: 6269
  • Karma: 159
  • Odio el periodo "entre proyectos"
    • La web de Drumpi
Re: ¿Problema con delete_draw?
« Respuesta #6 en: Junio 06, 2010, 11:35:24 pm »
Wind, el código no puedo publicarlo porque es en el juego del concurso donde he encontrado este comportamiento "extraño" y me lo prohiben las normas, así que sólo se lo puedo pasar a una persona de confianza por MP.

Insisto en decir que uso la r131, y que ignoro los cambios hechos hasta la actual (la última que vi era la r144).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Windgate

  • Hero Member
  • *****
  • Mensajes: 2930
  • Karma: 124
    • TRINIT Asociación de Informáticos de Zaragoza
Re: ¿Problema con delete_draw?
« Respuesta #7 en: Junio 07, 2010, 03:40:41 pm »
Pues pásalo por MP/mail, en su día usé mucho el delete_draw con el visor 3D, tuve algún problemilla para borrar lineas.
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