Div Games en Html5 y Canvas

Started by AmakaSt, September 07, 2012, 03:28:01 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

AmakaSt

#540
Hola oskarg,

1. Sí se debe descomprimir y sustituir el index.html por el que se incluye en el .zip y todas las carpetas de tu proyecto (imágenes, sonidos, scripts) dentro de resources/app. Una vez hecho eso al pulsar sobre electron.exe se iniciara tu juego. Luego ya es cambiar el nombre del ejecutable y el icono.

2. Ok, para revisión. :)

3. Suelo actualizar a las últimas versiones tanto de Firefox, como de Chrome y Vivaldi. En caso de Firefox la v63. Lo del renderizado de letras es raro, parece ser cosa de la tarjeta gráfica, yo hago pruebas en Windows 7 y Windows 10 con esos 3 navegadores.

4. Hay un ejemplo en la carpeta de ejemplos que se llama ejemplo_external_data.prg que va acompañado de guardar_datos_bbdd.php, donde se muestra como envía y recoge datos con php. Luego desde php es hacer que guarde la información en un txt o base de datos sql.

5. Ejemplo input: https://www.divgo.net/c-4c831644

6. La variable tone es como las variables alpha, size, flags, etc. No cambian el grafico al ponerlo en un put_screen(), con new_map() usando el color rgba() aplicando un alpha bajo debería de funcionarte. Para oscurecer una escena de un scroll, puedes cambiar el alpha de los scroll, por el momento. Más adelante quiero añadir más variables scroll, tengo que mirarlo bien pero tal vez se le podría aplicar una variable como tone.
Aquí te dejo un ejemplo: https://www.divgo.net/c-b4a8be6e (he visto que hay un bug en new_map() con el alpha, este ejemplo te será útil para la próxima versión)

El resto intentaré responderlos esta noche...

oskarg

#541
Hola ,
publico beta02 de mi juego, falta por implementar y acabar bastantes cosas.....se vera que hay un icono de una calavera,pues bien,habra mas iconos de este tipo que haran ciertas cosas,pero todavia no esta implementado...tampoco las tablas....etc.pero ya es bastante jugable,salvo un bug que tengo localizado.
Pasalo bien ahh y gracias amaka por poder programar mi juego de Amstrad que jugue en mi infancia,con la pantalla de fosforo verde XD:

Leer LEEME_ANTES .txt para saber que cosas faltan por hacer ...
pulsa z para disparar..esc para salir del juego.
AH!! ten buena punteria ,pues si fallas veras que pasa y para evitarlo acierta 3 veces al blanco!!!.

se ve olvidaba alguna manera de encriptar los graficos amaka?¿?lo expreso porque en el futuro si hago algo con nivel,no es cuestion de verlos tan facilmente.

http://www.mediafire.com/file/776by6x9xstjygc/MEGAbeta02.zip/file

Futu-block

una buena solución es hacerlo por partes el grafico de pantalla

oskarg

#543
Bueno habia pensado en el futuro hacer un ejemplo con tiles,pero aun asi,no es cuestion de que alguien vaya a la carpeta y lo vea directamente una solucion seria facil poder añadir una contraseña a la carpeta de graficos  y si no la introduces pues no se se visualiza,pero ni idea como se hace tal cosa o que el propio divgo encriptara los graficos....

oskarg

Hola amaka,una sugerencia para depurar codigo y ver que pasa...el ANALIZE PROGRAM esta muy bien,pero ocupa toda la pantalla y no visualizo lo que esta pasando ,estaria mucho mejor que se viera la pantalla del juego y abajo el analize program..pues como está montado queda muy limitado.

AmakaSt

Hola, sigo con los puntos:

8. En Div GO los scrolls son transparentes y puede mostrarse otra región por detrás, puedes probar en incluir una animación para el fondo.

9. Me lo apunto como sugerencia. :)

