Eventos
Construct tiene una excelente interfaz gráfica que permite a los desarrolladores crear juegos con mínimo o ningún código. Los siguientes documentos revisarán cómo conectar tu juego a Basement.fun usando la hoja de eventos de Construct.Componentes Clave
Necesitarás agregar algunos objetos a tu proyecto para habilitar tu juego de Construct para interactuar con la plataforma Basement.fun.Para agregar objetos a tu proyecto ve a la Vista de Diseño, haz clic derecho en el diseño, selecciona Insertar nuevo objeto, y luego elige el objeto que quieres insertar en tu proyecto. Después de agregar el objeto, estará disponible en tu hoja de eventos.
Objeto Navegador
El objeto Navegador te permite escribir en la consola. No es necesario, pero será útil al verificar datos y depurar tu código.
Objeto AJAX
El objeto AJAX permite que tu juego interactúe con las APIs de B3.
- Solicitudes POST requieren que crees acciones separadas para cada parámetro de encabezado y una acción de post a URL para todos los parámetros del cuerpo
- Solicitudes GET requieren que combines todos los parámetros y valores que necesitas en una única URL para enviar la solicitud a la API
- Las respuestas de la API pueden ser referenciadas usando
AJAX.LastData
Objeto JSON
El objeto JSON permite que tu juego maneje respuestas JSON. Necesitarás analizar las cadenas JSON para hacer uso de los datos de respuesta.
Evento de Muestra
Este evento de muestra cubrirá la solicitud POST Set Scores detallada en las Especificaciones de la API de BSMNT.Solicitud de Muestra
1
Crear Función
Haz clic derecho en cualquier lugar de la hoja de eventos, crea una función y nómbrala SetScore.
2
Establecer Encabezado del Método de Servicio
Haz clic en añadir acción, selecciona AJAX, selecciona Establecer encabezado de solicitud.
- Campo de encabezado:
X-Service-Method
- Campo de valor:
setUserScore
3
Establecer Encabezado de Autorización
Añade otra acción AJAX y selecciona Establecer encabezado de solicitud nuevamente.
- Campo de encabezado:
Authorization
- Campo de valor:
Bearer <secreto del juego>
Reemplaza
<secreto del juego>
con tu actual token secreto del juego.4
Configurar Solicitud POST
Añade otra acción AJAX pero esta vez, selecciona Post a URL. Ingresa lo siguiente:
- Etiqueta:
setUserScore
- URL:
https://api.basement.fun/launcher
- Datos:
{"launcherJwt": "string", "nonce": "string", "score": 0}
- Método:
POST
Esta es una solicitud de muestra - asegúrate de reemplazar tus valores con variables que estén establecidas por eventos en tu juego.
Respuesta de Muestra
La respuesta de muestra se verá algo así:Respuesta de la API
Recuperando Datos
En Construct, vamos a recuperar el nonce de la respuesta, para que podamos usarlo para recuperar la puntuación en un momento posterior.1
Crear Variable Global
Haz clic derecho en cualquier lugar de la hoja de eventos y añade una variable global nombrada Nonce.
2
Añadir Evento Disparador
Añade un evento que sea disparado por tu juego.Ejemplo: Para capturar la puntuación del usuario cuando su bicicleta choca contra otra bicicleta, añade una condición en colisión con otro objeto al ciclista y establece el objeto a ciclista.
3
Llamar a la Función SetScore
Añade la acción, selecciona funciones, y selecciona SetScore.
4
Analizar Respuesta JSON
Añade una acción JSON, selecciona analizar, e introduce
AJAX.LastData
en el campo de cadena JSON.Esto capturará la respuesta de nuestra solicitud SetScore.
5
Extraer Valor de Nonce
Añade una acción sistema, selecciona establecer valor, elige la variable Nonce, e introduce
JSON.Get("newScore.nonce")
.¡Ahora tu variable Nonce está configurada con el nonce devuelto por la respuesta de la API!
Integración Completa
Siguiendo los mismos pasos, puedes crear eventos para cada punto final de la API revisando todos los parámetros y respuestas.Puntos Finales de la API Disponibles
Establecer Puntuación del Usuario
Establecer Puntuación del Usuario
Actualizar o establecer la puntuación de un usuario para las tablas de clasificación.Punto final:
Encabezados:
POST /launcher
Encabezados:
X-Service-Method: setUserScore
Obtener Puntuación del Usuario
Obtener Puntuación del Usuario
Recuperar la puntuación actual de un usuario.Punto final:
Encabezados:
GET /launcher
Encabezados:
X-Service-Method: getUserScore
Activar Motor de Reglas
Activar Motor de Reglas
Activar acciones en cadena basadas en eventos de juego.Punto final:
Encabezados:
POST /launcher
Encabezados:
X-Service-Method: triggerRulesEngine
Mejores Prácticas
Manejo de Errores
Siempre verifica el campo
success
en las respuestas de la API y maneja los errores de manera adecuada.Gestión de Variables
Usa las variables globales de Construct para almacenar datos importantes como tokens JWT y puntuaciones de usuarios.
Consola de Depuración
Usa el objeto Navegador para registrar información importante en la consola durante el desarrollo.
Límites de Tasa de la API
Ten en cuenta los límites de tasa de la API y evita hacer demasiadas solicitudes en rápida sucesión.
Próximos Pasos
Documentación de la API de BSMNT
Referencia completa de la API para todos los puntos finales disponibles
Guía del Lanzador de Juegos
Aprende cómo integrarte con el lanzador de juegos de BSMNT
Documentación de Construct
Documentación oficial de Construct 3 y tutoriales
Proyectos de Ejemplo
Proyectos de muestra usando integración de BSMNT
Solución de Problemas
Solicitudes AJAX no funcionan
Solicitudes AJAX no funcionan
- Asegúrate de haber añadido el objeto AJAX a tu proyecto
- Verifica que todos los encabezados requeridos estén configurados correctamente
- Verifica que tu secreto de juego sea válido
- Asegúrate de que la URL del punto final de la API sea correcta
Errores de análisis JSON
Errores de análisis JSON
- Confirma que el objeto JSON esté añadido a tu proyecto
- Verifica que
AJAX.LastData
contenga JSON válido - Usa el objeto Navegador para registrar la respuesta cruda para depuración
Problemas de autenticación
Problemas de autenticación
- Verifica que tu token JWT del lanzador sea válido
- Comprueba que el encabezado de Autorización esté correctamente formateado
- Asegúrate de que tu secreto de juego no haya expirado