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

📄 creategame.java

📁 一个简单的Java Swing 游戏Blokus~方块圈地~Eclipse3.0 Project
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * 创建日期 2005-4-8
 *
 * TODO 要更改此生成的文件的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
package frame;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;

import javax.imageio.ImageIO;
import javax.swing.JPanel;

/**
 * @author Robert
 *
 * TODO 要更改此生成的类型注释的模板,请转至
 * 窗口 - 首选项 - Java - 代码样式 - 代码模板
 */
public class CreateGame extends JPanel{
	
	private CreateBlue bluePieces;
	private CreateYellow yellowPieces;
	private CreateRed redPieces;
	private CreateGreen greenPieces;
	private int yl = 0;
	
	private Image empty,blue,red,green,yellow,
				outside,giveup,start, exit, options,
				line1, line2,start1, exit1, options1, giveup1;
	private int[][] boardGrid;
	private int blockSize = 20, type, pColor = 0, x, y, kx, ky;
	private Graphics boardGraphics;
	private MediaTracker tracker;
	private boolean onMouse = false, startG = false;
	private int cir = 0,r2,s2;
	private Pieces temp1;
	private boolean startC = false, optionC = false, exitC = false, giveUpC = false;
	
	//构造CreateGame类
	public CreateGame(){				
		try
	    {
	         empty = ImageIO.read(new File("Images/empty.jpg"));
	         outside = ImageIO.read(new File("Images/ffx.jpg"));
	         start = ImageIO.read(new File("Images/start.jpg"));
	         options = ImageIO.read(new File("Images/option.jpg"));
	         start1 = ImageIO.read(new File("Images/start1.jpg"));
	         options1 = ImageIO.read(new File("Images/option1.jpg"));
			 exit = ImageIO.read(new File("Images/exit.jpg"));
	         giveup = ImageIO.read(new File("Images/giveUp.jpg"));
			 exit1 = ImageIO.read(new File("Images/exit1.jpg"));
	         giveup1 = ImageIO.read(new File("Images/giveUp1.jpg"));
	         blue = ImageIO.read(new File("Images/blue.jpg"));
	         yellow = ImageIO.read(new File("Images/yellow.jpg"));
	         red = ImageIO.read(new File("Images/red.jpg"));
	         green = ImageIO.read(new File("Images/green.jpg"));
			 line1 = ImageIO.read(new File("Images/line1.jpg"));
	         line2 = ImageIO.read(new File("Images/line2.jpg"));
	    }
	    catch (IOException exception)
	    {
	         exception.printStackTrace();
	    }
	    
	    init();
	}
	
	//重载Paint函数
	public void paint(Graphics g){
		
		createBoard(g);
	    
		createBlue(g);
				
		createYellow(g);
				
		createRed(g);
	
		createGreen(g);
		
		if(onMouse == true)
			createMove(g);
	}
	
	//创建初始化界面
	private void createBoard(Graphics g){
		if (empty == null || outside == null) return;
		int imageWidth = empty.getWidth(this);
		int imageHeight = empty.getHeight(this);
		//System.out.println(imageWidth);
		g.drawImage(outside, 0, 0, null);
		//for (int i = 0; i < 43; i++)
			//for (int j = 0; j < 37; j++)
				//if (i + j > 0)
					//g.copyArea(0, 0, imageWidth, imageHeight,
			                   //i * imageWidth, j * imageHeight);
		
		if(startG == true){
			g.drawImage(line1,438,18 + yl,null);
			g.drawImage(line2,438,18 + yl,null);
			g.drawImage(line1,438 + 402,18 + yl,null);
			g.drawImage(line2,438,18 + 162 + yl,null);
		}
				
		for (int i = 0; i < 20; i++)
			for (int j = 0; j < 20; j++)
				if (i + j >= 0)
					if(boardGrid[i][j] == 0)
						g.drawImage(empty, 20 + j * 20, 20 + i * 20, null);
					else if(boardGrid[i][j] == 1)
						g.drawImage(blue,20 + j * 20, 20 + i * 20, null);
					else if(boardGrid[i][j] == 2)
						g.drawImage(yellow,20 + j * 20, 20 + i * 20, null);
					else if(boardGrid[i][j] == 3)
						g.drawImage(red,20 + j * 20, 20 + i * 20, null);
					else if(boardGrid[i][j] == 4)
						g.drawImage(green,20 + j * 20, 20 + i * 20, null);
		
		if(startC == false){
			g.drawImage(start,20,480,null);
		}else{
			g.drawImage(start1,20,480,null);
		}
		
		if(optionC == false){
			g.drawImage(options,240,480,null);
		}else{
			g.drawImage(options1,240,480,null);
		}
		
		if(exitC == false){
			g.drawImage(exit,20,580,null);
		}else{
			g.drawImage(exit1,20,580,null);
		}
		
		if(giveUpC == false){
			g.drawImage(giveup,240,580,null);
		}else{
			g.drawImage(giveup1,240,580,null);
		}
	}
	