10. Supongo que dependerá del tamaño o el número de músicas y sonidos que vayas a cargar. Cada nuevo tema que sonara en el juego, internamente es un elemento de audio que se genera y queda oculto en el navegador. El elemento canvas por sí solo no genera ningún sonido, es para gráficos 2d y WebGL, así que cada cosa que se añada al juego puede ralentizar un poco más. Yo no noto mucha ralentización, por ejemplo Dr. Malvado tiene bastantes sonidos y va bastante bien. También dependerá del navegador y del equipo en donde se esté ejecutando.

AmakaSt

Quote from: oskarg on November 19, 2018, 03:14:37 PM
Hola ,
publico beta02 de mi juego, falta por implementar y acabar bastantes cosas.....se vera que hay un icono de una calavera,pues bien,habra mas iconos de este tipo que haran ciertas cosas,pero todavia no esta implementado...tampoco las tablas....etc.pero ya es bastante jugable,salvo un bug que tengo localizado.
Pasalo bien ahh y gracias amaka por poder programar mi juego de Amstrad que jugue en mi infancia,con la pantalla de fosforo verde XD:

Leer LEEME_ANTES .txt para saber que cosas faltan por hacer ...
pulsa z para disparar..esc para salir del juego.
AH!! ten buena punteria ,pues si fallas veras que pasa y para evitarlo acierta 3 veces al blanco!!!.

se ve olvidaba alguna manera de encriptar los graficos amaka?¿?lo expreso porque en el futuro si hago algo con nivel,no es cuestion de verlos tan facilmente.

http://www.mediafire.com/file/776by6x9xstjygc/MEGAbeta02.zip/file
Toma ya!! Está genial!! Muy chulo!! Yo este juego lo había programado cuando era un crio, lo tenia de código de ejemplo en un manual de Basic de mi CPC464! :D

He visto que has utilizado Electron, he puesto unos ejemplos con los que puedes cambiar el tamaño de la ventana del ejecutable y adaptarlas al juego, también puedes adaptar con set_mode() el tamaño del juego a las dimensiones de la ventana del navegador, con las variables: view_full_size_scale, view_full_aspect_ratio, view_full_amplitude

Quedaría así: set_mode(320, 240, view_full_size_scale);

Existe para electron varios modos de "encriptar", uno de ellos es incluir todo el contenido de tu juego en un archivo .asar (o sea, ya no solo los gráficos, sino todo el contenido):
https://electronjs.org/docs/tutorial/application-packaging

Un saludo.

oskarg

#547
Hola amaka,
Una sugerencia,esto ya lo incluye otros lenguajes para no tener que hacer tropecientos writes .......aunque no se si es factible
implementarlo.

hacer \n o salto de linea en el mismo write(0,100,100,"primera linea"\n"Segunda linea...")....etc

O bien el write_in_map que se copiara realmente en un grafico que hemos definido ,ejemplo

graph=grafico elegido donde copio las letras...
x=del grafico donde lo situo.
y=del grafico donde lo situo
write_in_map(fichero,grafico elegido donde copio las letras,cordenadaxde la posicion de las letras,coordenaday de la posicion delas letras,tipo de centrado,"soy la primera linea");
write_in_map(fichero,grafico elegido donde copio las letras,cordenadaxde la posicion de las letras,coordenadayde la posicion de las letras+20,0,"Soy la segunda linea");
loop
x=rand(0,100);
y=rand(0,100);//coloco el grafico aleatoriamente;
frame;
end

Y de esta forma podria hacer muchos efectos,muy simples con las letras........
UN MOMENTO QUE HE VISTO UN EJEMPLO muy practico de write_in_map Y QUIZAS LO SOLVENTE ....luego te expreso....
VALe ya lo he solventando aunque mi sugerencia sigue en pie,pues solo de esta manera utilizaria un solo proceso con ese nuevo sistema de write_in_map que he puesto de ejemplo,no tropecientos cuantas lineas quisiera hacer..


ahh!!! me alegro que te hayas recordado de tu cpc,yo tenia el de 128k XD.pero los juegos eran los mismos .
Un saludo

