Also ich weiß ja nicht was für Animationen du in deinem Client einbauen willst, aber ich will mich natürlich nicht zu weit aus dem Fenster lehnen, aber ich möchte meinen für einfach Slide Animationen braucht man keine OpenGL Ahnung. Ich mach mir mal die Mühe und versucht dir das so gut wie möglich zu "erklären".
Ich erkläre das jetzt mal an dem Beispiel meiner Keystrokes:
Die Animation dabei ist das die Keystrokes erst kleine Kreise sind und wenn man die Taste drückt dann werden sie größer und wenn man die Taste nicht drückt, werden sie wieder so klein wie vorher.
Bild:
-
https://imgur.com/BC5e2wE
Und nun zur Erklärung:
Als allererstes muss man einen neuen Iterator erstellen
- private int animate = 0;
Und dann kommt man eigentlich schon zu der Animation, und zwar fragt man hier ab, ob der Key / eine Aktion durchgeführt wird. Wenn Ja, soll sich der int mit 1 Addieren und wenn nein, soll sich der int mit 1 Subtrahieren.
Aber da, wenn man die Aktion/Key einmal beginnt oder drückt, der int sich bis ins Unendliche addiert oder subtrahiert, muss man ein Limit setzen. In diesem Beispiel setzte ich das Limit beim Addieren aus maximal 2. Also wenn
animate sich über 2 addiert bleibt es bei 2 und geht nicht ins unendliche. Beim Subtrahieren setzte ich das Limit bei 0, da der int nicht unter den Wert 0 gehen soll.
Das ganze müsste dann, aus das Beispiel bezogen, wie folgt aussehen:
if(KeyW.pressed) {
animate++;
if(animate > 2) {
animate = 2;
}
} else {
animate--;
if(animate < 0) {
animate = 0;
}
}
KeyW ist in diesem Beispiel die verkürzte Form von mc.gameSettings.keyBindForward, damit das einfach ordentlicher aussieht.
Das macht man, wie folgt:
- KeyBinding KeyW = mc.gameSettings.keyBindForward;
Und dann nur noch in deinen drawRect oder wo auch immer du das benötigst, diesen int
animate an diese Stelle schreiben, wo du dein Width oder Height initialisierst. Das habe ich so gemacht:
- RenderHelper.drawFullCircle(GuiScreen.width - 39, GuiScreen.height - 60, check ? 8 + animate : 10, color);
In dem Falle benutzte ich das nicht beim Width oder Height, sondern bei der Größe des Kreises. Und nun zu deinem Beispiel:
Wenn man z.b. die Animation haben will, dass die Liste / der Rect mit den Modulen "reinfährt", muss man einfach nur so eine Animation erstellen und das wird, dann halt nicht das Limit 2 beinhalten aber vom Grundgerüst her müsste es gleich sein.
Hoffe, ich konnte dir damit helfen, falls ich etwas falsch erklärt habe, bitte nicht gleich beleidigen, sondern am besten mir den Fehler schreiben damit ich ihn korrigieren kann. Natürlich hoffe ich auch das ich es recht Einsteiger freundlich gemacht habe. Viel Erfolg ^^