Getting started

Started by Drumpi, January 18, 2017, 02:41:28 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Drumpi

 :o Lo del proceso dummie me ha dejado "to loco". Voy a probarlo... y poner algún FRAME extra para cuando lo arregles :D

Lo del array, si pongo un valor numérico, lógicamente va a funcionar, no hace falta ni probarlo, pero lo ideal es que admita constantes, porque así, si en algún momento tengo que amentar su capacidad (junto al de otros arrays relacionados) basta con modificar un número.

Dos cosas más: al crear el empaquetado, me mete la carpeta de los gráficos de ejemplo ¿Es eso normal? ¿Se puede evitar o lo borro a mano de cada paquete que haga? (como seguramente se quedarán gráficos sin añadir por construir sus nombres en tiempo de ejecución...).

Y al crear mi primer programa, a 800x600, este se ejecuta colocando la esquina superior izquierda de la zona del juego en el centro de la ventana. No es cosa de los gráficos, porque en la "ejecución en modo debug" (es decir, en la ventana del IDE) todo funciona a la perfección. ¿Qué puedo estar haciendo mal? (si lo necesitas, te puedo pasar un enlace a la web de pruebas, o lo poco que llevo del proyecto).

Gracias.
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)

AmakaSt

Los gráficos de la carpeta graficos los puedes eliminar todos si no los vas a usar pero debe ser antes de empaquetar porque si no los buscara para la carga y dará error. Esa carpeta corresponde al file = 0; el primer load_fpg() que añadas en el código corresponderá al file = 1; en esa carpeta con poner el grafico para el bloque LOADING y el icono para la pestaña del navegador es más que suficiente. :)

Sobre lo de que el juego se te va a la esquina superior izquierda no lo acabo de entender, pásame el enlace para ver que puede estar ocurriendo.


Futu-block

#17
Aqui está el ejemplo



Que digo yo, ¿hace falta poner eso de la resolución? o se adapta a la resolución del navegador/pantalla de cada uno...

AmakaSt

Ops, acabo de ver que es por el uso de set_mode(), en DivGO no funciona igual que en BennuGD, el tercer parámetro es de escalado y no de color. Por lo que set_mode(800,600,32) no te va a poner el color a 32bits que eso es siempre en Div GO.

set_mode(800,600,2); //te muestra la pantalla de juego escalada al doble
set_mode(800,600,3); //al triple
set_mode(800,600,4); //al cuadruple... y así hasta 20
set_mode(800,600,view_full_size_scale); //se escala llenando todos los huecos de la página, por lo que toda la página es la pantalla del juego
set_mode(800,600,view_full_aspect_ratio); //se escala manteniendo las proporciones de la pantalla, si la pantalla de juego es 800x600 y el navegador esta a 1280x720, quedaran los márgenes negros en los laterales
set_mode(800,600,view_full_amplitude); //se escala llenando todos los huecos de la pagina manteniendo las proporciones, por lo que se comerá un trozo de pantalla del juego para ajustarlo a dicha resolución
set_mode(800,600,0.5); //usando decimales se reduce, esto es a la mitad

Prueba esto a ver si funciona. :)

Un saludo.

Drumpi

Quote from: AmakaSt on February 06, 2017, 08:57:32 PM
Los gráficos de la carpeta graficos los puedes eliminar todos si no los vas a usar pero debe ser antes de empaquetar porque si no los buscara para la carga y dará error. Esa carpeta corresponde al file = 0; el primer load_fpg() que añadas en el código corresponderá al file = 1; en esa carpeta con poner el grafico para el bloque LOADING y el icono para la pestaña del navegador es más que suficiente. :)

Pero no puedo borrar esa carpeta o su contenido, son los gráficos para los códigos de ejemplo, y viene de serie con DivGo.
¿Podría, al menos, borrar el contenido DESPUÉS de empaquetarlo, y sustituirlo por lo que dices, los gráficos de la barra de progreso y eso? Para que no quede vacía y así, al hacer el auto_load_fpg, se encuentre al menos con un gráfico (como load_fpg no tiene en cuenta el número de gráficos que contiene el fichero...).
Al final vas a tener que implementar un selector de recursos para el empaquetador, o unos comandos para el código, verás tu :P

Vale, Futu, has hecho lo que te dije que no hicieras: publicar el enlace a la alpha privada :D
No, ya no borres la imagen, ya da igual, ya la ha visto la gente... y tampoco es que haya mucho que ver ^^U Si veo que necesito esconder algo, ya cambiaré la URL.

Uuuups. Fallo de novato: suponer que las funciones de DIV/Fenix/Bennu hacen lo mismo en DivGo ^^U
Es bueno saber que sólo hay modo 32bits, porque tenía intención de usar multipaletas para el cambio de color. Abortaré la misión y volveré a la idea original de convertir gráficos de 4bits a 32bits usando map_put_pixel :D ...si sigue existiendo ^^U

