2012-06-29 14 views
5

No tengo mucha experiencia en Java, pero intento escribir un juego sencillo para familiarizarme con él, y me pregunto cómo crearía una interfaz como esta:¿Cuál es la mejor manera de mostrar ASCII en una cuadrícula con paneles usando Java?

A screen from JADE by Thomas Biskup ¿Hay alguna manera obvia de hacer algo como esto? Siendo nuevo en Java, realmente no tengo idea de cuál sería el mejor método.

¡Siento ser vago!

Gracias

+4

Escriba una aplicación de GUI de Swing en lugar de una de texto. Va a ser mucho más fácil y con un resultado más bonito. –

+2

Java usa Unicode, no ASCII. ten cuidado. –

+0

Gracias, estoy investigando el swing ahora. ¿Hay algún editor de ventanas Swing que funcione con Eclipse? Todos los que encuentro parecen ser antiguos –

Respuesta

4

No hay tal componente (simple) en el JDK - si usted no necesita color, un JTextArea se puede utilizar para mostrar ASCII-Arte (después de establecer una fuente de ancho fijo). Tendrá que tener cuidado de no encontrarse con problemas con los juegos de caracteres (si no se apega a US-ASCII de 7 bits). Escribir un componente que maneje la visualización en color (y quizás las secuencias de escape, en esencia emula una ventana de consola) no sería demasiado difícil, pero si acaba de comenzar con Java puede ser un desafío no deseado.

También podría simplemente escribir su juego en Java y dejar la visualización del ASCII en la consola del sistema (su juego sería la salida simple a stdout).

Editar: El color ASCII podría obtenerse mediante la conversión de su formato interno a HTML (simple) y ese HTML podría mostrarse utilizando un JLabel. Probablemente no sea el método más elegante, pero debería ser razonablemente fácil de implementar (y con la velocidad actual del hardware no debería ser un problema con este enfoque tampoco). Este enfoque se basa en la capacidad de que solo puede usar JLabel.setText() y pasar una cadena que comienza con una etiqueta HTML. JLabel luego interpreta todo el texto como HTML.

+0

Iba a decir (después de leer los dos primeros párrafos), ¿no podría simplemente usar una fuente monoespaciada y formatearla con HTML y ponerla en un JLabel ... lo único que me gustaría evitar es que parpadee la pintura, He tropezado con ese problema al mostrar todo en un solo control antes, pero nunca intenté hacerlo en Java antes. Voy a jugar y ver qué puedo hacer. ¡Gracias! –

2

Echa un vistazo a Trystan Ascii Panel, y su blog y tutorial sobre cómo hacer un roguelike here.

Cuestiones relacionadas