0
点赞
收藏
分享

微信扫一扫

【汇智学堂】-JAVA桌面游戏开发(五子棋之三:程序主界面)


之三:程序主界面

等级选择“初级”,进入“程序主界面”,效果见下图:

【汇智学堂】-JAVA桌面游戏开发(五子棋之三:程序主界面)_JAVA游戏开发

准备工作:

【汇智学堂】-JAVA桌面游戏开发(五子棋之三:程序主界面)_JAVA游戏开发_02


Images文件夹下,放置level.png图片一张。

代码实现:

PCBoard .java

package com.fivechess.view;

public class PCBoard extends Board {
private PCChessBoard2 pcchessboard2;//棋盘
public PCBoard() {
init();
}

public void init() {		
	pcchessboard2=new PCChessBoard2();		
	pcchessboard2.setBounds(200, 50, 600, 700);
	pcchessboard2.setVisible(true);		
	add(pcchessboard2);		
}

}

//Board类的代码:

package com.fivechess.view;
import java.awt.Graphics;
import javax.swing.JFrame;

public class Board extends JFrame {

public Board() {
	 
	 setLayout(null); //取消原来布局
     setBounds(300,50,800,700);
     //init1();
     setVisible(true);
        
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     setResizable(false);
     
     setTitle("雷雷的五子棋");
}

/**
 * 绘图
 * @param g
 */
public void paint(Graphics g)
{
    super.paint(g);
    repaint();
}

}

===========================================================================
//棋盘PCChessBoard2类

package com.fivechess.view;

import java.awt.event.MouseEvent;
import javax.swing.JOptionPane;

public class PCChessBoard2 extends ChessBoard2{

public int whichColor=0;
private int ex;
private int ey;	

public static int isClose=0;	
	
//落下棋子
@Override
public void mouseMoved(MouseEvent e) {		
	repaint();		    	
} 

@Override
public void mouseClicked(MouseEvent e) {
	
	if(isClose==1) {
		return;
	}
	
	 ex=e.getX();
	 ey=e.getY();
	 
	 float x = (ex - 25) / 25;
     float y = (ey - 25) / 25;
     int x1 = (int) x;
     int y1 = (int) y;		
}

}

ChessBoard2类

package com.fivechess.view;

import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;

import javax.swing.JPanel;

/*
 * 汇制棋盘的代码
 * */
public class ChessBoard2 extends JPanel implements MouseMotionListener,MouseListener{
	
	public Image chessBoardImage;
	public Image blackChess;
	public Image whiteChess;
	
	public Image buttonBoard;
	
	public static final int COLS=19;
	public static final int RAWS=19;//棋盘的行数和列数
	
	public int position[][]=new int[COLS][RAWS];
	
	public ChessBoard2() {
		
		chessBoardImage = Toolkit.getDefaultToolkit().getImage("images/chessBoard.jpg");		
		blackChess= Toolkit.getDefaultToolkit().getImage("images/black.png");		
		whiteChess= Toolkit.getDefaultToolkit().getImage("images/white.png");
		
		buttonBoard= Toolkit.getDefaultToolkit().getImage("images/buttonBoard.png");

		addMouseListener(this);
	}
	
	 /**
       * 初始化数组为BLANK
     */
    public void initStart()
    {
        for(int i=0;i<19;i++)
        {
            for(int j=0;j<19;j++)
            {
            	position[i][j]= 0;//“0”代表当前无棋子
            }
        }
    }
	
	//汇制棋盘
	@Override
    public void paintComponent(Graphics g) {
    	super.paintComponent(g);
        g.drawImage(chessBoardImage, 0, 0,null);         
        g.drawImage(buttonBoard, 550, 50, null);
         
        for (int i = 0; i < 19; i++) {
            for (int j = 0; j < 19; j++) {
                if (position[i][j] ==2) {
                    g.drawImage(blackChess, 13+i * 25 ,  13+j * 25 , null);
                } else if (position[i][j] ==1) {
                    g.drawImage(whiteChess,  13+i * 25 , 13+j * 25 , null);
                }
            }
        }
    }	
	
	 @Override
	    public void mouseClicked(MouseEvent e) {
		 
	    }
	    /**
	     * 按下鼠标时,记录鼠标的位置,并改写数组的数值,重新绘制图形
	     * @param e
	     */
	    @Override
	    public void mousePressed(MouseEvent e) {
	     }

	    @Override
	    public void mouseReleased(MouseEvent e) {
	    }

	    @Override
	    public void mouseEntered(MouseEvent e) {
	    }

	    @Override
	    public void mouseExited(MouseEvent e) {
	    }
		@Override
		public void mouseDragged(MouseEvent e) {
			// TODO Auto-generated method stub			
		}
		@Override
		public void mouseMoved(MouseEvent e) {
			// TODO Auto-generated method stub			
		}
}


举报

相关推荐

0 条评论