⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 beginplay.java

📁 用纯java语言做的一个简单的坦克大战游戏
💻 JAVA
字号:
package com.zhoutenghn;

import java.awt.*;
import java.awt.event.*;
import java.util.List;
import java.util.*;

public class BeginPlay extends Frame {
	public static int GAME_HEIGHT = 800 ;
	public static int GAME_WIDE = 800 ;
	int x = 80 , y = 70 ;
	private static Random r = new Random();
	public static int num = 1 ;
	public static int times = 0 ;
	private  int locationx ,locationy ;
	//private static int enemynum = r.nextInt(10)+1;
	Tank myTank = new Tank(x,y + 30,true,this);
	//Tank enemy = new Tank(100,200,false,this);

	List<Missile> missiles = new ArrayList<Missile>();
	List<Explode> explodes = new ArrayList<Explode>();
	List<Tank>  tanks = new ArrayList<Tank>();
	Image screen = null;
	public void launch() {
		this.setTitle("坦克大战");
		this.setSize(GAME_HEIGHT, GAME_WIDE);
		this.setBackground(Color.BLUE);
		this.setResizable(false);
		this.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});
		this.setLocation(200, 100);
		this.addKeyListener(new Keymoniter());
		new Thread(new Repaint()).start();
		this.setVisible(true);
	}
	public void paint(Graphics g) {  
		//g.drawString("missiles count:" + missiles.size(), 30, 50);
		g.drawString("敌军数量 :" + tanks.size(), 30, 50);
		g.drawString("游戏关数:" + (num -1), 30, 70);
		g.drawString("复活次数:"+ times, 30, 90);
		if(tanks.size()==0){
			if (num > 1){
			     g.drawString("恭喜过关!" , 30, 90);
			     try {
					Thread.sleep(1000);
					missiles.removeAll(missiles);
					explodes.removeAll(explodes);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
			createTanks();
		}
       for (int i = 0 ; i < missiles.size();i++){
    	  Missile m = missiles.get(i);
    	  m.hittedTanks(tanks);
    	  m.hitted(myTank);
    	  m.draw(g);
       }
       for (int i = 0 ; i < explodes.size();i++){
    	   Explode e = explodes.get(i);
    	   e.draw(g);
       }
       for (int i = 0 ; i < tanks.size(); i++){
    	   Tank tank = tanks.get(i);
    	   tank.draw(g);
  		   myTank.crash(tank);
    	   tank.crash(myTank);
       }
		 if(myTank.isLive()) {
			 myTank.draw(g);
		 }
          //enemy.draw(g);
	}
	private class Keymoniter extends KeyAdapter {
		public void keyPressed(KeyEvent e){
	          myTank.press(e);
		}
		public void keyReleased(KeyEvent e){
			myTank.released(e);
		}
	}
	public  void createTanks (){
		for(int i = 0; i < num * 3; i ++){
			locationx = r.nextInt(this.GAME_WIDE);
			 locationy = r.nextInt(this.GAME_HEIGHT);
			this.tanks.add(new Tank(locationx,locationy,false ,this));
		}
		num ++ ;
	}
	private class Repaint implements Runnable{

		public void run() {
			while (true){
				try {
					Thread.sleep(50);
					 repaint();
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
		
	}
	public  void update (Graphics g){
		if (screen == null){
			screen = this.createImage(GAME_HEIGHT,GAME_WIDE);
		}
		Graphics g1 = screen.getGraphics();
		Color c = g1.getColor();
		g1.setColor(Color.BLUE);
		g1.fillRect(0, 0, GAME_WIDE, GAME_HEIGHT);
		g1.setColor(c);
		paint(g1);
		g.drawImage(screen, 0,0, null);
	
	}
}

⌨️ 快捷键说明

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