sugerencias para divgo del pesado de hokuto

Started by hokuto40, April 10, 2019, 09:36:30 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

hokuto40

Llevo tiempo con ganas de usar divgo y ver las diferencias que tiene con los otros diviike,incluso me baje unos videotutoriales que me encontre en youtube para empezar con lo basico.

El problema que tengo es que mi ordenador se come un buen trozo de la interfaz de divgo, y no veo parte de la izquierda y derecha de la interfaz,ademas de que no se puede aumentar a un buen tamaño las letras del editor de codigo.

Ya me comentastes algunas cosas para cambiar la resolucion pero no cambio nada y siguio igual,entonces se me ha ocurrido algo.

Podrias simplificar la interfaz para que solo aparezcan los botones que te llevaran a cada editor,por ejemplo...

Tendriamos el boton del editor de fpg que al pulsarlo te llevaria a otra  ventana  con el editor.De esta forma lo podria maximizar y poner toda la pantalla con este editor y tendrias mas espacio para añadirle mas opciones si tu lo ves adecuado.esto seria igual para el resto de editores,editor de codigo,fnt etc..

O si no quieres crear otra ventana,podrias hacerlo en la misma,por ejemplo...Si pulsas el boton para el editor de codigo se borraria toda la interfaz y apareceria el edito de codigo que tambien ocuparia toda la ventana y habria otro boton para ir para atras.

Seria algo parecido a lo que trae gamemaker,tiene botones para que se habra cada editor por separado y es muy comodo,miralo por ti mismo.

No se si a ti se te ocurre otra cosa o a oscarG.

AmakaSt

Hola hokuto40,

¿Qué resolución de pantalla tienes? En principio la interfaz de Div GO es responsive y se adapta a la resolución de dispositivos móviles. También está la opción de crear un tema nuevo para bajas resoluciones, esto se hace por css, agregándolo en la carpeta temas. Cualquiera podría crear su propio tema y compartirlo.

El tema de abrir ventanas del navegador cada vez que clicas una opción no es muy sutil, seria abrir modales dentro de la misma ventana y apartarlas como en Div2.

Hace tiempo que quiero cambiar la interfaz, sobre todo para la futura versión 2.0.

Un saludo.

hokuto40

#2
Resolucion 800x600 y con las letras aumentadas,lo necesito por problemas de vision en un ojo.

He mirado a una resolucion a 1024x768 y se ve todo pero muy pequeño y ademas mi monitor a esa resolucion no se ve bien.A la izquierda aparecen los procesos que vas programando en el editor,seria adecuado que ese trozo se pudiera ocultar para tener mas espacio para el editor de codigo.

No tengo ni idea de css,te pongo una imagen para que lo veas mas claro.

AmakaSt

Estas con la versión ejecutable, aquí te adjunto el archivo settings.json con una configuración que creo te puede ir bien.
Sustituyelo por el que tienes en la carpeta donde se encuentra el ejecutable y a ver que tal te va ahora.

hokuto40

#4
He probado el archivo y sigue igual,faltan muchas cosas que no salen en la interfaz,he probado la version web y reduciendo el zoom al 70 % se ve todo pero muy pequeño,pero a mi no me interesa la version web,yo uso la version ejecutable.

Es muy raro esto porque no me ha pasado con ningun programa,creo que lo mejor sera que cada editor este en pestañas separadas.

Una pregunta,¿puedo usar el fpg y el fnt editor de gemix con divgo? , de esta forma puedo estar trasteando un poco con divgo hasta que me des una solucion.

Te vuelvo a poner la imagen actualizada para que veas que sigue igual.

AmakaSt

QuoteUna pregunta,¿puedo usar el fpg y el fnt editor de gemix con divgo? , de esta forma puedo estar trasteando un poco con divgo hasta que me des una solucion.
Div GO es compatible con los formatos fpg, fnt y map de Div2 (8bits), Fenix (16bits) y BennuGD (32bits). Mi propósito era que fuera compatible con todos los formatos Divlikes, pero no pudo ser. Por lo que usando los editores de Gemix no te funcionaria la carga de esos ficheros en Div GO.

Aunque yo te recomendaría mejor que uses formatos estándares para gráficos (png, bmp o gif), fuentes (ttf o otf) y música (mp3 o ogg).

hokuto40

Ok,entonces puedo usar los editores de bennugd porque usar el formato png me daria bastantes problemas para realizar animaciones,pero ya te dire mas adelante alguna sugerencia para funciones que se encarguen de manejar la animacion.

Pero me he encontrado con otro problema,no se ve los botones de abrir y guardar el prg y eso me impide hacer cualquier cosa,en fin....de momento no puedo hacer nada.

Voy a seguir dandote sugerencias.

hokuto40

He visto que solo tienes la funcion key() si no me equivoco,aqui es fundamental que introduzcas otras dos.

keyPressed() //cuando pulsas la tecla solo una vez

keyReleassed() //cuando sueltas la tecla


AmakaSt

Lo apunto, pero será más estilo Div, por ejemplo: key_on() key_out()

hokuto40

