Consultamos y agregamos registros en una base de datos de un servidor.
El servidor
Comenzamos por crear una base de datos, en este caso es una base llamada: "videojuego".
Ahora creamos una tabla de nombre: "record".
En la tabla ingresamos 3 campos:
id: como llave primaria
nombre, como varchar
puntucion, como int.
Ingresamos varios registros de prueba a la tabla.
Descargamos, ponemos en una carpeta llamada "Cx4a" dentro del servidor, editamos para ingresar nombre de usuario, clave de MySql entre otros datos.
http://www.mediafire.com/file/a6c7048tmz2ksir/Cx4a.zip/file
Godot
Tabla
Comenzamos por la tabla, en una escena colocamos un nodo: "ScrollContainer", al que le damos un tamaño de 300 x 200
Ahora como hermano de "ScrollContainer" colocamos un: "VBoxContainer", en propiedades, nos bajamos hasta "SizeFlags" en donde marcamos la casilla de "Expand".
Ponemos un "HBoxContainer" como hijo de "VBoxContainer", en "Custom Constants" marcamos la casilla de: "Separation".
Colocamos como hijo de "HBoxContainer" un nodo "Label", le ponemos un texto cualquiera, en "Align" y en "Valign" ponemos la opción de: "Center".
Nos deslizamos hasta "Rect" para establecer un "Min Size" en "Y" de: "30".
Desplegamos la banda de "Size Flags", marcamos la casilla de "Expand", bajamos el valor de "Stretch Ratio" a "0.4".
Ahora en "Custom Style" colocamos un "Nuevo StyleBoxFlat".
Le damos color.
Duplicamos el primer "Label"
Cambiamos el texto.
En propiedades dentro de: "Size Flags" elevamos el valor de "Stretch Ratio" a "0.6".
Ahora duplicamos el primer "HBoxContainer".
Cambiamos el texto de las etiquetas.
Cambiamos el "Min Size" a "0".
Desmarcamos la casilla de: "Normal".
Renombramos los nodos con nombres mas cortos.
La escena Principal
En una nueva escena colocamos los nodos:
"Control", como nodo raiz, le damos el nombre de: "Bdd"
"HTTPRequest", como hijo de "Bdd"
"HTTPRequest", como hijo de "Bdd"
"Timer", como hijo de "Bdd"
"HBoxContainer", como hijo de "Bdd", lo renombramos a: "Caja"
"LineEdit", como hijo de "Caja", lo renombramos a: "Puntos"
"LineEdit", como hijo de "Caja", lo renombramos a: "Nombre"
"Button", como hijo de "Caja", lo renombramos a: "Enviar"
Colocamos un script en el nodo raíz.
Conectamos la señal "request_completed" a la función "_consulta_servidor".
Ahora seleccionamos el segundo "HTTPRequest" para conectar la señal "request_completed" a la función "_registro_servidor".
En el nodo "Timer" marcamos la casilla de "Autostart".
Conectamos la señal "timeout" a la función "tiempo".
Sigue el nodo "Enviar", en este conectamos la señal "pressed" a la función "enviar".
Finalmente enlazamos la tabla anteriormente creada y la colocamos.
Ahora el contenido del script es:
¡Listo!
https://www.mediafire.com/file/37164ctopqt788p/Bdd.zip/file
Nota:
El servidor no esta devolviendo un objeto JSON esta devolviendo solo texto (una cadena), en el mismo archivo PHP se encuentra la forma de hacer el cambio.
La URL que manda godot al servidor no esta codificada.
Si deseas conectarte a un servidor HTTPS lee el siguiente documento:
https://docs.godotengine.org/es/latest/tutorials/networking/ssl_certificates.html#doc-ssl-certificates
La documentación oficial dice que en caso de que el servidor devuelva un objeto JSON, debe ser recibido de la siguiente forma, así devuelve un diccionario.
Pero por alguna extraña razón a mi no me devolvió un Diccionario, me devolvía una Cadena y cuando intentaba convertir esta Cadena a Diccionario me salia el siguiente Error:
Error parsing JSON at line 0: Unexpected character.
El servidor
Comenzamos por crear una base de datos, en este caso es una base llamada: "videojuego".
Ahora creamos una tabla de nombre: "record".
En la tabla ingresamos 3 campos:
id: como llave primaria
nombre, como varchar
puntucion, como int.
Ingresamos varios registros de prueba a la tabla.
Descargamos, ponemos en una carpeta llamada "Cx4a" dentro del servidor, editamos para ingresar nombre de usuario, clave de MySql entre otros datos.
http://www.mediafire.com/file/a6c7048tmz2ksir/Cx4a.zip/file
Godot
Tabla
Comenzamos por la tabla, en una escena colocamos un nodo: "ScrollContainer", al que le damos un tamaño de 300 x 200
Ahora como hermano de "ScrollContainer" colocamos un: "VBoxContainer", en propiedades, nos bajamos hasta "SizeFlags" en donde marcamos la casilla de "Expand".
Ponemos un "HBoxContainer" como hijo de "VBoxContainer", en "Custom Constants" marcamos la casilla de: "Separation".
Colocamos como hijo de "HBoxContainer" un nodo "Label", le ponemos un texto cualquiera, en "Align" y en "Valign" ponemos la opción de: "Center".
Nos deslizamos hasta "Rect" para establecer un "Min Size" en "Y" de: "30".
Desplegamos la banda de "Size Flags", marcamos la casilla de "Expand", bajamos el valor de "Stretch Ratio" a "0.4".
Ahora en "Custom Style" colocamos un "Nuevo StyleBoxFlat".
Le damos color.
Duplicamos el primer "Label"
Cambiamos el texto.
En propiedades dentro de: "Size Flags" elevamos el valor de "Stretch Ratio" a "0.6".
Ahora duplicamos el primer "HBoxContainer".
Cambiamos el texto de las etiquetas.
Cambiamos el "Min Size" a "0".
Desmarcamos la casilla de: "Normal".
Renombramos los nodos con nombres mas cortos.
La escena Principal
En una nueva escena colocamos los nodos:
"Control", como nodo raiz, le damos el nombre de: "Bdd"
"HTTPRequest", como hijo de "Bdd"
"HTTPRequest", como hijo de "Bdd"
"Timer", como hijo de "Bdd"
"HBoxContainer", como hijo de "Bdd", lo renombramos a: "Caja"
"LineEdit", como hijo de "Caja", lo renombramos a: "Puntos"
"LineEdit", como hijo de "Caja", lo renombramos a: "Nombre"
"Button", como hijo de "Caja", lo renombramos a: "Enviar"
Colocamos un script en el nodo raíz.
Conectamos la señal "request_completed" a la función "_consulta_servidor".
Ahora seleccionamos el segundo "HTTPRequest" para conectar la señal "request_completed" a la función "_registro_servidor".
En el nodo "Timer" marcamos la casilla de "Autostart".
Conectamos la señal "timeout" a la función "tiempo".
Sigue el nodo "Enviar", en este conectamos la señal "pressed" a la función "enviar".
Finalmente enlazamos la tabla anteriormente creada y la colocamos.
Ahora el contenido del script es:
¡Listo!
https://www.mediafire.com/file/37164ctopqt788p/Bdd.zip/file
Nota:
El servidor no esta devolviendo un objeto JSON esta devolviendo solo texto (una cadena), en el mismo archivo PHP se encuentra la forma de hacer el cambio.
La URL que manda godot al servidor no esta codificada.
Si deseas conectarte a un servidor HTTPS lee el siguiente documento:
https://docs.godotengine.org/es/latest/tutorials/networking/ssl_certificates.html#doc-ssl-certificates
La documentación oficial dice que en caso de que el servidor devuelva un objeto JSON, debe ser recibido de la siguiente forma, así devuelve un diccionario.
Pero por alguna extraña razón a mi no me devolvió un Diccionario, me devolvía una Cadena y cuando intentaba convertir esta Cadena a Diccionario me salia el siguiente Error:
Error parsing JSON at line 0: Unexpected character.
Comentarios
Publicar un comentario