🇪🇸 Español (Spanish)
🇪🇸 Español (Spanish)
Appearance
🇪🇸 Español (Spanish)
🇪🇸 Español (Spanish)
Appearance
This page is written for version:
1.20.4
This page is written for version:
1.20.4
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
.
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.
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.
Digamos que quieres realizar una interpolación lineal sobre el tiempo. Puedes usar el parámetro deltaTick
para esto.
HudRenderCallback.EVENT.register((context, tickDeltaManager) -> {
int color = 0xFFFF0000; // Red
int targetColor = 0xFF00FF00; // Green
// Total tick delta is stored in a field, so we can use it later.
totalTickDelta += tickDeltaManager.getTickDelta(true);
// "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);
});