Rendering nel Hud 1.21.1
Impara a usare l'evento HudRenderCallback per renderizzare sul hud.
WARNING
Questa pagina si applica alla versione 1.21.1. La documentazione delle versioni meno recenti potrebbe essere incompleta.
Abbiamo già parlato brevemente di come renderizzare cose sulla Hud nelle pagine Concetti di Rendering di Base e Usare il Drawing Context, per cui in questa pagina ci concentreremo sull'evento HudRenderCallback e sul parametro deltaTick.
HudRenderCallback
L'evento HudRenderCallback - fornito dall'API di Fabric - viene chiamato ogni frame, e viene usato per renderizzare cose sul HUD.
Per registrarsi a questo evento, puoi semplicemente chiamare HudRenderCallback.EVENT.register e passare una lambda che prende come parametri un GuiGraphics e un float (deltaTick).
Il contesto di disegno può essere usato per accedere a varie utilità di rendering fornite dal gioco, e per accedere allo stack di matrici puro.
Dovresti dare un'occhiata alla pagina Usare il Contesto di Disegno per saperne di più riguardo al contesto di disegno.
DeltaTick
Il deltaTick è il tempo trascorso dall'ultimo frame, in secondi. Questo può essere usato per fare animazioni e altri effetti basati sul tempo.
Per esempio, immagina di voler interpolare linearmente un colore nel tempo. Puoi usare il deltaTickManager per ottenere il deltaTick, e memorizzarlo nel tempo per interpolare il colore:
java
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.getGameTimeDeltaPartialTick(true);
// "lerp" simply means "linear interpolation", which is a fancy way of saying "blend".
float lerpedAmount = Mth.abs(Mth.sin(totalTickDelta / 50F));
int lerpedColor = FastColor.ARGB32.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);
});1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15


