目的
编写一个较为简单的坦克大战游戏,开发坦克大战游戏界面,实现通过上下左右键控制绿色坦克的移动,通过1,2,3,4键控制敌方坦克的移动。
代码
package login;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class tank extends JFrame implements KeyListener
{
static Graphics g ;
ImageIcon tank1=new ImageIcon("C:\\Users\\LENOVO\\Pictures\\pic\\p1tankD.gif");
Image tt1=tank1.getImage();
ImageIcon tank2=new ImageIcon("C:\\Users\\LENOVO\\Pictures\\pic\\enemy2U.gif");
Image tt2=tank2.getImage();
int x1=200;
int y1=200;
int x2=100;
int y2=100;
public tank()
{
setTitle("坦克大战");
setSize(650,650);
setBackground(Color.lightGray);
setLocation(400,200);
setVisible(true);
setLayout(new BorderLayout());
//四面墙
JPanel s1=new JPanel();
JPanel s2=new JPanel();
JPanel s3=new JPanel();
JPanel s4=new JPanel();
s1.setLayout(new GridLayout(1,10));
s2.setLayout(new GridLayout(1,10));
s3.setLayout(new GridLayout(10,1));
s4.setLayout(new GridLayout(10,1));
ImageIcon wall=new ImageIcon("C:\\Users\\LENOVO\\Pictures\\pic\\steels.gif");
for(int i=0;i<10;i++)
{
s1.add(new JLabel(wall));
s2.add(new JLabel(wall));
s3.add(new JLabel(wall));
s4.add(new JLabel(wall));
}
add(s1,"South");
add(s2,"North");
add(s3,"West");
add(s4,"East");
//注册键盘监听
this.addKeyListener(this);
}
//画坦克
public void paint(Graphics g)
{
super.paint(g);
g.drawImage(tt1, x1,y1,this);
g.drawImage(tt2, x2,y2,this);
}
public void keyReleased(KeyEvent e){}
public void keyTyped(KeyEvent e){}
public void keyPressed(KeyEvent e)
{
int key =e.getKeyCode();
switch(key){
case KeyEvent.VK_UP: //向上
{y1-=10;this.repaint(); break;}
case KeyEvent.VK_DOWN: //向下
{y1+=10;this.repaint(); break;}
case KeyEvent.VK_LEFT: //向左
{x1-=10;this.repaint(); break;}
case KeyEvent.VK_RIGHT: //向右
{x1+=10;this.repaint(); break;}
case KeyEvent.VK_2: //向上
{y2-=10;this.repaint(); break;}
case KeyEvent.VK_3: //向下
{y2+=10;this.repaint(); break;}
case KeyEvent.VK_1: //向左
{x2-=10;this.repaint(); break;}
case KeyEvent.VK_4: //向右
{x2+=10;this.repaint(); break;}
}
}
public static void main(String args[])
{
tank t=new tank();
t.paint(g);
}
}