Que digo yo, yo estoy haciendo el programa a la resolución del fondo que me pasaste, Futu. Si quieres que se reescale, por mi no hay problema. Tanto sin escalado como con VIEW_FULL_ASPECT_RATIO funcionan correctamente. Ahora sólo necesito esos gráficos que te pedí para poder seguir programando.
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)

Futu-block

Oh, no, sobrecarga del servidor!!!
¡¡SOCORROOOOOOOOO!!

bueno, ahora que está solucionado, ya te he mandado unas imagenes totalmente ambiguas para que hagas la interfaz al gusto, puesto que si lo estas programando tu, que menos que lo hagas como te resulte mas comodo

pd: mejor si no usamos bitstrips, ponle drumpi-tiras o algo asi...

AmakaSt

Quote from: Drumpi on February 07, 2017, 01:03:01 AM
Uuuups. Fallo de novato: suponer que las funciones de DIV/Fenix/Bennu hacen lo mismo en DivGo ^^U
Es bueno saber que sólo hay modo 32bits, porque tenía intención de usar multipaletas para el cambio de color. Abortaré la misión y volveré a la idea original de convertir gráficos de 4bits a 32bits usando map_put_pixel :D ...si sigue existiendo ^^U

La función set_mode() funciona como en Div2, el de un solo parámetro y las constantes mANCHOxALTO: set_mode(m800x600); //esto funciona igual en DivGO
Y con 2 parámetros es igual que en Fenix: set_mode(800,600);
El tercer parámetro es el que deja de ser compatible con Bennu y Gemix, que no lo requiere al depender del color soportado por el navegador, por norma a 32bits. Pero se pueden cargar gráficos y fpgs de 8bits y 16bits sin problemas.
La función map_put_pixel() sigue existiendo pero a 32bits, por lo que no pinta con un número de paleta, en el listado de funciones está el ejemplo, lo mismo que map_get_pixel(). Ejemplo: map_put_pixel(fichero, graph, x, y,color); //en color puedes usar las funciones rgb(r,g,b), rgba(r,g,b,a), constantes de color predefinidos o un valor hexadecimal. :)

Un saludo.

Drumpi

Gracias, Amaka, y perdona que te esté dando la tabarra todo el rato. Los primeros pasos son duros, ya sabes ^^U
Si encima hace milenios que no toco DIV2, pues algunas cosas se olvidan o se mezclan, y como encima DivGo ha tomado cosas de otros lenguajes, pues es casi como empezar de cero.
Eso sí, me tienes que decir si has incorporado el sistema de multi-paletas de Bennu o si sólo sigue habiendo una única, porque si puedo usar una paleta por proceso, el poder elegir color para cada parte del cuerpo se me facilitaría enormemente (sobre todo porque map_put_pixel siempre ha sido, históricamente, una de las funciones más lentas del lenguaje... aunque podría usar la función de tintar, pero eso me limita a poder escoger un solo color y su sombra, y adiós a hacer camisetas del Betis, Deportivo, Barcelona... :D

Futu, ya estamos como siempre :D : si tu eres el grafista, tienes que ser el diseñador, sobre todo porque eres el que ha pedido el proyecto y eres el que conoce el programa que tratamos de imitar. Se supone que tú tomas las decisiones y yo te digo si se puede hacer o no, o en todo caso, tu debes proponer varias ideas y yo decirte cuáles se pueden hacer o cuales son más fáciles o lo que yo podría mejorar.
Cuando hicimos SBTime, vale, porque me tocó a mi el papel de diseñador (aun no sé si porque era mi idea  8) o porque saqué la pajita más corta  :o ), pero ahora te toca decidir los aspectos importantes, y el primero ya lo tienes sobre la mesa: la interfaz del editor de caras. Yo estoy siguiendo tu esquema, y los cambios que te propuse son para aumentar el número de elementos a usar, algo que no se había tenido en cuenta en tu diseño inicial. Aun no sé donde van a ir las herramientas, y cuanto más tardes en decidir una interfaz definitiva, más difícil va a ser aplicarle los cambios ;)
Siento si sueno muy brusco, pero tienes que espabilar un poco. El diseño de programas es muy divertido, pero también exige seriedad y disciplina en algunos aspectos ;)
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)

Futu-block

#23
no, el diseñar progmamas es una puta mierda, ahora entiendo al visual basic, es el maná...

Yo no tengo problemas en diseñarte el pregrama, eso si, lo vamos a cambiar a 1024x600, mas que ná porque los monitores ahora vienen hiper mega enormes. Ya veremos si vá a haber otras versiones en otros formatos y tal y tal

Cambiando de tema y si puedo preguntar esto aqui (y si no copio-pego en mi hilo de ''ayudarme'') yo programo con loop y eso de comprobar 25~50 veces al segundo en un programa que practicamente no variará sino clicas en algun sitio o arrastras como que no es muy util...

¿se puede poner algo como ''untill ... mouse.left'' o algo asi? o el untill tambien hace 25~50 comprobaciones al segundo??

