Main.class
import java.awt.*;
public class Main
{
public static void main(String[] args) throws Exception
{
TankFrame tankFrame = new TankFrame();
tankFrame.setVisible(true);
while (true)
{
Thread.sleep(25);
tankFrame.repaint();
}
}
}
TankFrame.class
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class TankFrame extends Frame
{
private Tank tank;
public TankFrame()
{
this.setTitle("tank war");
this.setLocation(300,300);
this.setSize(800,600);
this.addKeyListener(new TankKeyListener());
tank = new Tank(100,100,Direction.R);
}
@Override
public void paint(Graphics g)
{
tank.paint(g);
}
private class TankKeyListener extends KeyAdapter
{
@Override
public void keyPressed(KeyEvent e)
{
tank.keyPressed(e);
System.out.println(e);
}
@Override
public void keyReleased(KeyEvent e)
{
tank.keyReleased(e);
System.out.println(e);
}
}
}
Tank.class
import java.awt.*;
import java.awt.event.KeyEvent;
public class Tank
{
private int x = 10;
private int y = 10;
private boolean bGoing;
private Direction dir;
private boolean bL,bR,bU,bD;
public static final int SPEED = 5;
public Tank(int x, int y, Direction dir)
{
this.x = x;
this.y = y;
this.dir = dir;
}
public void paint(Graphics g)
{
g.fillRect(x,y,50,50);
if (bGoing)
{
System.out.println("gongingasdfasfasdf");
move();
}
}
public void keyPressed(KeyEvent e)
{
int key = e.getKeyCode();
switch (key)
{
case KeyEvent.VK_LEFT:
bL = true;
break;
case KeyEvent.VK_RIGHT:
bR = true;
break;
case KeyEvent.VK_UP:
bU = true;
break;
case KeyEvent.VK_DOWN:
bD = true;
break;
}
setMainDir();
}
private void setMainDir()
{
if(!bL && !bR && !bU && !bD)
{
bGoing = false;
}
else
{
bGoing = true;
}
if(bL && !bR && !bU && !bD)
{
dir = Direction.L;
}
if(!bL && bR && !bU && !bD)
{
dir = Direction.R;
}
if(!bL && !bR && bU && !bD)
{
dir = Direction.U;
}
if(!bL && !bR && !bU && bD)
{
dir = Direction.D;
}
}
private void move()
{
switch (dir)
{
case L:
x -= SPEED;
break;
case R:
x += SPEED;
break;
case U:
y -= SPEED;
break;
case D:
y += SPEED;
break;
}
}
public void keyReleased(KeyEvent e)
{
int key = e.getKeyCode();
switch (key)
{
case KeyEvent.VK_LEFT:
bL = false;
break;
case KeyEvent.VK_RIGHT:
bR = false;
break;
case KeyEvent.VK_UP:
bU = false;
break;
case KeyEvent.VK_DOWN:
bD = false;
break;
}
setMainDir();
}
}
Direction.class
public enum Direction
{
U,D,L,R
}