Primeras dudas y problemas(set_icon)

Started by 33A3, October 24, 2010, 11:19:24 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

33A3

Hola comunidad!

Despues de muchos dias aprendiendo como un maniatico (a mi ritmo entre las clases y fiestas etc.) llegue finalmente a la parte del tutorial donde se crea el primer juego de verdad. (el del laberinto y la nave) Y estuve con entusiasmo creandolo metiendo mis propias cosas cuando choque con el hecho de que no funciona el icon que le queria poner en la ventana.

El icon de tamaño 32x32 esta guardado en un fpg con ID de 005 y de verdad no entiendo que estoy haciendo mal, he probado cambiando el codigo de muchas maneras e incluso de forma que supuestamente esta mal.

(tl;dr) RESUMEN: No funciona el iconito para el Juego con set_icon y no comprendo porque
Aqui esta el codigo:
Import "mod_video";
Import "mod_map";
Import "mod_key";
Import "mod_screen";
Import "mod_wm";
Import "mod_grproc";
Import "mod_proc";
Import "mod_rand";

Global
int id1;
end

Process Main()
private
int randaster;
end
Begin
id1=load_fpg("graficos.fpg");
set_title("Orion Escape!");
set_icon(id1,5);
set_mode(640,480,32);
put_screen(id1,3);
personaje();
laby();
loop
if(rand(1,1000)==1)
enemigo(rand(1,640),-50,rand(5,6),rand(50,150),rand(-10,10),rand(5,10));
frame(2800);
end
end
END

Process personaje()
Begin
x=296; y=220; file=id1; graph=1;
Loop
IF (key(_w)) advance(10); END
IF (key(_s)) advance(-10); END
IF (key(_a)) angle=angle+7500; END
IF (key(_d)) angle=angle-7500; END
IF (collision(type laby))x=296; y=220; END
IF (collision(type enemigo))x=296; y=220; END
If (key(_esc)) exit("exit",1); end
frame;
end
end

Process laby();
Begin
x=320;y=240;graph=2;
Loop
frame;
end
end

Process enemigo(x,y,graph,size,int incrementox, int incrementoy)
Begin
Loop
x=x+incrementox;
y=y+incrementoy;
IF(x<-20) Break; END
If(x>660) Break; END
IF(y>500) Break; END
frame;
end
end


Si alguien tiene una idea de resolver alguna parte del codigo de forma mas inteligente no me enfadaria si me lo dice  ;D

Muchas gracias con antelacion
- 33A3 & los demas que usen mi cuenta esta

Drumpi

Yo empezaría probando a cambiar el SET_MODE de sitio, siempre ANTES de cargar cualquier imagen porque es el que inicializa todo el sistema gráfico.
Prueba también a ver si funciona en modo 16bits, el modo 32bits aun es un poco experimental, la falta de grafistas en el foro ha impedido un testeo riguroso de este modo de video ^^U
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)

DCelso

En teoría la wiki dice que el icono se actualiza sólo despues de usar la sentencia set mode (y que puede ser de cualquier densidad de color, y que además después de set_icon se puede liberar el recurso), pero curiosamente el ejemplo hace el set_mode antes que el set_icon, así que no se si está mal el ejemplo o la explicación :D.
http://wiki.bennugd.org/index.php?title=Set_icon
Tendré que hacer pruebas.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

DCelso

Bueno, ya he detectado tu problema.
Parece que en 32 bits tienes que hacer el set_mode antes que el set_icon, sino, no va y se ve transparente.
En 16 bits parece que da igual donde vaya el set_mode, si antes o despues, funciona igual.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

FreeYourMind

Logicamente porque Bennu te lo pone a 16 bits siempre por defecto xDDDD

Danielo515

Quote from: Drumpi on October 25, 2010, 01:24:11 AM
Yo empezaría probando a cambiar el SET_MODE de sitio, siempre ANTES de cargar cualquier imagen porque es el que inicializa todo el sistema gráfico.
Prueba también a ver si funciona en modo 16bits, el modo 32bits aun es un poco experimental, la falta de grafistas en el foro ha impedido un testeo riguroso de este modo de video ^^U

Yo en el 99% de los casos uso el modo de 32 bits.

Y si me he topado con algún que otro problemilla, porque no decirlo.

33A3

Hola de nuevo!
Bueno, hoy estuve distraido en clases  ::) y dedice mi tiempo a revisar el codigo del juego, ampliarle varias tonterias y comprobar todo lo que me dijisteis en las respuestas anteriores.
No me funcionaba en 32 bits ni en 16(obviamente porque las imagenes estan en 32bits y solo se veia el texto escrito por bennu) intentare cambiar el png a 16 bits(en clase no podia porque no tenia las herramientas necesarias...).
Ire probando cosas y si no consigo que funcione simplemente creare mi propia "ventana" quitando la usual de windows y dibujando la mia propia con Bennu.

