import port.*;
import javax.swing.*;
import java.awt.event.*;
public class ManejadorAuto extends JFrame implements KeyListener
{
Port p = new Port(0x378);
byte AVANZAR = 0xD;
byte RETROCEDER = 0xE;
byte DERECHA = 0xB;
byte IZQUIERDA = 0x7;
private boolean UP_KEY = false;
private boolean RIGHT_KEY = false;
private boolean DOWN_KEY = false;
private boolean LEFT_KEY = false;
public ManejadorAuto()
{
super("ManejadorAuto");
detener();
addKeyListener(this);
setSize(500,500);
setVisible(true);
}
public void avanzar()
{
p.out(AVANZAR);
}
public void retroceder()
{
p.out(RETROCEDER);
}
public void izquierda()
{
p.out(IZQUIERDA);
}
public void derecha()
{
p.out(DERECHA);
}
public void avanzarDerecha()
{
p.out(AVANZAR & DERECHA);
}
public void avanzarIzquierda()
{
p.out(AVANZAR & IZQUIERDA);
}
public void retrocederDerecha()
{
p.out(RETROCEDER & DERECHA);
}
public void retrocederIzquierda()
{
p.out(RETROCEDER & IZQUIERDA);
}
public void detener()
{
p.out(15);
}
public void keyPressed(KeyEvent ke)
{
if(ke.getKeyCode()== KeyEvent.VK_UP)
{
avanzar();
UP_KEY = true;
}
else if(ke.getKeyCode()== KeyEvent.VK_DOWN)
{
retroceder();
DOWN_KEY = true;
}
else if(ke.getKeyCode()== KeyEvent.VK_RIGHT)
{
derecha();
RIGHT_KEY = true;
}
else if(ke.getKeyCode()== KeyEvent.VK_LEFT)
{
izquierda();
LEFT_KEY = true;
}
if( UP_KEY && RIGHT_KEY == true)//if, no else if
avanzarDerecha();
else if( UP_KEY && LEFT_KEY == true)
avanzarIzquierda();
else if( DOWN_KEY && RIGHT_KEY == true)
retrocederDerecha();
else if( DOWN_KEY && LEFT_KEY == true)
retrocederIzquierda();
}
public void keyReleased(KeyEvent ke)
{
if(ke.getKeyCode()== KeyEvent.VK_UP)
{
detener();
UP_KEY = false;
}
else if(ke.getKeyCode()== KeyEvent.VK_RIGHT)
{
detener();
RIGHT_KEY = false;
}
else if(ke.getKeyCode()== KeyEvent.VK_DOWN)
{
detener();
DOWN_KEY = false;
}
else if(ke.getKeyCode()== KeyEvent.VK_LEFT)
{
detener();
LEFT_KEY = false;
}
}
public void keyTyped(KeyEvent ke)
{
}
public static void main(String args[])
{
Port.loadLibrary();
new ManejadorAuto();
}
}