parent
d3c149d8b8
commit
a5dc4a3a21
Binary file not shown.
@ -1,7 +1,7 @@
|
||||
package com.demo.tank.coruse1;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) throws InterruptedException {
|
||||
public static void main(String[] args){
|
||||
TankFrame tf = new TankFrame();
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,5 @@
|
||||
package com.demo.tank.coruse2;
|
||||
|
||||
public enum Direction {
|
||||
LEFT, RIGHT, UP, DOWN;
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.demo.tank.coruse2;
|
||||
|
||||
import com.demo.tank.coruse1.TankFrame;
|
||||
|
||||
public class MainV2 {
|
||||
public static void main(String[] args){
|
||||
TankFrame tf = new TankFrame();
|
||||
tf.repaint();
|
||||
}
|
||||
}
|
@ -0,0 +1,56 @@
|
||||
package com.demo.tank.coruse2;
|
||||
|
||||
import java.awt.*;
|
||||
|
||||
public class Tank {
|
||||
private int x,y;
|
||||
private Direction dir;
|
||||
private static final int SPEED = 10;
|
||||
|
||||
|
||||
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);
|
||||
switch (dir){
|
||||
case UP: y -= SPEED;
|
||||
break;
|
||||
case DOWN: y += SPEED;
|
||||
break;
|
||||
case LEFT: x -= SPEED;
|
||||
break;
|
||||
case RIGHT: x += SPEED;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public int getX() {
|
||||
return x;
|
||||
}
|
||||
|
||||
public void setX(int x) {
|
||||
this.x = x;
|
||||
}
|
||||
|
||||
public int getY() {
|
||||
return y;
|
||||
}
|
||||
|
||||
public void setY(int y) {
|
||||
this.y = y;
|
||||
}
|
||||
|
||||
public Direction getDir() {
|
||||
return dir;
|
||||
}
|
||||
|
||||
public void setDir(Direction dir) {
|
||||
this.dir = dir;
|
||||
}
|
||||
}
|
@ -0,0 +1,86 @@
|
||||
package com.demo.tank.coruse2;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.event.KeyAdapter;
|
||||
import java.awt.event.KeyEvent;
|
||||
import java.awt.event.WindowAdapter;
|
||||
import java.awt.event.WindowEvent;
|
||||
|
||||
public class TankFrame extends Frame {
|
||||
Tank tank = new Tank(500, 500, Direction.UP);
|
||||
|
||||
public TankFrame(){
|
||||
setVisible(true);
|
||||
setSize(800, 600);
|
||||
setResizable(false);
|
||||
setTitle("tank war");
|
||||
this.addKeyListener(new MyKeyListener());
|
||||
this.addWindowListener(new WindowAdapter() {
|
||||
@Override
|
||||
public void windowClosing(WindowEvent e) {
|
||||
System.exit(0);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void paint(Graphics g){
|
||||
tank.paint(g);
|
||||
}
|
||||
|
||||
class MyKeyListener extends KeyAdapter{
|
||||
boolean bL = false;
|
||||
boolean bR = false;
|
||||
boolean bU = false;
|
||||
boolean bD = false;
|
||||
|
||||
@Override
|
||||
public void keyPressed(KeyEvent e) {
|
||||
switch (e.getKeyCode()){
|
||||
case KeyEvent.VK_A:
|
||||
bL = true;
|
||||
break;
|
||||
case KeyEvent.VK_D:
|
||||
bR = true;
|
||||
break;
|
||||
case KeyEvent.VK_W:
|
||||
bU = true;
|
||||
break;
|
||||
case KeyEvent.VK_S:
|
||||
bD = true;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
setTankDirection();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyReleased(KeyEvent e) {
|
||||
switch (e.getKeyCode()){
|
||||
case KeyEvent.VK_A:
|
||||
bL = false;
|
||||
break;
|
||||
case KeyEvent.VK_D:
|
||||
bR = false;
|
||||
break;
|
||||
case KeyEvent.VK_W:
|
||||
bU = false;
|
||||
break;
|
||||
case KeyEvent.VK_S:
|
||||
bD = false;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
setTankDirection();
|
||||
}
|
||||
|
||||
public void setTankDirection(){
|
||||
if(bL) tank.setDir(Direction.LEFT);
|
||||
if(bR) tank.setDir(Direction.RIGHT);
|
||||
if(bU) tank.setDir(Direction.UP);
|
||||
if(bD) tank.setDir(Direction.DOWN);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue