mi siguiente duda ya puedo pintar las letras o una pieza del mono si te equibocas, pero ahora cuando presiono otra letra q si esta o no esta se borra la letra que ya habia encontrado o la parte del dibujo del mono q ya se habia dibujado. entonces lo que pregunto es ¿como se le hace para que no me borre todo lo que ya staba dibujado (letras o una parte del mono)?
o <- - - dibujo del mono cuando te equibocas. En ste caso la cabeza se dibujo
a _ a _ _ _ _ _ <- - - donde se colocan las letras leidas del teclado
ahora cuando me equivoco o presiono otra letra correcta se desaparece lo que habia escrito y aparece lo otro ya sea si me equivoco o le atino.
Aqui se borro lo que ya tenia dibujado.
/ <- - - dibujo del mono cuando te equibocas. En ste caso el brazo izquierdo se dibujo.
_ _ _ _ _ l l _ <- - - donde se colocan las letras leidas del teclado
y cuando deberia de quedar asi.
O <- - - dibujo del mono cuando te equibocas. Deberia ser asi
/
a _ a _ _ l l _ <- - - donde se colocan las letras leidas del teclado
adherire my codigo:
a todavia me falta validar algunas cosas pero eso pa' despues ahorita lo que busco esque pueda pintar sin que me quite lo que ya tenia
//Clase para Correr el proyecto
public class Jugar {
/**
* @param args
*/
public static void main
(String[] args
) {
VentanaMenu ahorcado=new VentanaMenu();
ahorcado.setVisible(true);
}
}
//Clase MENU
setTitle("Menu");
setSize(500,500);
setLocation(250,50);
setResizable(false);
setDefaultCloseOperation
(JFrame.
EXIT_ON_CLOSE);
this.
getContentPane().
setBackground(Color.
DARK_GRAY);
SpringLayout layout =new SpringLayout();
contenedor.setLayout(layout);
titulo.
setFont(new Font("Arial",
Font.
BOLD,
40)); titulo.
setForeground(new Color(0,
100,
250));
contrHumano.addActionListener(this);
contraCpu.addActionListener(this);
ayuda.addActionListener(this);
creditos.addActionListener(this);
contrHumano.
setPreferredSize(new Dimension(100,
60)); contraCpu.
setPreferredSize(new Dimension(100,
60)); ayuda.
setPreferredSize(new Dimension(100,
60)); creditos.
setPreferredSize(new Dimension(100,
60));
layout.putConstraint(SpringLayout.WEST,titulo,130,SpringLayout.WEST,contenedor);
layout.putConstraint(SpringLayout.NORTH,titulo,50,SpringLayout.NORTH,contenedor);
layout.putConstraint(SpringLayout.WEST,contrHumano,100,SpringLayout.WEST,contenedor);
layout.putConstraint(SpringLayout.NORTH,contrHumano,200,SpringLayout.NORTH,contenedor);
layout.putConstraint(SpringLayout.WEST,contraCpu,300,SpringLayout.WEST,contenedor);
layout.putConstraint(SpringLayout.NORTH,contraCpu,200,SpringLayout.NORTH,contenedor);
layout.putConstraint(SpringLayout.WEST,ayuda,100,SpringLayout.WEST,contenedor);
layout.putConstraint(SpringLayout.NORTH,ayuda,350,SpringLayout.NORTH,contenedor);
layout.putConstraint(SpringLayout.WEST,creditos,300,SpringLayout.WEST,contenedor);
layout.putConstraint(SpringLayout.NORTH,creditos,350,SpringLayout.NORTH,contenedor);
contenedor.add(titulo);
contenedor.add(contrHumano);
contenedor.add(contraCpu);
contenedor.add(ayuda);
contenedor.add(creditos);
}
//Clase donde se dibujara en esta ventana
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.*;
{
char caracter;
int vidas=7;
Dibujo dibujo;
//Base de datos de palabras pa cuando juegas contra la maquina
String BDPalabras
[]={"hola",
"Alcohol",
"jugador",
"pelota",
"computadora",
"programacion",
"alemania",
"suesia",
"teclado","arbol","tierra","jupiter","dragon","lluvia","nube","lenguaje","estrella",
"diccionario","inicio","impresora","tienda","avion","ferrocarril","lucha","caramelo","dulce",
"dormir","brincar","telefono","television","radio","antena","mercado","kilometro","agua",
"estado","banco","ejercito","abanico","borrego","perro","lombriz","lengua","laguna","volcan",
"mar","sal","tecla","asiento","destruccion","parentesis","barro","mexico","salir","tren",
"redfrigerascion","salud","sol","jupiter","pantalon","sierra","dios","dos","tres","lagato",
"metro","centimetro","ahogado","helicoptero","tornado","huracan","calle","cable","monitos",
"centro","abaco","silla","explocio","lancha","tarjeta","moneda","historia","hueco","lava",
"numero","abecedario","letra","monte","palmera","playa","carton","caja","madera","luz","foco",
"cara","pierna","panza","elote","dinosuario","kakaroto"};
//Todavia no se utilizan ni se dibujan
public VentanaJuego(final int opcion)
{
setTitle("Ahorcado");
setSize(600,600);
setLocation(250,50);
setResizable(false);
setDefaultCloseOperation
(JFrame.
DISPOSE_ON_CLOSE);
if(opcion == 1)//Porsi quieres jugar contra otro humano
{
//se dibuja una ventana para introducir la palbra secreta
palabra
=JOptionPane.
showInputDialog(getParent
(),
"Ingrese la palabra a ocultar",
"Ocultador de palabra",
JOptionPane.
DEFAULT_OPTION); dibujo=new Dibujo(palabra);
}
else
{
//Si juegas contra la maquina se seleccionara una palabra de la lista
palabra=BDPalabras[100];
dibujo=new Dibujo(palabra);
}
{
{
//Obtenemos la letra presionada del teclado
caracter=e.getKeyChar();
//Convertimos la variable caracter a String ya que eso es la que recibe la variable caracter de la otra clase y se lo pasamos a la variable caracter de tipo String de la otra clase
dibujo.
caracter=String.
valueOf(caracter
); dibujo.vidas=vidas;
//una pruba nada mas para saber si esta entrando en dicho metodo
System.
out.
println(dibujo.
getQuitarVidas());
if(dibujo.getQuitarVidas() == false)
{
//Otra prueba namas para ver como se esta comportando la variable
--vidas;
}
//Repintamos denuevo toda la ventana
repaint();
}
});
//Adherimos la clase dibujo al frame
this.add(dibujo);
}
@Override
}
@Override
// TODO Auto-generated method stub
}
@Override
// TODO Auto-generated method stub
}
}
//classe para dibujar
import javax.swing.*;
import java.awt.*;
{
boolean encontrado=false;
int vidas=7;
int posicionLetra;
int xInicio=50;
char arregloPalabra[];
//Primer constructor para inciar el juego
{
this.palabra=palabra;
}
{
super.paintComponent( g );
//Dibuja Nombre del jugador
g2.
setFont(new Font("Arial",
Font.
BOLD,
25)); g2.drawString("Player 1", 250, 50);
//Dibuja Vidas
g2.
setFont(new Font("Arial",
Font.
BOLD,
25)); g2.drawString("Vidas: "+vidas, 400, 250);
//fill para rellenear las figuras de algun color. Su utilizacion es
//fill mas el nombre de la figura a rellenar (colorear) ejemplo fillRect.
//Rectangulo coloreado
//Dibuja Palo plataforma
g2.
setColor(new Color(150,
75,
0)); g2.fillRect(10, 400, 200,25);
//Dibuja Palo vertical
g2.
setColor(new Color(150,
75,
0)); g2.fillRect(50, 110 , 25, 300);
//Dibuja Palo horizontal
g2.
setColor(new Color(150,
75,
0)); g2.fillRect(20, 85 , 250, 25);
//Dibuja las lineas donde se colocaran las letras
dibujarLineas(g2);
//Dividimos la variable palabra en char para guardrlo en un arreglo de char
arregloPalabra=palabra.toCharArray();
//Recorre el arreglo de char para saber si se encuentra el caracter obteneido desde el teclado en el arreglo
for(int pos=0; pos < arregloPalabra.length; ++pos)
{
if(String.
valueOf(arregloPalabra
[pos
]).
equals(caracter
)) {
posicionLetra=pos;
letra
=String.
valueOf(arregloPalabra
[pos
]); //Para siempre dibujar la primera letra que sea en la primera posicion
if(posicionLetra == 0)
{
g2.
setColor(Color.
BLACK); g2.
setFont(new Font("Arial",
Font.
BOLD,
15)); g2.drawString(letra,55,480);
}
else
{
if(posicionLetra >= 1)
{
posicionLetra*=45;
xInicio+=posicionLetra;
g2.
setColor(Color.
BLACK); g2.
setFont(new Font("Arial",
Font.
BOLD,
25)); g2.drawString(letra,xInicio,480);
//reiniciamos las variables para que no se salgan del
//limite de las lineas
posicionLetra=0;
xInicio=50;
}
}
encontrado=true;
}
}
if(vidas == 7)
{
//Dibuja Cuerda
g2.
setColor(Color.
BLACK); g2.drawLine(250, 110, 250, 140);
}
else
{
if(vidas == 6)
{
//Dibuja Cara
g2.
setColor(Color.
BLACK); g2.fillOval(225, 140, 50, 50);
}
else
{
if(vidas == 5)
{
//Dibuja Cuerpo
g2.
setColor(Color.
BLACK); g2.drawLine(250, 140, 250, 270);
}
else
{
if(vidas == 4)
{
//Dibuja Brazo Izquierdo
g2.
setColor(Color.
BLACK); g2.drawLine(250, 210, 200, 240);
}
else
{
if(vidas == 3)
{
//Dibuja Brazo Derecha
g2.
setColor(Color.
BLACK); g2.drawLine(250, 210, 300, 240);
}
else
{
if(vidas == 2)
{
//Dibuja Pie Izquierdo
g2.
setColor(Color.
BLACK); g2.drawLine(250, 270, 200, 300);
}
else
{
if(vidas == 1)
{
//Dibuja Pie Derecho
g2.
setColor(Color.
BLACK); g2.drawLine(250, 270, 300, 300);
}
}
}
}
}
}
}
encontrado=false;
}
public boolean getQuitarVidas()
{
return encontrado;
}
//Para dibujar las lineas necesarias de acuerdo a la palabra
{
int xInicio=50;
int xFin=80;
for(int i=0; i < palabra.length(); i++)
{
g2.drawLine(xInicio, 480,xFin , 480);
xInicio+=40;
xFin+=40;
}
}
}