Bennu Game Development

Foros en Español => Mesa de Ayuda => Topic started by: DCelso on October 04, 2016, 06:49:53 AM

Title: ¿Cambios en screen_put?
Post by: DCelso on October 04, 2016, 06:49:53 AM
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.
Title: Re:¿Cambios en screen_put?
Post by: Futu-block on October 04, 2016, 10:57:12 AM
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)
Title: Re:¿Cambios en screen_put?
Post by: DCelso on October 04, 2016, 12:18:21 PM
Muy util, sí.

sobre todo porque gracias a eso se resuelve el problema de la posición.

XD
Title: Re:¿Cambios en screen_put?
Post by: Futu-block on October 04, 2016, 12:22:45 PM
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
Title: Re:¿Cambios en screen_put?
Post by: 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);

   
Title: Re:¿Cambios en screen_put?
Post by: DCelso on October 04, 2016, 01:07:45 PM
¿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.
Title: Re:¿Cambios en screen_put?
Post by: SplinterGU on October 04, 2016, 01:18:33 PM
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!
Title: Re:¿Cambios en screen_put?
Post by: Futu-block on October 04, 2016, 01:26:09 PM
tu pc está chungo con tanto windo$¹¹

(http://forum.bennugd.org/index.php?action=dlattach;topic=4337.0;attach=3651)
Title: Re:¿Cambios en screen_put?
Post by: DCelso on October 04, 2016, 02:11:56 PM
XD,
¿Qué versión del bgdi estas usando y que .prg has probado de las 4 varaciones que puse?


Title: Re:¿Cambios en screen_put?
Post by: Futu-block on October 04, 2016, 02:29:23 PM
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
Title: Re:¿Cambios en screen_put?
Post by: SplinterGU on October 04, 2016, 03:32:34 PM
actualiza tu version, eso ya esta corregido.
Title: Re:¿Cambios en screen_put?
Post by: Drumpi on October 05, 2016, 12:30:08 AM
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
Title: Re:¿Cambios en screen_put?
Post by: SplinterGU on October 05, 2016, 02:35:50 AM
yo me refiero a la put_screen, eso ya esta solucionado.

lo del background no recuerdo, tengo que revisar.
Title: Re:¿Cambios en screen_put?
Post by: Drumpi on October 05, 2016, 12:35:49 PM
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!
Title: Re:¿Cambios en screen_put?
Post by: DCelso on October 05, 2016, 02:50:19 PM
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)



Title: Re:¿Cambios en screen_put?
Post by: Drumpi on October 05, 2016, 06:12:13 PM
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.
Title: Re:¿Cambios en screen_put?
Post by: 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.






Title: Re:¿Cambios en screen_put?
Post by: 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

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)
Title: Re:¿Cambios en screen_put?
Post by: Drumpi on October 05, 2016, 07:07:46 PM
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.
Title: Re:¿Cambios en screen_put?
Post by: SplinterGU on October 06, 2016, 12:25:34 PM
la de windows tambien funciona ok, debes tener alguna lib o alguna version vieja de bennugd en el path.