🇪🇸 Español (Spanish)
🇪🇸 Español (Spanish)
Appearance
🇪🇸 Español (Spanish)
🇪🇸 Español (Spanish)
Appearance
INFO
Esta página se refiere a pantallas normales, y no pantallas manejadas - estas pantallas son las que son abiertas por el jugador en el cliente, no las que son manejadas por el servidor.
Las pantallas son esencialmente la interfaz gráfica con la que jugador interactúa con, como el menú principal, el menú de pausa, etc.
Puedes crear tus propios menús para mostrar contenido personalizado, un menú de configuraciones personalizado, o más.
Para crear una pantalla, necesitarás extender la clase Screen
y anular el método init
(inicializar) - opcionalmente también anular el método render
- pero asegúrate de llamar su implementación súper, de lo contrario no se renderizará el fondo, los widgets, etc.
Toma en cuenta que:
width
(ancho) y height
(altura), aún no están disponibles o no tienen valores correctos.init
es llamado cuando la pantalla es inicializada, y es el mejor lugar para crear widgets. addDrawableChild
, el cual acepta cualquier widget dibujable.render
es llamado en cada frame - puedes acceder el contexto de dibujado, y la posición del mouse desde este método.Por ejemplo, podemos crear una pantalla simple que tiene un botón y una etiqueta arriba.
public class CustomScreen extends Screen {
// :::3
// Add a custom widget to the screen.
// x, y, width, height
CustomWidget customWidget = new CustomWidget(40, 80, 120, 20);
this.addDrawableChild(customWidget);
// :::3
Puedes abrir la pantalla usando el método setScreen
de la clase MinecraftClient
- puedes hacer esto desde muchos lugares, como un key binding, un comando, o un manipulador de paquetes de cliente.
MinecraftClient.getInstance().setScreen(
new CustomScreen(Text.empty())
);
Si quieres cerrar la pantalla, simplemente establece la pantalla actual a un valor null
(nulo):
MinecraftClient.getInstance().setScreen(null);
Si quieres ser más elegante, y retornar a la pantalla anterior, puedes pasar la pantalla actual al constructor de la clase de CustomScreen
y guardarla en un miembro, y después puedes usarlo para volver a la pantalla anterior cuando el método close
es llamado.
public Screen parent;
public CustomScreen(Text title, Screen parent) {
super(title);
this.parent = parent;
}
@Override
public void close() {
this.client.setScreen(this.parent);
}
Ahora, cuando abramos la pantalla personalizada, puedes pasar la pantalla actual como el segundo argumento - para que cuando llames CustomScreen#close
- volverá a la pantalla anterior.
Screen currentScreen = MinecraftClient.getInstance().currentScreen;
MinecraftClient.getInstance().setScreen(
new CustomScreen(Text.empty(), currentScreen)
);