tankl.java

来自「坦克大战」· Java 代码 · 共 106 行

JAVA
106
字号
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

public class TankL extends JFrame
{
	MyPanel mp=new MyPanel();
	
	public TankL()
	{
		this.setTitle("Tank Game");
		
		this.add(mp);
		
		this.setBounds(100,100,400,300);
		this.setVisible(true);
		mp.requestFocus(true);
	}
	
	public static void main(String args[])
	{
		new TankL();
	}
}

class MyPanel extends JPanel implements KeyListener
{
	int x=200;
	int y=150;
	int span=5;
	int direction=0;
	Image[] imga=new Image[4];
	
	public MyPanel()
	{
		ImageIcon img0=new ImageIcon("img/up.jpg");
		ImageIcon img1=new ImageIcon("img/right.jpg");
		ImageIcon img2=new ImageIcon("img/down.jpg");
		ImageIcon img3=new ImageIcon("img/left.jpg");
		
		imga[0]=img0.getImage();
		imga[1]=img1.getImage();
		imga[2]=img2.getImage();
		imga[3]=img3.getImage();
		
		this.addKeyListener(this);
	}
	
	public void paint(Graphics g)
	{
		g.setColor(Color.black);
		g.fillRect(0,0,600,600);
		
		g.drawImage(imga[direction],x,y,Color.black,this);
	}
	
	public void keyTyped(KeyEvent e){}
	
	public void keyReleased(KeyEvent e){}
	
	public void keyPressed(KeyEvent e)
	{
		int kc=e.getKeyCode();
		if(kc==KeyEvent.VK_UP)
		{//按下向上按钮
			y=y-span;
			if(y<-28)
			{
				y=260;
			}
			direction=0;
		}
		else if(kc==KeyEvent.VK_DOWN)
		{//按下向下按钮
		 	direction=2;
		 	y=y+span;
		 	if(y>270)
		 	{
		 		y=-25;
		 	}		 	
		}
		else if(kc==KeyEvent.VK_RIGHT)
		{//按下向右按钮
			direction=1;
			x=x+span;
			if(x>390)
			{
				x=-25;
			}
		}
		else if(kc==KeyEvent.VK_LEFT)
		{//按下向左按钮
			direction=3;
			x=x-span;
			if(x<-28)
			{
				x=390;
			}			
		}
		
		this.repaint();
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?