AmakaSt

#548
Hola oskarg,

Aquí te dejo un pequeño ejemplo para poner un nombre por teclado en vez de por input(): https://www.divgo.net/c-684bfd76

Se puede hacer de muchas formas lo de poner nombre en un juego, en el listado de variables hay otro ejemplo que funciona con las key() para detectar que tecla estas pulsado y si coincide con la letra.

Sobre los saltos de línea cree un nuevo write() con soporte a tags html, ejemplo de write_html(): https://www.divgo.net/c-551fb4ad
Y otro ejemplo más de write_html(): https://www.divgo.net/c-bb44c52e

En este caso los saltos de línea es "<br>".

Un saludo.

oskarg

#549
Hola amaka....
1.Si utilizo la version de input,del ejemplo,como puedo guardar el string en una variable.no hay forma aunque haga variable=name.
2.Con scan_code no tengo ese problema,pero a menudo no me escribe lo que tecleo...
3.Otra cosa hay alguna manera que no me haga suavizado de las letras cuando yo quiera?¿?.las letras siempre estan en un nivel superior de los graficos?¿?¿?


AmakaSt

Hola oskarg,

1. El valor del input se pasa por offset, en el ejemplo la variable nombre es la que guarda el valor del escrito en el input. Cuando has pulsado en el input el foco del teclado queda en el input y debes de volver a pulsar la pantalla para volver a obtener el control de teclado, lo suyo es crear un gráfico de un botón para forzar que el usuario vuelva a pulsar en pantalla.

2. Si no escribe puede que sea por el bloqueo con la variable pulsado que puse, es un ejemplo sencillo y lo hice sin mirar mucho, prueba en cambiarlo o añadir otro tipo de control de pulsado para que no se escriba muchas veces al pulsar una sola vez.  :)

3. Pues se puede usando fuentes fnt o suavizando la pantalla de juego que suaviza toda la pantalla, con screen_smooth(false). Sí, creo recordar que en Div era así, los textos estaban siempre en una capa por encima de screen y de scroll, salvo write_in_map() que aplicado al graph del proceso va con la z del mismo.

Un saludo.

AmakaSt

Otro ejemplo de scan_code con el control de tecla pulsada algo mejor, a ver que tal: https://www.divgo.net/c-67a78636

oskarg

Muchas gracias Amaka....estoy probando cosas y haciendo mi scan_code personalizado ...cuando lo termine lo paso,pues yo no tengo tanto conocimiento como tu...lo expreso para si lo ves de utilidad añadirlo como ejemplo y lo puedas simplificar,pues soy horrible programando...
Añado ejemplo de concatenar palabras que no tiene la documentancion... ...muy potente para que lo que pretendo hacer......

program ejemplo_strcat;
global
   
texto1="la casa de tio tom";
texto2="es bien grande";
texto3=" ";
        final="";
begin
    texto3=strcat(texto1,texto3);//añado un espacio
    final=strcat(texto3,texto2);//escribo la frase concatenada completa.
   
 
  text_color=rgb(255,255,255);
text_size = 70;
  write(0, 320, 120,  4,  final ); //text with spaces

loop
  frame;
  end
end


Hay cosas como esta  de strcat que no tienen ejemplo,si quieres a poco a poco te voy dando algunos y de ese modo se rellena la documentacion ...aunque hay otras funciones que ni idea de como funcionan y hacer el dichoso ejemplo.
Cuando termine un par de cosas ,espero hoy o mañana,pues tengo fiesta,publico la beta siguiente XD:

AmakaSt

Para concatenar palabras en Div GO no es necesaria la función strcat(), directamente escribes: final = texto1 + " " + texto2; y ya lo tendrías. Aquí el ejemplo: https://www.divgo.net/c-7c9bf743

oskarg

Hola amaka,
te muestro un error que me provoca  divgo
    write_int(0,100,85,4,offset TABLA_R[i+1]);  me expresa que la variable no esta definida...es a raiz de querer sumar +1.No me deja poner parametros