El minitablero muestra a un jugador una vista de su propio tablero. Los marcadores de impacto muestran que el enemigo atacó una casilla del tablero y destruyó un peón en ella. Los marcadores de fallo muestran que el enemigo atacó una casilla del tablero, pero no golpeó nada.
El minitablero es una malla estática que se coloca en relación con la cámara de juego, de modo que aparece como parte de la interfaz del juego. Para colocar el minitablero, hay que tener en cuenta algunas cosas:
La transformación de la cámara en el juego.
La distancia de desfase entre el minitablero y la cámara.
El tamaño de la cuadrícula del tablero.
La malla estática que se utilizará para el minitablero.
Se puede acceder a la transformación de la cámara desde la cámara del juego, así que añade una referencia a la cámara del juego. En cuanto al segundo punto, se puede hacer mediante ensayo y error a través de UEFN, por lo que puede ser un vector editable. El tercer punto es accesible a través de una referencia al tablero de juego del jugador. El último punto puede almacenarse mediante una referencia al recurso generado a través de Verse, Assets.digest.verse.
El minitablero se creó en el modo de modelado de UEFN para modelar una malla estática simple. Se llama SM_Miniboard.
La cámara de juego es una cámara de punto fijo que apunta hacia el tablero de juego.
Estructuración de la clase de minitablero
Para definir la clase de minitablero, crea un nuevo archivo de Verse llamado miniboard.verse y añade un nuevo dispositivo de Verse llamado miniboard.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Assets }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { DataTypes }
miniboard<public> := class(creative_device):Añade las variables mencionadas anteriormente a la clase:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Assets }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { DataTypes }
miniboard<public> := class(creative_device):
@editable
Colocación del minitablero
Para colocar el minitablero, construye una nueva función llamada Position. Esta función no necesita más información que la transformación de CameraDevice, StaticMesh y BoardOffsetFromCameraDevice.
La función de posición coloca el minitablero con respecto a la cámara del juego para que parezca parte de la interfaz de usuario del juego.
Esta función realiza los siguientes pasos:
Obtiene la transformación de la cámara de juego.
Predefine una corrección de rotación para la malla del minitablero.
La malla del minitablero está orientada de modo que mira hacia arriba o el eje Z.
Esta rotación gira la malla para que mire hacia adelante o el eje X.
Construye la transformación del minitablero.
La traslación del minitablero comienza en la cámara y, luego, suma el desplazamiento del dispositivo de cámara, rotado para mirar hacia la cámara.
La rotación se realiza de cara a la cámara y se corrige para el eje principal del minitablero.
Se genera la utilería del minitablero y se define la malla estática.
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Assets }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { DataTypes }
miniboard<public> := class(creative_device):
...
Para colocar el minitablero una vez que comienza el juego, anula la función OnBegin del minitablero:
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Assets }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { DataTypes }
miniboard<public> := class(creative_device):
...
Resumen
En resumen, esta página te llevó a través de los siguientes pasos:
Definir una representación de un cuadro en el espacio de minitablero.
Definir los límites del espacio del minitablero.
Definir dónde se encuentra el espacio del minitablero en el espacio del entorno.
Archivos
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Assets }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { DataTypes }
miniboard<public> := class(creative_device):
@editable