Hola a todos, esto hace un par de años iba muy bien, hoy no.
Programa 640x480, imagen 640x480, voy a ponerla de fondo y bualá, imposible ponerla bien completamente.
¿Alguien puede ayudarme?
Program test;
import "mod_map"
import "mod_key"
import "mod_draw"
import "mod_screen"
import "mod_video"
import "mod_proc"
Begin
set_mode(640,480,16);
set_fps(30,0);
screen_put(0,load_png("fondo.png"));
while (!key(_esc))
frame;
end
let_me_alone();
end
la pone justo en la mitad, como bien pone en la wiki, cosa que antes no pasaba. y se ve pues claro, un cuarto de la imagen.
cambio screen_put por
screen_clear();
put(0,load_png("fondo.png"),graphic_info(0,BACKGROUND,G_WIDTH)/2,graphic_info(0,BACKGROUND,G_HEIGHT)/2);
y como es de esperar mismo exacto resultado.
screen_clear();
put(0,load_png("fondo.png"),graphic_info(0,BACKGROUND,G_WIDTH),graphic_info(0,BACKGROUND,G_HEIGHT));
no se ve nada.
screen_clear();
put(0,load_png("fondo.png"),0,0);
se ve el cuarto contrario de la imagen.
lo más aproximado que he podido conseguir es haciendo el truco de la cuarta parte pero vamos aún así ni se ajusta a ocupar toda la pantalla como hacía antes.
screen_clear();
put(0,load_png("fondo.png"),graphic_info(0,BACKGROUND,G_WIDTH)/4,graphic_info(0,BACKGROUND,G_HEIGHT)/4);
Adjunto imagen, para que hagais pruebas si quereis.
si copias la ruta de imagen y la pones con etiquetas de IMG podriamos verla tol mundo... ¬¬
(http://forum.bennugd.org/index.php?action=dlattach;topic=4337.0;attach=3645)
Muy util, sí.
sobre todo porque gracias a eso se resuelve el problema de la posición.
XD
Gracias, karma++
Además, es mejor cuando vemos las imágenes, a mí siempre me echa pá tras tener que descargármelas
Por cierto, lo porbaré a ver si me pasa y te cuen
Sí, a mi me ha pasado con FPGs, independientemente de dónde pusiera el centro de la imágen, pero siempre se me colocaba la imágen en el cuarto de la parte superior izquierda (pero no me ha hecho cosas tan raras como dices).
¿Has probado a cargar el PNG y guardar su ID en una variable, y usar la variable en el put_screen? es posible que no la cargue bien, o que el centro esté vete tu a saber dónde.
Esto es lo que hago yo y me funciona bien, pero es una lástima lo de put_screen (Splinter no podía mirarlo porque estaba ocupado con algo llamado "vida real" y BennuGD2, bastante que pudo sacar las r334 y r335 cuando le comenté un par de bugs).
temp = load_png(lp_logo);
put(0, temp, graphic_info(0, temp, G_WIDTH) / 2, graphic_info(0, temp, G_HEIGHT) / 2);
¿Y esto te va bien?
temp = load_png(lp_logo);
put(0, temp, graphic_info(0, BACKGROUND, G_WIDTH) / 2, graphic_info(0, BACKGROUND, G_HEIGHT) / 2);
la diferencia que veo es que tu usas el ancho y alto del gráfico y yo el de la pantalla :O,
que en el ejemplo que pongo es el mismo 640x480. es decir que debería dar el mismo resultado.
Quote from: Drumpi on October 04, 2016, 12:45:29 PM
Sí, a mi me ha pasado con FPGs, independientemente de dónde pusiera el centro de la imágen, pero siempre se me colocaba la imágen en el cuarto de la parte superior izquierda (pero no me ha hecho cosas tan raras como dices).
¿Has probado a cargar el PNG y guardar su ID en una variable, y usar la variable en el put_screen? es posible que no la cargue bien, o que el centro esté vete tu a saber dónde.
Esto es lo que hago yo y me funciona bien, pero es una lástima lo de put_screen (Splinter no podía mirarlo porque estaba ocupado con algo llamado "vida real" y BennuGD2, bastante que pudo sacar las r334 y r335 cuando le comenté un par de bugs).
temp = load_png(lp_logo);
put(0, temp, graphic_info(0, temp, G_WIDTH) / 2, graphic_info(0, temp, G_HEIGHT) / 2);
hey! ya fue fixeado esto!
tu pc está chungo con tanto windo$¹¹
(http://forum.bennugd.org/index.php?action=dlattach;topic=4337.0;attach=3651)
XD,
¿Qué versión del bgdi estas usando y que .prg has probado de las 4 varaciones que puse?
El .prg este:
Program test;
import "mod_map"
import "mod_key"
import "mod_draw"
import "mod_screen"
import "mod_video"
import "mod_proc"
Begin
set_mode(640,480,16);
set_fps(30,0);
screen_put(0,load_png("fondo.png"));
while (!key(_esc))
frame;
end
let_me_alone();
end
el que tu has puesto en el primero, y el bgdi dime como se mira que te lo digo
actualiza tu version, eso ya esta corregido.
No recuerdo la variable global "BACKGROUND". De todas formas, por curiosidad, haz un SAY a ver si de verdad el ancho y alto de BACKGROUND son iguales que la del PNG. No sabes la de cabezazos que me he llegado a dar contra la pared por cosas así (concretamente, leer de un fichero con un nombre idéntico pero versión equivocada).
Splinter: ups, pues debí olvidarlo. Lo cambiaré mañana, que ahora estoy en Linux (en serio, debo acordarme de desinstalar la ¿r332? e instalar la r335 en Kubuntu) y son las 2:30 AM :D
yo me refiero a la put_screen, eso ya esta solucionado.
lo del background no recuerdo, tengo que revisar.
Si, yo también.
Confirmado, la r335 tiene solucionado el problema de put_screen. A mi me va bien con:
temp = load_png(lp_logo);
put_screen(0, temp);
¡Y eso aun usando 2xScale sin filtro!
Pues será la r335 de linux.
La de windows recien descargada de la firma de Splinter hace esto sin trampa ni cartón:
(http://forum.bennugd.org/index.php?action=dlattach;topic=4337.0;attach=3658)
Intenta averiguar que revisión es la que estás usando, no vaya a ser que no estés usando los binarios actualizados, sino una copia diferente de otra carpeta. Sólo para descartar lo obvio.
;D
descargado fichero con el siguiente nombre bgd-1.0.0-r335-win32.rar.
Binario modificado el 4 de Julio de 2016 descomprimido en D:\BennuGD
al ejecutarlo desde pspad muestra la siguiente información en pantalla
BGDC 1.0.0 (Jul 4 2016 21:22:00)
Bennu Game Development Compiler
Copyright (c) 2006-2016 SplinterGU (Fenix/BennuGD)
Copyright (c) 2002-2006 Fenix Team (Fenix)
Copyright (c) 1999-2002 José Luis Cebrián Pagüe (Fenix)
File D:\workspaces\BennuGD\test\test.dcb compiled (41811 bytes):
Processes 1
Global data 204 bytes
Local data 192 bytes
Private data 0 bytes
Public data 0 bytes
Code 108 bytes
System processes 165
Globals vars 19
Locals vars 26
Private vars 0
Publics vars 0
Identifiers 528
Structs 3
Strings 15 (134 bytes)
Process completed, Exit Code 1.
Execution time: 00:00.282
Ostias, también dice 4 de Julio de 2016.
A lo mejor puede que sea el mismo que viste y calza. Auque también puede que no, y que sea de antes con la fecha grabada a fuego a 4 de Julio para engañaros, sí.
De todas formas por volver a probar a compilar y ejecutar no pierdo nada.
Ostras, mismo resultado, increíble. Puede que mi ordenador tenga guardada una versión de bgdi guardada en cualquier otro sitio y ejecute con otro bgdi diferente al bgdc con el que he compilado.
* pues no, dice tambien 4 de Julio de 2016 al ejecutarlo solo.
a ver si es que voy a tener escondido algún bgdi y aunque la consola ponga eso al poner "bgdi" ponga 4 de Julio se está ejecutando otro anterior.
* pues no, ni en c ni en d, existe cualquier otro fichero con nombre bgdi.exe.
Si leemos la documentación actual de la wiki de bennu, hace lo que pone en ella.
http://wiki.bennugd.org/index.php?title=Screen_put
ponerlo a partir de la mitad de la pantalla.
Según esa documentación funciona como dice.
Aunque en versiones anteriores de bennu no lo hiciera nunca, dibujaba en la 0,0, siempre, por lo que al hacer putscreen(0,loadpng("loquese")) siempre lo ponía desde la 0,0 mostrandose entera la imagen....
No importa que haya cambiado si es lo que se quiere hacer para complicar la vida al programador...
pero...., si yo hago una corrección y la dibujo ahora con put en la posición 0,0, debería dibujarse bien, no?
Program test;
import "mod_screen"
import "mod_key"
import "mod_map"
import "mod_video"
Begin
set_mode(640,480);
screen_clear();
put(0,load_png("fondo.png"),0,0);
while (!key(_esc))
frame;
end
end
Pues me muestra el otro cuarto :D y es justo eso lo que me fastidia.., porque ya no hay forma de mostrar la imagen bien, facilmente, no lo entiendo. no.
(http://forum.bennugd.org/index.php?action=dlattach;topic=4337.0;attach=3666)
Quote from: DCelso on October 05, 2016, 06:42:26 PM
;D
descargado fichero con el siguiente nombre bgd-1.0.0-r335-win32.rar.
Binario modificado el 4 de Julio de 2016 descomprimido en D:\BennuGD
al ejecutarlo desde pspad muestra la siguiente información en pantalla
BGDC 1.0.0 (Jul 4 2016 21:22:00)
Bennu Game Development Compiler
Copyright (c) 2006-2016 SplinterGU (Fenix/BennuGD)
Copyright (c) 2002-2006 Fenix Team (Fenix)
Copyright (c) 1999-2002 José Luis Cebrián Pagüe (Fenix)
File D:\workspaces\BennuGD\test\test.dcb compiled (41811 bytes):
Processes 1
Global data 204 bytes
Local data 192 bytes
Private data 0 bytes
Public data 0 bytes
Code 108 bytes
System processes 165
Globals vars 19
Locals vars 26
Private vars 0
Publics vars 0
Identifiers 528
Structs 3
Strings 15 (134 bytes)
Process completed, Exit Code 1.
Execution time: 00:00.282
Ostias, también dice 4 de Julio de 2016.
A lo mejor puede que sea el mismo que viste y calza. Auque también puede que no, y que sea de antes con la fecha grabada a fuego a 4 de Julio para engañaros, sí.
De todas formas por volver a probar a compilar y ejecutar no pierdo nada.
Ostras, mismo resultado, increíble. Puede que mi ordenador tenga guardada una versión de bgdi guardada en cualquier otro sitio y ejecute con otro bgdi diferente al bgdc con el que he compilado.
* pues no, dice tambien 4 de Julio de 2016 al ejecutarlo solo.
a ver si es que voy a tener escondido algún bgdi y aunque la consola ponga eso al poner "bgdi" ponga 4 de Julio se está ejecutando otro anterior.
* pues no, ni en c ni en d, existe cualquier otro fichero con nombre bgdi.exe.
A lo mejor no deberías buscar BGDI.exe, sino solo bgdi, no vaya a ser que sólo te encuentre binarios de windows :D :D :D
Vaaaaaale, he dicho que era para descartar lo obvio: sí, tu IDE usa el binario correcto :S. Entonces no tengo ni idea de qué leches pasa.
Vas a tener que hacer como yo y usar PUT o cualquier familiar mientras se arregla, si es que es cosa de Bennu, y no del PNG, del mono de Momia que se te ha colado en el ordenador o algo así.
Quote from: DCelso on October 05, 2016, 06:51:50 PM
Si leemos la documentación actual de la wiki de bennu, hace lo que pone en ella.
http://wiki.bennugd.org/index.php?title=Screen_put (http://wiki.bennugd.org/index.php?title=Screen_put)
ponerlo a partir de la mitad de la pantalla.
Según esa documentación funciona como dice.
Aunque en versiones anteriores de bennu no lo hiciera nunca, dibujaba en la 0,0, siempre, por lo que al hacer putscreen(0,loadpng("loquese")) siempre lo ponía desde la 0,0 mostrandose entera la imagen....
No importa que haya cambiado si es lo que se quiere hacer para complicar la vida al programador...
pero...., si yo hago una corrección y la dibujo ahora con put en la posición 0,0, debería dibujarse bien, no?
Program test;
import "mod_screen"
import "mod_key"
import "mod_map"
import "mod_video"
Begin
set_mode(640,480);
screen_clear();
put(0,load_png("fondo.png"),0,0);
while (!key(_esc))
frame;
end
end
Pues me muestra el otro cuarto :D y es justo eso lo que me fastidia.., porque ya no hay forma de mostrar la imagen bien, facilmente, no lo entiendo. no.
(http://forum.bennugd.org/index.php?action=dlattach;topic=4337.0;attach=3666)
En teoría, PUT_SCREEN (tal como leí en el manual de DIV) debería coger la imágen y dibujarla sobre el fondo, centrada, independientemente del tamaño y del centro de la misma.
Cualquier cambio posterior no sé ni quién lo hizo ni bajo qué premisa, eso se lo tienes que preguntar a él ^^U
Por cierto: recuerda que desde siempre, si no se especifica punto de control 0, este se coloca en el centro de la imágen, por lo que al hacer
put(0,load_png("fondo.png"),0,0);
es normal que sólo veas un cuarto de la imágen. Tienes que o bien setear el centro del gráfico en (0,0), o hacer el put desplazándolo media imágen a la derecha y hacia abajo para que te quede en la esquina superior izquierda.
la de windows tambien funciona ok, debes tener alguna lib o alguna version vieja de bennugd en el path.