Ahora otra duda un poco mas importante para mi:
Que archivos tienen que estar dentro de mi Carpeta y como exactamente tengo que compilar el juego para que otras personas que no tengan BennuGD instalado en su propia Computadora puedan jugar mis juegos creados?
Yo ahora mismo tengo:
C:/Orionescape
-/graficos.fpg
-/orionescape.dcb
-/orionescape.prg

estoy usando estos modulos:
"mod_video"; "mod_map"; "mod_key"; "mod_screen"; "mod_wm"; "mod_grproc"; mod_proc"; "mod_rand"; mod_text"; "mod_draw"
(en clases inclui varias librerias y tambien hice algun tipo de exe pero me hice un lio del copon probando todas las posibilidades...


He mirado por todos lados en el foro y he encontrado respuestas pero no se si soy tonto o algo que no consigo que funcione
(al menos en la maquina virtual de mi ordenador de clase)  :-\

Y muchisimas gracias por las respuestas tan rapidas, me estais siendo muy util y estoy aprendiendo mucho  ;D
--33A3 y compania

Drumpi

Quote from: FreeYourMind on October 25, 2010, 06:01:22 AM
Logicamente porque Bennu te lo pone a 16 bits siempre por defecto xDDDD

Creo que Splinter cambió eso hace unas cuantas revisiones y por defecto es 32bits. Y creo que Fenix era a 8bits.

Respecto a lo de cómo tenerlo todo para que funcione el juego, si tus usuarios ya lo tienen instalado en el sistema sólo necesitas crear un .bat con la línea "bgdi tujuego.dcb" (bgdc sólo es necesario si además debe compilarse), no tienes que copiar ejecutables ni librerías, sólo tus propios recursos.
En caso contrario, ya necesitas añadir las librerías, y el bgdi.exe con el nombre de tu DCB (por ejemplo, tujuego.exe). Eso creo que se explica en los tutoriales, y si no, seguro que en la sección de proyectos hay algún juego listo para usar que te sirva como ejemplo.
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)

33A3

Quote from: Drumpi on October 25, 2010, 11:16:43 PM
Quote from: FreeYourMind on October 25, 2010, 06:01:22 AM
Logicamente porque Bennu te lo pone a 16 bits siempre por defecto xDDDD

Creo que Splinter cambió eso hace unas cuantas revisiones y por defecto es 32bits. Y creo que Fenix era a 8bits.

Respecto a lo de cómo tenerlo todo para que funcione el juego, si tus usuarios ya lo tienen instalado en el sistema sólo necesitas crear un .bat con la línea "bgdi tujuego.dcb" (bgdc sólo es necesario si además debe compilarse), no tienes que copiar ejecutables ni librerías, sólo tus propios recursos.
En caso contrario, ya necesitas añadir las librerías, y el bgdi.exe con el nombre de tu DCB (por ejemplo, tujuego.exe). Eso creo que se explica en los tutoriales, y si no, seguro que en la sección de proyectos hay algún juego listo para usar que te sirva como ejemplo.

Vale, ya he solucionado mis problemas. Muchas gracias!  :) +1 karma

SplinterGU

depende del modo de video que tengas seteado.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Que!!!!!!!!!
Si no pongo set_mode, cual sale, 8,16 o 32 ?
Si no sale el 16, en que versión se cambio ?

SplinterGU

no recuerdo en que modo esta, pero saberlo es tan facil como hacer un:

x=100;
y=100;
graph=map_new(16,16,16);
map_clear(0,rgb(255,255,255));
loop
frame;
end

y cambiar la profundidad del new_map y si se dibuja ahi esta la profundidad del modo default.

si revisas los mensajes de avances diarios la vas a encontrar los cambios.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Drumpi

Quote from: FreeYourMind on October 26, 2010, 03:56:13 PM
Que!!!!!!!!!
Si no pongo set_mode, cual sale, 8,16 o 32 ?
Si no sale el 16, en que versión se cambio ?

Creo que el cambio se hizo alrededor de la r130 y algo, o un poco antes, y se setea por defecto a 32 (salvo WIZ/CAANOO que siguen saliendo a 16 bits por el problema de HW).
Pero por este tipo de cosas se recomienda SIEMPRE inicializar las variables. Es más, yo pondría SET_MODE como obligatorio... pero como se pueden desarrollar aplicaciones de comandos, sin gráficos, pues ya no se puede hacer ^^U
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

vamos a aclarar... se cambio a 32 y luego (en la siguiente release o 2) se volvio a como estuvo toda la vida.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2