Puedes utilizar ese método drawString, pero lo que te ha faltado es acceder a una instancia de la clase Graphics. Es un método de instancia, no de clase, así que necesitas una instancia que será el objeto Graphics correspondiente al componente (ventana, panel, etc.) donde quieres dibujar.
No sé si cuando hablas de dibujar en la pantalla estás pensando en dibujar literalmente en la pantalla (o sea, sin depender de ninguna ventana, incluso fuera de la ventana de AGE si cuadra) o en dibujar en lo que sería "la pantalla de la aventura", en donde aparece el texto. Lo primero se podría hacer creando un componente transparente y dibujando en él, pero imagino que te refieres a lo segundo, ¿no?
En ese caso, puedes obtener el objeto Graphics del área de texto haciendo:
Código:
if ( jugador.getClient() instanceof ColoredSwingClient )
{
Graphics g = jugador.getClient().getTextArea().getGraphics();
}
Y luego sobre ese objeto g es sobre el que llamarías drawString, o cualquiera de los otros métodos de dibujado que tiene la clase Graphics de Java que has visto.
Pero hay varias cosas que tendrás que tener en cuenta:
1. Esto sólo funcionará si el jugador utiliza el cliente de ventanas de AGE. Si está jugando por el cliente de línea de comandos, por telnet, por IRC, etc. no funcionará (como es natural). De ahí el if que he puesto. Si es un texto fundamental el que quieres dibujar, por lo tanto, deberías programar una alternativa para que la gente que use otros clientes pueda verlo. Asimismo, al estar dibujando el texto directamente con drawString, me parece que los ciegos que usen un lector de pantalla no lo podrán escuchar.
2. Ten en cuenta que el área de texto es una cosa muy larga de la cual el scroll te muestra una parte. Si no recuerdo mal (habría que mirar la API de Swing para asegurarse, pero creo que es así) si tú dibujas algo con coordenada y=10, lo dibujarás en la coordenada 10 del total de esa área, no de la parte que es visible. Swing proporciona métodos para saber qué parte es la visible, si lo que quieres es dibujar en la coordenada 10 de la parte que se ve en un momento dado. Si no me equivoco (ten en cuenta que aquí te respondo un poco con chicles y alambres porque esto ya no es AGE, es Java Swing, y yo no soy un gran experto en Swing - voy mirando la documentación y tirando, pero las interfaces de usuario para nada son mi especialidad) tienes que hacer getVisibleRect() y eso te da las coordenadas del rectángulo visible.
3. Aun teniendo en cuenta todo esto, ten en cuenta que dibujando en el área de texto vas a competir con el propio Java Swing. O sea, por ejemplo, si el jugador selecciona un texto, Swing va a dibujar el resaltado de la selección. Si cuadra encima de lo que tú has dibujado, se lo va a "comer", no sé si me explico. Como ves, el tema es que dibujar libremente sobre una interfaz de ventanas tiene sus problemas ya que hay que llevarse bien con los componentes que ya están, no es como cuando programábamos juegos en Basic para el MSX y dominábamos toda la pantalla dándonos igual todo lo demás.
Si quieres evitar lidiar con los puntos 2 y 3, siempre puedes crear un frame. El frame lo creas tú con el tamaño que quieras bien definido, no tiene scroll, y no compites con nada (ni AGE ni Java van a pintar nada ahí que no sea lo que tú mandes). Claro que dependerá un poco de para qué quieras usar el texto exactamente.