Dudas con 'new_map'

Started by FreeYourMind, May 11, 2010, 10:34:22 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

FreeYourMind

Buenas, estoy intentando localizar un error que me ocurre sólo con Bennu, pienso que podria ser el new_map, o sea poniendo un:

new_map(scr_width, scr_height, 16);

con

const

scr_width = 320;
scr_height = 200;

la imagen me sale pintada sólo hasta la mitad de la pantalla, si hago por ejemplo un
new_map(scr_width - 100, scr_height, 16); esta se desloca correctamente hacia la izquierda, pero si hago un +100, esta no se desloca hacia la derecha. Podrias revisar esta funcion interna en Bennu y sus parametros a ver si lo esta haciendo todo bien (que no sea un problema como tenias con el map_block_copy cuando pintabas algo fuera de la zona visible...).
Grácias.

Drumpi

Me consta que esa función va bien, salvo que se haya metido algún cambio desde la r131 a dicha función.
Mira a ver si es cosa del punto de control o que estás dibujando parte de la imagen o símplemente fuera de ella. Prueba a crear el mapa más grande, o a poner un fondo de color y usar el flag NO_COLOR_KEY para ver dónde se dibuja. A mi me pasa a veces.
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

Puede ser problema del punto de control como dice Drumpi... Quizás se esté posicionando respecto del punto superior izquierdo del gráfico y no respecto del centro... Prueba a dibujar la ventana de ejecución más grande y comprobar lo que pasa, es una dll bastante antigua, no creo que haya bug en ella.
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

FreeYourMind

Perdonad pero no he entendido nada  :D

Windgate

Todo map tiene un punto de control que indica el punto de referencia respecto del cual se posiciona.

Si has trabajado con FPGs te habrás fijado que los mapas se posicionan respecto de su centro.

A lo que me refiero, no sé dónde fija el punto de control un mapa creado con new_map. Ten en cuenta que a la hora de posicionar un mapa en la posición x=0 , y=0 cambia mucho según donde esté el punto de control:


  • Si el punto de control está en el centro del mapa sólo verías la cuarta parte inferior derecha del mapa, el resto "saldría" de la pantalla.
  • Si el punto de control está en la esquina superior izquierda del mapa entonces verías el mapa completo, ya que colgaría respecto de ese punto hacia abajo a la derecha.

¿Semen tiende?
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

FreeYourMind

Pero tu controlas el punto de control ? Por lo que veo, me parece que lo pone en x=0, y=0 y aparte de esto se puede deslocar alterando los valores de height, width, pero no hasta rellenar la pantalla hacia la derecha.

Aún no tengo claro donde este el problema pero me parece que es aqui.

O como cambias tu el punto de control ?

Mr Matsusaka

Para cambiar el punto de control se usa set_point (file, graph, x, y);
Otra manera de ver si es lo que dicen los compañeros es probar a poner el grafico en medio de la pantalla con un x=160; y=100;
En teoria cualquiera de las dos cosas funcionara.

FreeYourMind

Pero el x, y referencia directamente el mapa creado con new_map ? Pensaba que sólo lo hacia para un mapa puesto a pelo por ejemplo con graph=1;.

Voy a probar el set_point que desconocia por completo.
Grácias.

Drumpi

Mr matsusaka se ha confundido:
INT SET_POINT ( INT librería, INT gráfico, INT número, INT x, INT y )
O bien
INT SET_CENTER ( INT librería, INT gráfico, INT x, INT y )
Porque al menos yo no estoy seguro de dónde se establece el centro del mapa con new_map (o no me acuerdo ahora mismo). Lo que tienes que comprobar es:
a) en qué parte de la pantalla está puesto el mapa que has creado.
b) qué parte de la misma ocupa.
Haz pruebas con un mapa pequeño, lo más centrado posible, para ver cómo funciona.
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

mapas que no tienen puntos de control definido, el centro es el centro del mapa... salvo el caso de capturas de pantalla que se pone automatico en el 0,0.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

O sea, este mapa tendria que estar en el centro de pantalla ?

new_map(scr_width, scr_height, 16);

SplinterGU

si las coordenadas que pones son x=scr_width/2, y=scr_height/2... entonces si
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Mr Matsusaka

Para cambiar la x y la y de un mapa puedes asignar el new_map a un graph de un proceso, tal que asi;

graph=new_map(etcetc...);
x=160;
y=100;

creo... ;D

SplinterGU

jejeje, eso si que lo sabe free...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Y que use los cursores para desplazarlo por la pantalla, lo mismo se lleva alguna sorpresa ;D
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)