Drumpi

Visual Basic no se libra del tema del diseño. Lo tienes hecho en el ordenador en menos tiempo, pero el dónde ir colocando cada cosa (y luego programar su funcionalidad), de eso no te libras: eso es el diseño del programa :D

Lo de la resolución tu verás, ten en cuenta que es muy probable que la gente use los móviles para eso... aunque ahora tienen una resolución bestial (aunque no en mi caso LOL). Creo que no lo he subido, pero la versión que tengo ahora reescala a la pantalla y se ve bastante bien en mi ordenador (1366*768 o algo así, pero hay que descontar la barra de Windows, las de los menús del navegador...).

Lo otro mejor abre un hilo, y explícate mejor porque no te pillo ^^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)

Drumpi

#25
Más problemas:

- He creado un FPG que descomprimido pesa 2'5MB, de 32bits con FPGEditor de DCelso. Write me chiva que se ha cargado (código de FPG = 1), pero no muestra ninguna imagen, y si intento abrirlo desde el inspector del navegador, se queda pensando indefinidamente.
- Graphic_info no me va. graphic_info(0, 0, G_WIDE) no me devuelve nada, literalmente, ya sea con el gráfico 0,0 o con otro cualquiera: cuando añado la línea:
write(0,10,20,0,"ancho pantalla: " + graphic_info(0, 0, G_WIDE));
No me escribe nada, ni siquiera la cadena inicial. Si lo pongo en un put:
put(file, 2, graphic_info(0, 0, G_WIDE) - 1, 0);
La imágen no se coloca.
- set_center no me modifica el centro del gráfico, al menos para los pngs cargados con load_fpg. Estos siguen teniendo el punto de control 0 en el centro de la imagen.

Llevo un rato liado con esto y no consigo que funcione. Voy a segir intentándolo, pero si necesitas que te envíe el código o el proyecto, me lo dices.

EDIT: Vale, retiro lo del set_center. Es la función PUT la que no respeta el nuevo centro de gráfico :D

EDIT2: ¡¡me han vuelto a desaparecer los procesos dummies!! Ya ni con loop frame; end se quedan.
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)

AmakaSt

Hola,

Graphic_info(0,0, G_WIDE); da error porque no existe el grafico, por esté error se detiene el programa, tengo que hacer que devuelva 0 o false

Lo mismo te está pasando con put(), prueba así: put(file, 2, graphic_info(file, 2, G_WIDE) - 1, 0);

Pásame el código para ver en que te puede estar fallando y que puedo solucionar.

Un saludo.


Drumpi

De acuerdo, te subo el proyecto aquí y te paso la contraseña del zip por privado.
Está como la última versión que tengo. Si tienes dudas de qué quería hacer, me lo preguntas. Es que ahora ando un poco liado y no me puedo detener en los detalles ^^U Sorry.
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)

Drumpi

Quote from: AmakaStTe pongo una captura, a mi me ha funcionado, lo de graphic_info() para el ancho de pantalla no lo acabo de entender. Si quieres saber el ancho del canvas, del navegador o de la pantalla del sistema operativo, existe la función get_browser() que te da este tipo de información.

Porque lo que necesito saber es el ancho y alto del canvas donde se ejecuta DivGo, o sea, la zona donde se reproduce, no el tamaño del navegador. Sé que su tamaño ahora es de 800x600 porque es lo que he puesto en el set_mode, pero si el día de mañana decido cambiarlo, prefiero hacerlo de este modo que usando constantes... o si al final decido que se pueda reescalar. Hasta ahora, esta ha sido siempre la única manera de saber las dimensiones del juego: mediante el tamaño del fondo de pantalla.

Y no es que no funcione: eso que te he pasado es la mejor forma de que funcionase, pero si sustituyes la linea 64 por la 63, y la 69 por la 68, las dos imágenes abandonan la posición en la que aparecen en la captura que has puesto, y se descentran.
Por otro lado, la función init_face_preview genera dos procesos "dummie", que deberían aparecer en el centro de la pantalla, como se ve en la imágen que puso futublog:

Faltan la cara y el pelo, y no aparecen en la lista de procesos activos :S

Y por eso te preguntaba tanto por el tema de los archivos que se descargan: en principio va a haber varios tipos de pelo, de cara, de nariz... Necesito que para este editor se descarguen todos (bueno, si son por bloques, mejor), pero luego tengo que hacer otro editor con las partes seleccionadas, y sólo quiero que se descargue una de las caras, uno de los pelos, una de las narices, una de las orejas... si todas comparten carpetas (como se ve en el zip que te he mandado), DivGo las va a descargar automáticamente, y quiero evitarlo, porque hoy son 10 ficheros de cada y en total son 2'5MB, pero dentro de un año lo mismo son 200 de cada y ya tendríamos que descargar 100MB, y no es aceptable :)
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)

FreeYourMind

la contraseña es meneamelaotravez