坦克大战程序代码

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

import java.awt.* ;

import javax.swing.* ;

import java.awt.event.*;

import java.util.EventListener;

class f extends JFrame {

f(String title) {

this.setTitle(title) ;

this.setSize(608 , 630) ;

this.setLocation(300 , 100) ;

this.setBackground(Color.BLACK) ;

MyTank mp = new MyTank() ;

this.add(mp) ;

this.addKeyListener(mp) ;

new Thread(mp).start() ;

}

public static void main(String[] args) {

f h = new f("坦克大战(版本1.0)") ;

h.setVisible(true) ;

}

}

//主战坦克

class MyTank extends JPanel implements KeyListener , Runnable {

int x = 280, y = 280 ;//坦克的初始位置

int op = 1 ;//坦克的移动方向

int color = 0 ;

int tankspeed = 8 ;//坦克的速度

int tankbullet = 8 ;//坦克的子弹速度

int tankfbullet = 4 ;//敌军的子弹速度

int shengming = 100 ;//生命

int fenshu = 0 ;

int nandu = 5 ; //设置游戏难度

//子弹

int dx = 295 , dy = 295 ;

int dx1 = 295 , dy1 = -10 ;

int dx2 = 600 , dy2 = 295 ;

int dx3 = 295 , dy3 = 600 ;

int dx4 = -10 , dy4 = 295 ;

//敌军坦克

int num = 10 ;//敌军坦克数量,不能修改int[] xf = new int[num] ;

int[] yf = new int[num] ;

int[] opf = new int[num] ;

int[] dxf = new int[num] ;

int[] dyf = new int[num] ;

int[] dxf1 = new int[num] ;

int[] dyf1 = new int[num] ;

int[] dxf2 = new int[num] ;

int[] dyf2 = new int[num] ;

int[] dxf3 = new int[num] ;

int[] dyf3 = new int[num] ;

int[] dxf4 = new int[num] ;

int[] dyf4 = new int[num] ;

//构造函数,初始化敌军坦克的位置和状态MyTank() {

for (int i = 0; i

xf[i] = (int) (Math.random() * 560) ; yf[i] = (int) (Math.random() * 560) ; dxf[i] = xf[i] + 15 ;

dyf[i] = yf[i] + 15 ;

}

for (int i = 0; i

dxf1[i] = 295 ; dyf1[i] = -10 ;

dxf2[i] = 600 ; dyf2[i] = 295 ;

dxf3[i] = 295 ; dyf3[i] = 600 ;

dxf4[i] = -10 ; dyf4[i] = 295 ;

}

}

//主面版

public void paint(Graphics g) { super.paint(g) ;

this.setBackground(Color.YELLOW) ;

g.setColor(Color.red) ;

g.drawString("生命:" , 10 , 20 ) ;

g.fillRect(50 , 10 , shengming * 5 , 10) ;

g.drawRect(50 , 10 , 500 , 10) ;

g.drawString("得分: "+ fenshu , 10 , 40) ;

if(op == 1) {

g.setColor(Color.red) ;

g.fillRect(x , y , 40 , 40) ;

switch (color % 6) {

case 0: g.setColor(Color.blue) ; break; case 1: g.setColor(Color.yellow) ; break; case 2: g.setColor(Color.red) ; break;

case 3: g.setColor(Color.orange) ; break; case 4: g.setColor(Color.green) ; break; case 5: g.setColor(Color.black) ; break; }

g.fillOval(x - 5 , y - 5 , 10 , 10) ;

g.fillOval(x - 5 , y + 5 , 10 , 10) ;

g.fillOval(x - 5 , y + 15 , 10 , 10) ;

g.fillOval(x - 5 , y + 25 , 10 , 10) ;

g.fillOval(x - 5 , y + 35 , 10 , 10) ;

g.fillOval(x + 35 , y - 5 , 10 , 10) ;

g.fillOval(x + 35 , y + 5 , 10 , 10) ;

g.fillOval(x + 35 , y + 15 , 10 , 10) ;

g.fillOval(x + 35 , y + 25 , 10 , 10) ;

g.fillOval(x + 35 , y + 35 , 10 , 10) ;

g.setColor(Color.black) ;

g.fillRect(x + 15 , y - 20 , 10 , 40) ;

switch (color % 20) {

case 0: g.setColor(Color.white) ; break; case 1: g.setColor(Color.white) ; break; case 2: g.setColor(Color.white) ; break; case 3: g.setColor(Color.white) ; break; case 4: g.setColor(Color.white) ; break; case 5: g.setColor(Color.white) ; break; case 6: g.setColor(Color.white) ; break;

相关文档
最新文档