#9
Los nombres que te doy es solo por poner algo,tu puedes poner el nombre que te de la gana que para eso es tu engine,yo encantado de que introduzcas las sugerencias. ;)

Pues vamos a por mas,estas sugerencias que doy son tambien validas para bennugd y pixtudio.

He mirado las funciones de aleatoriedad y por lo que veo solo tienes rand(),estaria muy bien que añadieras esta.

rand_chooise(1,2,3,4,5,6,7,8,9)


Esta funcion es para colocar muchos valores y que elija aleatoriamente uno de ellos cada vez,seguramente me diras que se puede hacer con un array pero esto es mas comodo y sencillo y creo que estaria bien.

Por cierto,he mirado para cambiar el color del grafico y se usa esta funcion.

color_in_map(fichero, grafico,color)


No seria mejor crear una variable interna para los procesos,seria mas corto y mejor.

tint = red


Tendriamos esta varible y las constantes para los colores,la funcion esta bien pero creo que esto es mejor.

hokuto40

#10
Seguimos con mas sugerencias. ;D

He mirado las funciones para manejar el tiempo y tienes timer[] que no se si se pondra añadir mas de 9 y tienes time() que no se muy bien que uso tiene.Yo añado otra sacada de contruct 2.

wait(tiempo) //tiempo en segundos o lo que tu quieras


Esta funcion sirve para esperar un tiempo antes de que pase algo y se pueden colocar todas las que quieras sin limite,pero te pongo un ejemplo para que sea mas claro.

if(colisiona con bomba)
   activar bomba
   wait(3)
   explota bomba
   wait(3)
   mostrar texto de juego finalizado
end


Aqui hay una colision y se activa la bomba y luego se usa wait() para esperar
los segundos colocados antes de que pase lo siguiente,esto no para el juego ,es como si fuera un contador interno.

Te comento otra sugerencia.

friction = 5


Esta variable seria una variable interna del proceso y serviria para ir frenando poco a poco el movimiento de cualquier objeto,si el numero de la variable es mas alto mas rapido se parara.Podria servir para ir frenando una nave poco a poco o para disminuir la velocidad de un personaje en un juego de plataformas .

hokuto40

Hola amakast,no se si estas viendo las sugerencias pero yo voy a seguir por que si no se me olvidan.

He mirado alguna funcion que me sirva para crear barras de vida y aunque he encontrado algo,le faltan parametros y hay que usarlas con define region y ya son muchas cosas.

Lo mejor es crear una funcion como la que trae gamelibzero de erkozone ,que es la que yo utilizo para la barra de vida.Esta funcion es screenDrawGraphic(),pero te pongo una version un poco mas completa.

        drawGraphic(grafico,x,y,,angle,punto de centrado,sizeX,sizeY,alpha)
        punto de centrado = left,right,center//constantes para usar


La mayoria de parametros estan claros,pero el punto de centrado es para colocar su punto y que la barra vaya desapareciendo como en cualquier juego.Yo utiliza el parametro sizeX para ir reduciendo la barra.

Esta funcion se puede utilizar para crear un grafico y lo bueno es que se utiliza en dentro de un proceso,por lo que se puede tener el grafico del proceso y el grafico de esta funcion que hace de vida o de lo que quiera.Yo lo he utilizado en mi juego de naves y hace de barra de vida de los jefes.

Ahora te comento otra sugerencia,el fade() esta muy chulo y no es dificil de usar pero hay que crearlo y luego comprobarlo y luego volver a hacerlo para que aparezca la pantalla,muchas cosas para algo tan simple.

Por eso se me ha ocurrido que podrias hacerlo todo de golpe con una sola funcion.

fade_especial(tiempo,tipo,color)
tipo = para distintos tipos de fundido


Solo habria que poner esta funcion y se encargaria de hacerlo todo automaticamente,haria el fundido y luego automaticamente volveria a mostrar la pantalla.Tenemos el tiempo,el color y el tipo de fundido,por si te apetece en un futuro meter otros tipos de fundido.

AmakaSt

Quote from: hokuto40 on April 12, 2019, 03:43:44 PM

He mirado las funciones de aleatoriedad y por lo que veo solo tienes rand(),estaria muy bien que añadieras esta.

rand_chooise(1,2,3,4,5,6,7,8,9)


Esta funcion es para colocar muchos valores y que elija aleatoriamente uno de ellos cada vez,seguramente me diras que se puede hacer con un array pero esto es mas comodo y sencillo y creo que estaria bien.

Por cierto,he mirado para cambiar el color del grafico y se usa esta funcion.

color_in_map(fichero, grafico,color)


No seria mejor crear una variable interna para los procesos,seria mas corto y mejor.

tint = red


Tendriamos esta varible y las constantes para los colores,la funcion esta bien pero creo que esto es mejor.
Hola hokuto40,

Existe qsort(), que puedes ordenar aleatoriamente un struct y añadirle los valores que tu quieras. Por cierto, qsort() fallo en alguna versión remota y estará corregida en la 1.20.

