package shard;

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;

/**
 * Title:        Shard Game Engine
 * Description:  Bits and Pieces of Reality...
 * Copyright:    Copyright (c) 2001
 * Company:      Cylab Corporation
 * @author Herval Freire de A. Júnior
 * @version 1.0
 *
 * Uma janela de jogo de exemplo
 */

public class CanvasTest extends JFrame {
  Canvas visao;

  int x = 40, y = 40;

  public CanvasTest() {

     visao = new Canvas();

    try {
      jbInit();
      visao.setSize(new Dimension(800,600)); // tamanho da janela
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  private void jbInit() throws Exception {
    this.addKeyListener(new java.awt.event.KeyAdapter() {
      public void keyPressed(KeyEvent e) {
        this_keyPressed(e);
      }
    });

    this.setSize(new Dimension(800,600));

    this.addWindowListener(new java.awt.event.WindowAdapter() {
      public void windowClosing(WindowEvent e) {
        this_windowClosing(e);
      }
    });

    this.getContentPane().add(visao, BorderLayout.CENTER);
  }

  void this_keyPressed(KeyEvent e) {
    try{

      switch(e.getKeyCode()){
        case KeyEvent.VK_LEFT: x-=2; visao.getGraphics().drawLine(x,y,x+1,y+1); break;
        case KeyEvent.VK_RIGHT: x+=2; visao.getGraphics().drawLine(x,y,x+1,y+1); break;
        case KeyEvent.VK_UP: y-=2; visao.getGraphics().drawLine(x,y,x+1,y+1); break;
        case KeyEvent.VK_DOWN: y+=2; visao.getGraphics().drawLine(x,y,x+1,y+1); break;
      }

    }catch(Exception err){
      visao.getGraphics().drawString("OUT!!", 300,300);
    }
  }


  public static void main(String args[]){
    CanvasTest jan = new CanvasTest();
    jan.pack();
    jan.show();

  }


  void this_windowClosing(WindowEvent e) {
    System.exit(0);
  }

}
