📄 creategame.java
字号:
/*
* 创建日期 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 + -