sexta-feira, 30 de julho de 2010

Desenvolvimento técnico: Simulador

>Por Juliana

Boa tarde,
A classe que apresento a vocês hoje é a classe Arena. Ela faz parte do Simulador. Nela serão desenhados os objetos a cada execução de um novo comando. Por enquanto, os comandos que são executados no método run() são apenas para teste e logo serão substituídos por comandos recebidos do Tradutor.
class Arena extends JPanel implements Runnable {
/**
* pixels por cm.

* Use multiplicando o valor em cm para obter valor correspondente em pixels
*/
final double escalaCmPixel = 5;

Robo robo;

Arena() {
try {
robo = new Robo(this);
setPreferredSize(new Dimension(400, 400));
new Thread(this).start();
} catch (IOException e) {
e.printStackTrace();
}
}

public void paint(Graphics g) {
super.paint(g);
for (int i = 0; i < 40; i++) {
g.drawLine((int) (i * 8 * escalaCmPixel), 0,
(int) (i * 8 * escalaCmPixel), 400);
g.drawLine(0, (int) (i * 8 * escalaCmPixel), 400,
(int) (i * 8 * escalaCmPixel));
}
robo.desenha((Graphics2D) g);
}

void enviaComando(int cmd) {
try {
robo.comando(cmd);
Thread.sleep(33);
repaint();
} catch (InterruptedException e) {
}
}

public void run() {
while (true) {
for (int i = 0; i < 100; i++) {
enviaComando(0x11);
}
for (int i = 0; i < 100; i++) {
enviaComando(0x99);
}
for (int i = 0; i < 100; i++) {
enviaComando(0x19);
}
for (int i = 0; i < 100; i++) {
enviaComando(0x91);
}
for (int i = 0; i < 100; i++) {
enviaComando(0x10);
}
for (int i = 0; i < 100; i++) {
enviaComando(0x01);
}
for (int i = 0; i < 100; i++) {
enviaComando(0x90);
}
for (int i = 0; i < 100; i++) {
enviaComando(0x09);
}
}
}

Até a semana que vem,
Juliana

Nenhum comentário:

Postar um comentário