package Box;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
public class Display extends JFrame implements Runnable {
private static final long serialVersionUID = 1L;
public static String TITLE = "The Box Alpha 0.05";
public static int WIDTH = 600;
public static int HEIGHT = 400;
public int moveSpeed = 5;
int xChar, yChar, xMouse, yMouse, xLaser, yLaser, xZombie = 50, yZombie = 50, xDirection, yDirection;
ZombieClass[] zombies = new ZombieClass[5];
private Image dbImage;
private Graphics dbg;
Font font = new Font("Arial", Font.BOLD, 30);
Image charImage, backImage, zombieImage;
boolean MouseOnScreen;
public void run() {
try {
while (true) {
move();
FindCharacter();
Thread.sleep(10);
}
} catch (Exception e) {
System.out.println("Error");
}
}
public void move() {
xChar += xDirection;
yChar += yDirection;
if (xChar <= 0) {
xChar = 0;
}
if (xChar >= WIDTH - 32) {
xChar = WIDTH - 32;
}
if (yChar <= 24) {
yChar = 24;
}
if (yChar >= HEIGHT - 32) {
yChar = HEIGHT - 32;
}
}
public void setXDirection(int xdir) {
xDirection = xdir;
}
public void setYDirection(int ydir) {
yDirection = ydir;
}
public class AL extends KeyAdapter {
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if (keyCode == e.VK_LEFT) {
setXDirection(-moveSpeed);
}
if (keyCode == e.VK_RIGHT) {
setXDirection(+moveSpeed);
}
if (keyCode == e.VK_UP) {
setYDirection(-moveSpeed);
}
if (keyCode == e.VK_DOWN) {
setYDirection(+moveSpeed);
}
e.consume();
}
public void keyReleased(KeyEvent e) {
int keyCode = e.getKeyCode();
if (keyCode == e.VK_LEFT) {
setXDirection(0);
}
if (keyCode == e.VK_RIGHT) {
setXDirection(0);
}
if (keyCode == e.VK_UP) {
setYDirection(0);
}
if (keyCode == e.VK_DOWN) {
setYDirection(0);
}
e.consume();
}
}
public Display() {
// Load images
ImageIcon backIcon = new ImageIcon("C:/Users/Ryan/Desktop/Workspace/TheBox/res/Background.gif");
backImage = backIcon.getImage();
ImageIcon charIcon = new ImageIcon("C:/Users/Ryan/Desktop/Workspace/TheBox/res/Character.gif");
charImage = charIcon.getImage();
// Game properties
addKeyListener(new AL());
addMouseListener(new Mouse());
setTitle(TITLE);
setSize(WIDTH, HEIGHT);
setResizable(false);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
xChar = 125;
yChar = 125;
xMouse = xChar + 16;
yMouse = yChar + 16;
xLaser = xChar + 16;
yLaser = yChar + 16;
}
public void FindCharacter() {
if (xZombie < xChar) {
xZombie++;
}
if (xZombie > xChar) {
xZombie--;
}
if (yZombie < yChar) {
yZombie++;
}
if (yZombie > yChar) {
yZombie--;
}
}
public class ZombieClass {
public void CreateZombie() {
ImageIcon zombieIcon = new ImageIcon("C:/Users/Ryan/Desktop/Workspace/TheBox/res/Zombie.gif");
zombieImage = zombieIcon.getImage();
}
public void SpawnZombies() {
for (int i = 0; i <= 5; i++) {
CreateZombie();
Zombies[i];
}
}
}
public class Mouse extends MouseAdapter {
@Override
public void mousePressed(MouseEvent e) {
int xCoordinate = e.getX();
int yCoordinate = e.getY();
xMouse = xCoordinate;
yMouse = yCoordinate;
xLaser = xMouse;
yLaser = yMouse;
}
@Override
public void mouseReleased(MouseEvent e) {
int xCoordinate = e.getX();
int yCoordinate = e.getY();
xLaser = xChar + 16;
yLaser = yChar + 16;
}
@Override
public void mouseEntered(MouseEvent e) {
MouseOnScreen = true;
}
@Override
public void mouseExited(MouseEvent e) {
MouseOnScreen = false;
}
}
public void paint(Graphics g) {
dbImage = createImage(getWidth(), getHeight());
dbg = dbImage.getGraphics();
paintComponent(dbg);
g.drawImage(dbImage, 0, 0, this);
}
public void paintComponent(Graphics g) {
g.drawImage(backImage, 0, 0, this);
g.drawImage(charImage, xChar, yChar, this);
g.drawImage(zombieImage, xZombie, yZombie, this);
g.setColor(Color.YELLOW);
g.drawLine(xChar + 16, yChar + 16, xLaser, yLaser);
repaint();
}
public static void main(String[] args) {
Display dis = new Display();
// Threads
Thread t1 = new Thread(dis);
t1.start();
}
}