Dibujo en java

Quería preguntarte si sabías alguna manera para poder dibujar un hombrecito con lineas y un circulo por cabeza es decir, como los que dibujamos en el ahorcado.
O
/|\
|
/ \
Algo parecido al que dibuje con caracteres, pero en vez de barras utilizar lineas y en vez de una o mayúscula un circulo.
Supongo que fui claro, de lo contrario lo trataré de expresar mejor.
___
| |
|
_|_
|___|
También sería bueno si se pudiera dibujar algo como lo que dibujé más arriba, esto vendría a representar la horca. Es para mi juego de ahorcado del que ya habíamos hablado, que me explicaste lo del setFocusable(true).
Te recuerdo que cualquier duda en Visual Basic, ASP o JavaScript ya sabes a quien dirigirte.
Atentamente. Y gracias de antemano. Manuel Fernández.

1 respuesta

Respuesta
1
No, porque como te dije, el dibujo aparecerá dentro de un componente Canvas, que tu colocarás en el lugar que quieras dentro de tu applet. Las coordenadas que le pongas serán las coordenadas del Canvas, no del applet completo.
Pero el canvas puede quedar agregado al WEST es decir, si defino a cVas como el canvas, puedo hacer Add(cVas,"WEST");
?
Atentamente. Manuel Fernández.
Claro Manuel, puedes poner tu objeto canvas donde quieras, porque es un objeto "Component", y tu lo que añades son ese tipo de objetos. Puede que me estés preguntando porque no lo ves dibujado :) El canvas a priori no se ve, puedes ponerle un color de fondo con el método "setBackground" de la clase "Component" y verás un recuadro del color que tu definas donde hayas situado el canvas.
Piensa que un canvas es como una pizarra, sirve para reservar un espacio de tu applet para pintar cosas, o incluir imágenes :)
En primer lugar, el hombrecito debe ir apareciendo de a partes y no al revez (pero es solo un detalle, si se puede hacer en un sentido también se puede en el otro).
Por otro lado, yo establecí un tipo de layout, con esas funciones que me recomendaste puedo ademas de asignar las coordenadas del circulo y las lineas, ¿indicarle qué deben estar por ejemplo en WEST? (Yo uso setLayout(new BorderLayout());)!
Atentamente. Manuel Fernández.
Puedes dibujar en Java. Simplemente tienes que añadir un objeto que extienda de Canvas
http://java.sun.com/j2se/1.3/docs/api/java/awt/Canvas.html
dentro de tu applet, y sobreescribir el método:
void paint (Graphics)
http://java.sun.com/j2se/1.3/docs/api/java/awt/Canvas.html
En ese método utilizarás el objeto que se pasa como parámetro (Graphics) para dibujar. Estos objetos Graphics tienen métodos del estilo "drawLine", o "drawCircle", donde simplemente necesitas decirles las coordenadas de tu dibujo.
El método "paint" se ejecutará automáticamente al iniciar el applet, por lo que debes dibujar el ahorcado completo. Luego, cuando vayas eliminando piezas, puedes invocar ese método paint llamando al método "repaint" desde tu canvas. Puedes tener una propiedad dentro de la clase donde le digas a tu método de dibujo qué partes tiene que dibujar y qué partes tiene que borrar de tu ahorcado.
Como cada vez que falles una letra se eliminará una parte del dibujo, yo lo que haría sería tener un método por cada línea de tu dibujo: "dibujaBrazoIzdo", "dibujaBrazoDcho"... etc. Estos métodos tendrían una propiedad boolean para indicarle si tienen que dibujar o borrar la pieza. Por otro lado, pondría una propiedad en la clase (por ejemplo un entero) con el que indicas el número de piezas que tienes que dibujar. Cuando se inicie la aplicación el método paint dibujaría el ahorcado entero (la propiedad dice que están todas las piezas). Luego, cada vez que fallas una letra decrementarías la propiedad del número de piezas y llamarías a "repaint", esto internamente llamaría a "paint" y dentro de "paint" únicamente tendrías que comprobar el número de piezas que quedan, y llamar al método de dibujo/borrado correspondiente :)
Ya sabes, cualquier otra duda, o más información sobre esto, aquí me tienes :)
Muy bien, me ha sido realmente útil y me tuviste verdadera paciencia! (Te añado nuevamente a mi lista de favoritos, ya lo hice antes, pero la opción nuevamente está activada y con la esperanza que te de más puntaje, bueno...)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas