Skip to content

Renderizar en el Hud (Pantalla de Visualización Frontal)

Ya hemos tocado brevemente el tema sobre como renderizar cosas en el Hud en la guía de Conceptos Básicos de Renderizado y Usando el Contexto de Dibujado, así que en esta página nos enfocaremos en el evento de HudRenderCallback y el parametro de deltaTick.

HudRenderCallback (Callback de Renderizado de Hud)

El evento HudRenderCallback - proveído por el Fabric API - es llamado en cada frame (cuadro), y es usado para renderizar cosas en el HUD.

Para registrar a este evento, simplemente puedes llamar HudRenderCallback.EVENT.register y pasar una expresión Lambda el cual tiene como parámetros un DrawContext (Contexto de Dibujado) y un valor float (flotante) ("deltaTick").

El contexto de dibujado puede ser usado para acceder las diferentes utilidades de renderizados dadas por el juego, y acceder el matrix stack (pila de matrices).

Deberías echar un vistazo a la página de Contexto de Dibujado para aprender más sobre el contexto de dibujado.

DeltaTick (Diferencia de Ticks)

El parámetro deltaTick es el tiempo en segundos desde el último frame, en segundos. Esto puede ser usado para hacer animaciones u otros efectos basados en el tiempo.

Ejemplo: Realizar una interpolación lineal sobre el Tiempo

Digamos que quieres realizar una interpolación lineal sobre el tiempo. Puedes usar el parámetro deltaTick para esto.

java
HudRenderCallback.EVENT.register((context, tickDelta) -> {
	int color = 0xFFFF0000; // Red
	int targetColor = 0xFF00FF00; // Green

	// Total tick delta is stored in a field, so we can use it later.
	totalTickDelta += tickDelta;

	// "lerp" simply means "linear interpolation", which is a fancy way of saying "blend".
	float lerpedAmount = MathHelper.abs(MathHelper.sin(totalTickDelta / 50F));
	int lerpedColor = ColorHelper.Argb.lerp(lerpedAmount, color, targetColor);

	// Draw a square with the lerped color.
	// x1, x2, y1, y2, z, color
	context.fill(0, 0, 100, 100, 0, lerpedColor);
});