java推箱子游戲原始碼
第一個Java檔案:
import java.awt.Color;
import java.awt.HeadlessException;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class GameFrame extends JFrame {
JPanel zhuobu = new JPanel();
//工人
JLabel worker = null;
//箱子
JLabel box = null;
//目的地
JLabel goal = null;
JLabel[] walls = null;
//設定圖片大小
int imgSize = 48;
public void setImgSize(int imgSize){
this.imgSize = imgSize;
}
public GameFrame(String title) throws HeadlessException { super(title);
//構造方法中呼叫本類的其它方法
this.initContentPane();
}
/**
* 設定內容面板
*/
void initContentPane() {
zhuobu.setBackground(Color.red);
zhuobu.setLayout(null);
//呼叫父類的屬性和方法
super.setContentPane(zhuobu);
第一個Java檔案:
import java.awt.Color;
import java.awt.HeadlessException;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class GameFrame extends JFrame {
JPanel zhuobu = new JPanel();
//工人
JLabel worker = null;
//箱子
JLabel box = null;
//目的地
JLabel goal = null;
JLabel[] walls = null;
//設定圖片大小
int imgSize = 48;
public void setImgSize(int imgSize){
this.imgSize = imgSize;
}
public GameFrame(String title) throws HeadlessException { super(title);
//構造方法中呼叫本類的其它方法
this.initContentPane();
}
/**
* 設定內容面板
*/
void initContentPane() {
zhuobu.setBackground(Color.red);
zhuobu.setLayout(null);
//呼叫父類的屬性和方法
super.setContentPane(zhuobu);
第一個Java檔案:
import java.awt.Color;
import java.awt.HeadlessException;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class GameFrame extends JFrame {
JPanel zhuobu = new JPanel();
//工人
JLabel worker = null;
//箱子
JLabel box = null;
//目的地
JLabel goal = null;
JLabel[] walls = null;
//設定圖片大小
int imgSize = 48;
public void setImgSize(int imgSize){
this.imgSize = imgSize;
}
public GameFrame(String title) throws HeadlessException { super(title);
//構造方法中呼叫本類的其它方法
this.initContentPane();
}
/**
* 設定內容面板
*/
void initContentPane() {
zhuobu.setBackground(Color.red);
zhuobu.setLayout(null);
//呼叫父類的屬性和方法
super.setContentPane(zhuobu);
第一個Java檔案:
import java.awt.Color;
import java.awt.HeadlessException;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class GameFrame extends JFrame {
JPanel zhuobu = new JPanel();
//工人
JLabel worker = null;
//箱子
JLabel box = null;
//目的地
JLabel goal = null;
JLabel[] walls = null;
//設定圖片大小
int imgSize = 48;
public void setImgSize(int imgSize){
this.imgSize = imgSize;
}
public GameFrame(String title) throws HeadlessException { super(title);
//構造方法中呼叫本類的其它方法
this.initContentPane();
}
/**
* 設定內容面板
*/
void initContentPane() {
zhuobu.setBackground(Color.red);
zhuobu.setLayout(null);
//呼叫父類的屬性和方法
super.setContentPane(zhuobu);
} /** * 把某個圖片以元件的方式加入窗體 * @param imgPath 圖片路徑 * @param x x * @param y y * @param width 寬度 * @param height 高度 * @return 新增完的元件 */ void addComponent(int tag, String imgPath, int x, int y) { ImageIcon img = new ImageIcon(imgPath); //建立JLabel並把ImageIcon通過構造方法傳參傳入 //把食物放到盤子裡 JLabel componet = new JLabel(img); //設定盤子在桌布上的位置和大小 componet.setBounds(x, y, imgSize, imgSize); //把盤子放到桌布上 zhuobu.add(componet); switch (tag) { case 1: box = componet; break; case 2: goal = componet; break; case 3: worker = componet; break; } } void addWall(String imgPath, int[][] loactions) { ImageIcon wallImg = new ImageIcon(imgPath); walls = new JLabel[66 + loactions.length]; for (int i = 0; i < walls.length; i++) { //建立沒每一個圍牆,他們使用的是同一個圖片 walls[i] = new JLabel(wallImg); } for (int i = 0; i < walls.length; i++) { //建立沒每一個圍牆,他們使用的是同一個圖片
第一個Java檔案:
import java.awt.Color;
import java.awt.HeadlessException;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class GameFrame extends JFrame {
JPanel zhuobu = new JPanel();
//工人
JLabel worker = null;
//箱子
JLabel box = null;
//目的地
JLabel goal = null;
JLabel[] walls = null;
//設定圖片大小
int imgSize = 48;
public void setImgSize(int imgSize){
this.imgSize = imgSize;
}
public GameFrame(String title) throws HeadlessException { super(title);
//構造方法中呼叫本類的其它方法
this.initContentPane();
}
/**
* 設定內容面板
*/
void initContentPane() {
zhuobu.setBackground(Color.red);
zhuobu.setLayout(null);
//呼叫父類的屬性和方法
super.setContentPane(zhuobu);
第一個Java檔案:
import java.awt.Color;
import java.awt.HeadlessException;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class GameFrame extends JFrame {
JPanel zhuobu = new JPanel();
//工人
JLabel worker = null;
//箱子
JLabel box = null;
//目的地
JLabel goal = null;
JLabel[] walls = null;
//設定圖片大小
int imgSize = 48;
public void setImgSize(int imgSize){
this.imgSize = imgSize;
}
public GameFrame(String title) throws HeadlessException { super(title);
//構造方法中呼叫本類的其它方法
this.initContentPane();
}
/**
* 設定內容面板
*/
void initContentPane() {
zhuobu.setBackground(Color.red);
zhuobu.setLayout(null);
//呼叫父類的屬性和方法
super.setContentPane(zhuobu);
walls[i] = new JLabel(wallImg);
}
int index = 0;
/*分別設定各個圖片位置*/
for (int i = 0; i < 14; i++) {
//左邊牆
walls[index].setBounds(0, i * imgSize, imgSize, imgSize);
zhuobu.add(walls[index]);
index++;
//右邊牆
walls[index].setBounds(20 * imgSize, i * imgSize, imgSize, imgSize);
zhuobu.add(walls[index]);
index++;
}
for (int i = 0; i < 19; i++) {
//上邊牆
walls[index].setBounds((i + 1) * imgSize, 0, imgSize, imgSize);
zhuobu.add(walls[index]);
index++;
//下邊牆
walls[index].setBounds((i + 1) * imgSize, 13 * imgSize, imgSize, imgSize); zhuobu.add(walls[index]);
index++;
}
//新增中間障礙 耦合 解耦
for (int i = 0; i < loactions.length; i++) {
walls[index].setBounds(loactions[i][0]* imgSize, loactions[i][1]* imgSize, imgSize, imgSize);
zhuobu.add(walls[index]);
index++;
}
}
}
第二個Java檔案:
public class Run {
public static void main(String[] args) {
GameFrame gameFrame = new GameFrame("推箱子游戲 …");
//設定大小
gameFrame.setBounds(100, 50, 21 * 48 + 5, 14 * 48 + 25);
//窗體大小不可變
gameFrame.setResizable(false);
gameFrame.setImgSize(48);
第一個Java檔案:
import java.awt.Color;
import java.awt.HeadlessException;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class GameFrame extends JFrame {
JPanel zhuobu = new JPanel();
//工人
JLabel worker = null;
//箱子
JLabel box = null;
//目的地
JLabel goal = null;
JLabel[] walls = null;
//設定圖片大小
int imgSize = 48;
public void setImgSize(int imgSize){
this.imgSize = imgSize;
}
public GameFrame(String title) throws HeadlessException { super(title);
//構造方法中呼叫本類的其它方法
this.initContentPane();
}
/**
* 設定內容面板
*/
void initContentPane() {
zhuobu.setBackground(Color.red);
zhuobu.setLayout(null);
//呼叫父類的屬性和方法
super.setContentPane(zhuobu);
第一個Java檔案:
import java.awt.Color;
import java.awt.HeadlessException;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class GameFrame extends JFrame {
JPanel zhuobu = new JPanel();
//工人
JLabel worker = null;
//箱子
JLabel box = null;
//目的地
JLabel goal = null;
JLabel[] walls = null;
//設定圖片大小
int imgSize = 48;
public void setImgSize(int imgSize){
this.imgSize = imgSize;
}
public GameFrame(String title) throws HeadlessException { super(title);
//構造方法中呼叫本類的其它方法
this.initContentPane();
}
/**
* 設定內容面板
*/
void initContentPane() {
zhuobu.setBackground(Color.red);
zhuobu.setLayout(null);
//呼叫父類的屬性和方法
super.setContentPane(zhuobu);
} } gameFrame.addComponent(3, "workerUp.png", 400, 100); gameFrame.addComponent(1, "box.png", 160, 60); gameFrame.addComponent(2, "goal.png", 80, 520); int[][] wallLocations ={ {4, 5},{5, 5},{6, 5},{7, 5}, {8, 5},{9, 5},{10, 5},{6, 8}, {7, 8}, {8, 8}, {9, 8}, {10, 8}, {11, 5} }; gameFrame.addWall("wall.png", wallLocations); gameFrame.setVisible(true);
Java免費學習資料直播公開課群175161984
第一個Java檔案:
import java.awt.Color;
import java.awt.HeadlessException;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class GameFrame extends JFrame {
JPanel zhuobu = new JPanel();
//工人
JLabel worker = null;
//箱子
JLabel box = null;
//目的地
JLabel goal = null;
JLabel[] walls = null;
//設定圖片大小
int imgSize = 48;
public void setImgSize(int imgSize){
this.imgSize = imgSize;
}
public GameFrame(String title) throws HeadlessException { super(title);
//構造方法中呼叫本類的其它方法
this.initContentPane();
}
/**
* 設定內容面板
*/
void initContentPane() {
zhuobu.setBackground(Color.red);
zhuobu.setLayout(null);
//呼叫父類的屬性和方法
super.setContentPane(zhuobu);
第一個Java檔案:
import java.awt.Color;
import java.awt.HeadlessException;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class GameFrame extends JFrame {
JPanel zhuobu = new JPanel();
//工人
JLabel worker = null;
//箱子
JLabel box = null;
//目的地
JLabel goal = null;
JLabel[] walls = null;
//設定圖片大小
int imgSize = 48;
public void setImgSize(int imgSize){
this.imgSize = imgSize;
}
public GameFrame(String title) throws HeadlessException { super(title);
//構造方法中呼叫本類的其它方法
this.initContentPane();
}
/**
* 設定內容面板
*/
void initContentPane() {
zhuobu.setBackground(Color.red);
zhuobu.setLayout(null);
//呼叫父類的屬性和方法
super.setContentPane(zhuobu);