parent
d3c149d8b8
commit
a5dc4a3a21
Binary file not shown.
@ -1,7 +1,7 @@
|
|||||||
package com.demo.tank.coruse1;
|
package com.demo.tank.coruse1;
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
public static void main(String[] args) throws InterruptedException {
|
public static void main(String[] args){
|
||||||
TankFrame tf = new TankFrame();
|
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