Sobre la variable tint... existen las variables tone, blur, grayscale, sepia, saturate, invert, brightness... lo he intentado y créeme, si pudiera cambiar el color del gráfico con un color indicado desde una variable, ya existiría. :P

Quote from: hokuto40 on April 13, 2019, 09:42:00 AM
Seguimos con mas sugerencias. ;D

He mirado las funciones para manejar el tiempo y tienes timer[] que no se si se pondra añadir mas de 9 y tienes time() que no se muy bien que uso tiene.Yo añado otra sacada de contruct 2.

wait(tiempo) //tiempo en segundos o lo que tu quieras


Esta funcion sirve para esperar un tiempo antes de que pase algo y se pueden colocar todas las que quieras sin limite,pero te pongo un ejemplo para que sea mas claro.

if(colisiona con bomba)
   activar bomba
   wait(3)
   explota bomba
   wait(3)
   mostrar texto de juego finalizado
end


Aqui hay una colision y se activa la bomba y luego se usa wait() para esperar
los segundos colocados antes de que pase lo siguiente,esto no para el juego ,es como si fuera un contador interno.

Te comento otra sugerencia.

friction = 5


Esta variable seria una variable interna del proceso y serviria para ir frenando poco a poco el movimiento de cualquier objeto,si el numero de la variable es mas alto mas rapido se parara.Podria servir para ir frenando una nave poco a poco o para disminuir la velocidad de un personaje en un juego de plataformas.

wait() sería lo mismo que usar frame():


if(colisiona con bomba)
   activar bomba
   frame(300);
   explota bomba
   frame(300);
   mostrar texto de juego finalizado
end

Lo de la variable friction no me ha quedado muy claro.

AmakaSt

Quote from: hokuto40 on April 14, 2019, 09:17:09 AM
Hola amakast,no se si estas viendo las sugerencias pero yo voy a seguir por que si no se me olvidan.

He mirado alguna funcion que me sirva para crear barras de vida y aunque he encontrado algo,le faltan parametros y hay que usarlas con define region y ya son muchas cosas.

Lo mejor es crear una funcion como la que trae gamelibzero de erkozone ,que es la que yo utilizo para la barra de vida.Esta funcion es screenDrawGraphic(),pero te pongo una version un poco mas completa.

        drawGraphic(grafico,x,y,,angle,punto de centrado,sizeX,sizeY,alpha)
        punto de centrado = left,right,center//constantes para usar


La mayoria de parametros estan claros,pero el punto de centrado es para colocar su punto y que la barra vaya desapareciendo como en cualquier juego.Yo utiliza el parametro sizeX para ir reduciendo la barra.

Esta funcion se puede utilizar para crear un grafico y lo bueno es que se utiliza en dentro de un proceso,por lo que se puede tener el grafico del proceso y el grafico de esta funcion que hace de vida o de lo que quiera.Yo lo he utilizado en mi juego de naves y hace de barra de vida de los jefes.

Ahora te comento otra sugerencia,el fade() esta muy chulo y no es dificil de usar pero hay que crearlo y luego comprobarlo y luego volver a hacerlo para que aparezca la pantalla,muchas cosas para algo tan simple.

Por eso se me ha ocurrido que podrias hacerlo todo de golpe con una sola funcion.

fade_especial(tiempo,tipo,color)
tipo = para distintos tipos de fundido


Solo habria que poner esta funcion y se encargaria de hacerlo todo automaticamente,haria el fundido y luego automaticamente volveria a mostrar la pantalla.Tenemos el tiempo,el color y el tipo de fundido,por si te apetece en un futuro meter otros tipos de fundido.
Existe en Div GO la función texture_in_map(), aquí un ejemplo para una barra de vida: https://www.divgo.net/c-8285dfe9

Sobre las fade, Div GO soporta también fade con un gráfico de entrada y salida: fade_in() y fade_out(); en el listado de funciones esta con ejemplos. :)

Lo del tipo o estilo de fundido me lo apunto, como una futura variable global que afecte a las fade_on() y fade_off().

Un saludo.

hokuto40

Hola amakast.

Lo de friction es como la friccion,es una fuerza invisible que se le aplica al objeto para que se vaya frenando poco a poco y no de golpe.Ejemplo lo tienes en el mario,que no se para de golpe.

Lo de la barra de vida pues esta muy bien texture_in_map() pero he visto mucho calculo hay y ademas hay que crear un proceso aparte.

Yo me refiero a esto.

process nave()
private vida = 100;
begin
   graph = 1;
   x = 100;
   y = 100;
   drawGraphic(grafico=2,x,y,,angle,punto de centrado,sizeX=vida,sizeY,alpha)
    drawGraphic(grafico=2,x,y,,angle,punto de centrado,sizeX=vida,sizeY,alpha)
   loop
      vida--;
      frame;
   end
end

Con esto podemos tener muchos graficos en un solo proceso y es mucho mas sencillo de usar que el tuyo.

Lo del wait() pues poner frame(300) no ralentiza el juego o lo para hasta que termina.No es mejor tener una funcion propia para esto como si fuera un contador interno que tu activas cuando quieres.