	//创建蓝色棋子区域
	private void createBlue(Graphics g){
		Iterator ite = bluePieces.getImagePieces().iterator();
		while(ite.hasNext()){
			Pieces temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 11 * 20,2 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 19 * 20,3 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 15 * 20,3 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440,1 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 3 * 20,1 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 1 * 20,2 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 16 * 20,5 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 12 * 20,8 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 9 * 20,3 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 5 * 20,7 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 15 * 20,1 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 12 * 20,4 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 0 * 20,5 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 17 * 20,6 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 5 * 20,2 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 7 * 20,4 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 7 * 20,1 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 2 * 20,5 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 3 * 20,4 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 12 * 20,1 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 9 * 20,6 * 20,null);
		}
	}
	
	//创建黄色棋子区域
	private void createYellow(Graphics g){
		Iterator ite = yellowPieces.getImagePieces().iterator();
		while(ite.hasNext()){
			Pieces temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 11 * 20,180 + 2 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 19 * 20,180 + 3 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 15 * 20,180 + 3 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440,180 + 1 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 3 * 20,180 + 1 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 1 * 20,180 + 2 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 16 * 20,180 + 5 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 12 * 20,180 + 8 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 9 * 20,180 + 3 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 5 * 20,180 + 7 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 15 * 20,180 + 1 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 12 * 20,180 + 4 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 0 * 20,180 + 5 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 17 * 20,180 + 6 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 5 * 20,180 + 2 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 7 * 20,180 + 4 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 7 * 20,180 + 1 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 2 * 20,180 + 5 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 3 * 20,180 + 4 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 12 * 20,180 + 1 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 9 * 20,180 + 6 * 20,null);
		}
	}
	
	//创建红色棋子区域
	private void createRed(Graphics g){
		Iterator ite = redPieces.getImagePieces().iterator();
		while(ite.hasNext()){
			Pieces temp = (Pieces)ite.next();
			//1
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 11 * 20,180 * 2 + 2 * 20,null);
			//2
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 19 * 20,180 * 2 + 3 * 20,null);
			//3
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 15 * 20,180 * 2 + 3 * 20,null);
			//4
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440,180 * 2 + 1 * 20,null);
			//5
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 3 * 20,180 * 2 + 1 * 20,null);
			//6
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 1 * 20,180 * 2 + 2 * 20,null);
			//7
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 16 * 20,180 * 2 + 5 * 20,null);
			//8
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 12 * 20,180 * 2 + 8 * 20,null);
			//9
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 9 * 20,180 * 2 + 3 * 20,null);
			//10
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 5 * 20,180 * 2 + 7 * 20,null);
			//11
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 15 * 20,180 * 2 + 1 * 20,null);
			//12
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 12 * 20,180 * 2 + 4 * 20,null);
			//13
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 0 * 20,180 * 2 + 5 * 20,null);
			//14
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 17 * 20,180 * 2 + 6 * 20,null);
			//15
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 5 * 20,180 * 2 + 2 * 20,null);
			//16
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 7 * 20,180 * 2 + 4 * 20,null);
			//17
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 7 * 20,180 * 2 + 1 * 20,null);
			//18
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 2 * 20,180 * 2 + 5 * 20,null);
			//19
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 3 * 20,180 * 2 + 4 * 20,null);
			//20
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 12 * 20,180 * 2 + 1 * 20,null);
			//21
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 9 * 20,180 * 2 + 6 * 20,null);
		}
	}
	
	//创建绿色棋子区域
	private void createGreen(Graphics g){
		Iterator ite = greenPieces.getImagePieces().iterator();
		while(ite.hasNext()){
			Pieces temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 11 * 20,180 * 3 + 2 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 19 * 20,180 * 3 + 3 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 15 * 20,180 * 3 + 3 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440,180 * 3 + 1 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 3 * 20,180 * 3 + 1 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 1 * 20,180 * 3 + 2 * 20,null);
			temp = (Pieces)ite.next();
			if(temp.getPSelected() == false && temp.getOnBoard() == false && temp.getInUse() == true)
				g.drawImage(temp.getPiece(),440 + 16 * 20,180 * 3 + 5 * 20,null);
			temp = (Pieces)ite.next();

⌨️ 快捷键说明

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