日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java實現推箱子游戲

瀏覽:53日期:2022-09-01 13:14:21

本文實例為大家分享了Java實現推箱子游戲的具體代碼,供大家參考,具體內容如下

package Test1; //用于調用Test2包import Test2.*;import java.awt.*;import javax.swing.*; public class APP extends JFrame{ public static void main(String[] args) { // TODO Auto-generated method stub APP a = new APP(); } public APP() { new Members(); } }

package Test2; import java.awt.Event;import java.awt.Font;import java.awt.event.KeyEvent;import java.awt.event.KeyListener; import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane; public class Members extends JFrame implements KeyListener{ //定義一個JLabel數組,用來存放羊的位置 JLabel [][]sheep = new JLabel[12][16]; //0表示的是空地,1表示的是樹木 int[][] datas = { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,0,0,0,0,0,0,0,1,1,1,0,0,0,1}, {1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1}, {1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} }; //狼的位置 int wx,wy; /* * num值變化的情況 * 1.當羊進入籠子的時候,num+1 * 2.當羊離開籠子的時候,num-1 * 3.當羊從一個籠子離開進入另外一個籠子的時候,num不變 */ //開始的時候羊進入箱子的總數量 int num = 0; //籠子的總數量 int total = 3; //構造函數 public Members() { /* * 如果先放大的圖片再放下的會把小的給覆蓋,不能看到 * 圖片有大小。把小的圖片放在大的圖片上面 * 所以添加圖片組件的時候有順序,要注意把小的放在大的上面 */ //小圖片 //障礙的設計 treeInit(); //做籠子 targetInit(); //推箱子人物的初始化 WolfInit(); //羊的初始化 sheepInit(); //背景圖片,大的 //添加背景圖片到窗體中 backGroundInit(); //設置整個窗體 setForm(); //注冊監聽 this.addKeyListener(this); } //設置整個窗體 private void setForm() { // TODO Auto-generated method stub this.setTitle('推箱子游戲'); this.setSize(825,645); //禁止用戶改變窗體大小 this.setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設置窗口居中顯示 this.setLocationRelativeTo(null); this.setVisible(true); } //背景圖片初始化 private void backGroundInit() { // TODO Auto-generated method stub Icon i = new ImageIcon('floor.png'); //使用JLabel制作背景 JLabel lab_bg = new JLabel(i); //設置要添加的組件的位置與大小 lab_bg.setBounds(0, 0, 800, 600); //將這個東西添加到窗體里面 this.add(lab_bg); } //羊所在的位置初始化 private void sheepInit() { // TODO Auto-generated method stub //三只羊 Icon i = new ImageIcon('7.png'); JLabel jb1 = new JLabel(i); jb1.setBounds(6 * 50, 4 * 50, 50, 50); this.add(jb1); //羊所在位置的值設置為4 datas[4][6] = 4; sheep[4][6] = jb1; JLabel jb2 = new JLabel(i); jb2.setBounds(6 * 50, 6 * 50, 50, 50); this.add(jb2); datas[6][6] = 4; sheep[6][6] = jb2; JLabel jb3 = new JLabel(i); jb3.setBounds(6 * 50, 10 * 50, 50, 50); this.add(jb3); datas[10][6] = 4; sheep[10][6] = jb3; } JLabel jb = null; private void WolfInit() { // TODO Auto-generated method stub //人物最初位置在哪里? wx = 4 ; wy = 5 ; //使用一張圖片來模擬人物 //1.創建一張圖片,人物圖片 Icon i = new ImageIcon('3.png'); //2.使用JLabel組件模擬人物 jb = new JLabel(i); //3.設置人物在屏幕上的顯示位置 //人物的顯示位置放置在何處較為合理?---------------- jb.setBounds(wx*50, wy*50, 50, 50); //4.把這個人物放到窗體里面 this.add(jb); } //籠子的位置初始化 private void targetInit() { // TODO Auto-generated method stub Icon i = new ImageIcon('target.png'); JLabel jb1 = new JLabel(i); jb1.setBounds(14 * 50, 10 * 50,50,50); this.add(jb1); datas[10][14] = 8; JLabel jb2 = new JLabel(i); jb2.setBounds(13 * 50, 10 * 50, 50, 50); this.add(jb2); datas[10][13] = 8; JLabel jb3 = new JLabel(i); jb3.setBounds(14 * 50, 9 * 50, 50, 50); this.add(jb3); datas[9][14] = 8; } //樹木的初始化 private void treeInit() { // TODO Auto-generated method stub Icon k = new ImageIcon('tree.png'); JLabel t = null; for(int i = 0;i < datas.length;i ++){ for(int j = 0;j < datas[i].length;j ++){ if(datas[i][j] == 1){ t = new JLabel(k); t.setBounds(j*50, i*50, 50, 50); this.add(t); } } } } //判斷是否勝利 private void victory() { if(num == total){ //設計一個彈框,提示游戲完成 Icon i = new ImageIcon('6.png'); JOptionPane.showMessageDialog(null, '游戲結束','推箱子',2,i); /* * 如果要設置關卡,則要在這里添加信息 * 注意修改num的值 * 根據自己關卡的數量,把datas數組設計成三維的額 */ } } @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub /* * datas數值的情況 * 0 空地 * 1 樹木 * 4 羊 * 8 空籠子 * 12 放羊的籠子 * 結合這些數值去看下面的代碼 */ /* * W 向上 * D 向右 * S 向下 * A 向左 * 注意一個盲區,這個問題考慮了好久,在Java坐標體系中,坐標軸是水平方向為x軸,豎直方向為y軸 * 而在數組中先水平方向,后豎直方向,所以在datas數組中填寫數值為先y后x */ if(e.getKeyCode() == KeyEvent.VK_ENTER){ /* * 每一次按鍵都要討論下面這些情況 * 1.浪 樹木 * 2.狼 羊 樹木 * 3.狼 羊 羊 * 4.狼 羊 放羊的籠子 * 5.狼 放羊的籠子 樹 * 6.狼 放羊的籠子 羊 * 7.狼 放羊的籠子 放羊的籠子 * 上面的這些情況都不做處理,因為不能移動 * 8.狼 空地 * 9.狼 空籠子 * 10.狼 羊 空地 * 11.狼 羊 空籠子 * 12.狼 放羊的籠子 空地 * 13.狼 放羊的籠子 空籠子 * 這些情況需要有相應的變化,見代碼 */ if(datas[wy-1][wx] == 1){ return; } if(datas[wy-1][wx] == 4 && datas[wy-2][wx] == 1){ return; } if(datas[wy-1][wx] == 4 && datas[wy-2][wx] == 4){ return; } if(datas[wy-1][wx] == 4 && datas[wy-1][wx] == 12){ return; } if(datas[wy-1][wx] == 12 && datas[wy-2][wx] == 1){ return; } if(datas[wy-1][wx] == 12 && datas[wy-2][wx] == 4){ return; } if(datas[wy-1][wx] == 12 && datas[wy-2][wx] == 12){ return; } if(datas[wy-1][wx] == 0){ wy -= 1; //坐標得到的不是int類型。注意強制類型轉化 int x = (int)jb.getLocation().getX(); int y = (int)jb.getLocation().getY(); jb.setLocation(x, y - 50); Icon i = new ImageIcon('1.png'); jb.setIcon(i); return; } if(datas[wy-1][wx] == 8){ wy -= 1; //坐標得到的不是int類型。注意強制類型轉化 int x = (int)jb.getLocation().getX(); int y = (int)jb.getLocation().getY(); jb.setLocation(x, y - 50); Icon i = new ImageIcon('1.png'); jb.setIcon(i); return; } if(datas[wy-1][wx] == 4 && datas[wy-2][wx] == 0){ datas[wy-1][wx] = 0; datas[wy-2][wx] = 4; } if(datas[wy-1][wx] == 4 && datas[wy-2][wx] == 8){ datas[wy-1][wx] = 0; datas[wy-2][wx] = 12; num ++; } if(datas[wy-1][wx] == 12 && datas[wy-2][wx] == 0){ datas[wy-1][wx] = 8; datas[wy-2][wx] = 4; num --; } if(datas[wy-1][wx] == 12 && datas[wy-2][wx] == 8){ datas[wy-1][wx] = 8; datas[wy-2][wx] = 12; } sheep[wy-1][wx].setLocation(wx*50, wy*50-100); sheep[wy-2][wx] = sheep[wy-1][wx]; sheep[wy-1][wx] = null; wy -= 1; //坐標得到的不是int類型。注意強制類型轉化 int x = (int)jb.getLocation().getX(); int y = (int)jb.getLocation().getY(); jb.setLocation(x, y - 50); Icon i = new ImageIcon('1.png'); jb.setIcon(i); victory(); return; } else if(e.getKeyCode() == KeyEvent.VK_D){ if(datas[wy][wx+1] == 1){ return; } if(datas[wy][wx+1] == 4 && datas[wy][wx+2] == 1){ return; } if(datas[wy][wx+1] == 4 && datas[wy][wx+2] == 4){ return; } if(datas[wy][wx+1] == 4 && datas[wy][wx+2] == 12){ return; } if(datas[wy][wx+1] == 12 && datas[wy][wx+2] == 1){ return; } if(datas[wy][wx+1] == 12 && datas[wy][wx+2] == 4){ return; } if(datas[wy][wx+1] == 12 && datas[wy][wx+2] == 12){ return; } if(datas[wy][wx+1] == 0){ wx += 1; //坐標得到的不是int類型。注意強制類型轉化 int x = (int)jb.getLocation().getX(); int y = (int)jb.getLocation().getY(); jb.setLocation(x + 50, y); Icon i = new ImageIcon('2.png'); jb.setIcon(i); return; } if(datas[wy][wx+1] == 8){ wx += 1; //坐標得到的不是int類型。注意強制類型轉化 int x = (int)jb.getLocation().getX(); int y = (int)jb.getLocation().getY(); jb.setLocation(x + 50, y); Icon i = new ImageIcon('2.png'); jb.setIcon(i); return; } if(datas[wy][wx+1] == 4 && datas[wy][wx+2] == 0){ datas[wy][wx+1] = 0; datas[wy][wx+2] = 4; } if(datas[wy][wx+1] == 4 && datas[wy][wx+2] == 8){ datas[wy][wx+1] = 0; datas[wy][wx+2] = 12; num ++; } if(datas[wy][wx+1] == 12 && datas[wy][wx+2] == 0){ datas[wy][wx+1] = 8; datas[wy][wx+2] = 4; num --; } if(datas[wy][wx+1] == 12 && datas[wy][wx+2] == 8){ datas[wy][wx+1] = 8; datas[wy][wx+2] = 12; } sheep[wy][wx+1].setLocation(wx*50+100, wy*50); sheep[wy][wx+2] = sheep[wy][wx+1]; sheep[wy][wx+1] = null; wx += 1; //坐標得到的不是int類型。注意強制類型轉化 int x = (int)jb.getLocation().getX(); int y = (int)jb.getLocation().getY(); jb.setLocation(x + 50, y); Icon i = new ImageIcon('2.png'); jb.setIcon(i); victory(); return; } else if(e.getKeyCode() == KeyEvent.VK_S){ if(datas[wy+1][wx] == 1){ return; } if(datas[wy+1][wx] == 4 && datas[wy+2][wx] == 1){ return; } if(datas[wy+1][wx] == 4 && datas[wy+2][wx] == 4){ return; } if(datas[wy+1][wx] == 4 && datas[wy+2][wx] == 12){ return; } if(datas[wy+1][wx] == 12 && datas[wy+2][wx] == 1){ return; } if(datas[wy+1][wx] == 12 && datas[wy+2][wx] == 4){ return; } if(datas[wy+1][wx] == 12 && datas[wy+2][wx] == 12){ return; } if(datas[wy+1][wx] == 0){ wy += 1; //坐標得到的不是int類型。注意強制類型轉化 int x = (int)jb.getLocation().getX(); int y = (int)jb.getLocation().getY(); jb.setLocation(x, y + 50); Icon i = new ImageIcon('3.png'); jb.setIcon(i); return; } if(datas[wy+1][wx] == 8){ wy += 1; //坐標得到的不是int類型。注意強制類型轉化 int x = (int)jb.getLocation().getX(); int y = (int)jb.getLocation().getY(); jb.setLocation(x, y + 50); Icon i = new ImageIcon('3.png'); jb.setIcon(i); return; } if(datas[wy+1][wx] == 4 && datas[wy+2][wx] == 0){ datas[wy+1][wx] = 0; datas[wy+2][wx] = 4; } if(datas[wy+1][wx] == 4 && datas[wy+2][wx] == 8){ datas[wy+1][wx] = 0; datas[wy+2][wx] = 12; num ++; } if(datas[wy+1][wx] == 12 && datas[wy+2][wx] == 0){ datas[wy+1][wx] = 8; datas[wy+2][wx] = 4; num --; } if(datas[wy+1][wx] == 12 && datas[wy+2][wx] == 8){ datas[wy+1][wx] = 8; datas[wy+2][wx] = 12; } sheep[wy+1][wx].setLocation(wx*50, wy*50+100); sheep[wy+2][wx] = sheep[wy+1][wx]; sheep[wy+1][wx] = null; wy += 1; //坐標得到的不是int類型。注意強制類型轉化 int x = (int)jb.getLocation().getX(); int y = (int)jb.getLocation().getY(); jb.setLocation(x, y + 50); Icon i = new ImageIcon('3.png'); jb.setIcon(i); victory(); return; } else if(e.getKeyCode() == KeyEvent.VK_A){ if(datas[wy][wx-1] == 1){ return; } if(datas[wy][wx-1] == 4 && datas[wy][wx-2] == 1){ return; } if(datas[wy][wx-1] == 4 && datas[wy][wx-2] == 4){ return; } if(datas[wy][wx-1] == 4 && datas[wy][wx-2] == 12){ return; } if(datas[wy][wx-1] == 12 && datas[wy][wx-2] == 1){ return; } if(datas[wy][wx-1] == 12 && datas[wy][wx-2] == 4){ return; } if(datas[wy][wx-1] == 12 && datas[wy][wx-2] == 12){ return; } if(datas[wy][wx-1] == 0){ wx -= 1; //坐標得到的不是int類型。注意強制類型轉化 int x = (int)jb.getLocation().getX(); int y = (int)jb.getLocation().getY(); jb.setLocation(x - 50, y); Icon i = new ImageIcon('4.png'); jb.setIcon(i); return; } if(datas[wy][wx-1] == 8){ wx -= 1; //坐標得到的不是int類型。注意強制類型轉化 int x = (int)jb.getLocation().getX(); int y = (int)jb.getLocation().getY(); jb.setLocation(x - 50, y); Icon i = new ImageIcon('4.png'); jb.setIcon(i); return; } if(datas[wy][wx-1] == 4 && datas[wy][wx-2] == 0){ datas[wy][wx-1] = 0; datas[wy][wx-2] = 4; } if(datas[wy][wx-1] == 4 && datas[wy][wx-2] == 8){ datas[wy][wx-1] = 0; datas[wy][wx-2] = 12; num ++; } if(datas[wy][wx-1] == 12 && datas[wy][wx-2] == 0){ datas[wy][wx-1] = 8; datas[wy][wx-2] = 4; num --; } if(datas[wy][wx-1] == 12 && datas[wy][wx-2] == 8){ datas[wy][wx-1] = 8; datas[wy][wx-2] = 12; } sheep[wy][wx-1].setLocation(wx*50-100, wy*50); sheep[wy][wx-2] = sheep[wy][wx-1]; sheep[wy][wx-1] = null; wx -= 1; //坐標得到的不是int類型。注意強制類型轉化 int x = (int)jb.getLocation().getX(); int y = (int)jb.getLocation().getY(); jb.setLocation(x - 50, y); Icon i = new ImageIcon('4.png'); jb.setIcon(i); victory(); return; } } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub }}

Java實現推箱子游戲

Java實現推箱子游戲

更多有趣的經典小游戲實現專題,分享給大家:

C++經典小游戲匯總

python經典小游戲匯總

python俄羅斯方塊游戲集合

JavaScript經典游戲 玩不停

javascript經典小游戲匯總

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩免费看片| 天堂√8在线中文| 一区在线免费观看| 激情久久中文字幕| 91成人精品视频| 欧美+日本+国产+在线a∨观看| 在线手机中文字幕| 美女一区网站| 99久久九九| 免费欧美一区| 视频一区中文字幕| 欧美日韩国产一区精品一区| 午夜精品亚洲| 日韩中文字幕不卡| 亚洲精品大片| 国产无遮挡裸体免费久久| 亚洲ww精品| 欧美亚洲一级| 麻豆国产一区| 午夜精品久久久久久久久久蜜桃| 99精品电影| 亚洲一区网站| 日本久久二区| 国产精品www994| 国产精品国产三级国产在线观看| 成人啊v在线| 免费观看久久av| 国产毛片一区| 欧美日韩黄网站| 精品欧美日韩精品| 亚洲va在线| 久久av一区二区三区| 午夜久久av | 日韩欧美一区二区三区免费看| 久久免费黄色| 久久午夜精品| 国产精品啊啊啊| 色婷婷亚洲mv天堂mv在影片| 久久精品欧美一区| 亚洲一区二区三区在线免费| 国产精品v一区二区三区| 黄色aa久久| 午夜视频精品| 国产日韩精品视频一区二区三区| 丰满少妇一区| 午夜久久久久| 国产精品片aa在线观看| 三级在线看中文字幕完整版| 久久国产精品久久w女人spa| 国产欧美啪啪| 久久精品国产99久久| 亚洲区国产区| 国产精品chinese| 中文字幕系列一区| 日韩一区精品| 丰满少妇一区| 日韩精品一区第一页| 欧美激情精品| 亚洲高清成人| 国产乱码精品一区二区亚洲| 99成人超碰| 欧美日韩在线精品一区二区三区激情综合 | 日韩精品一区第一页| 久久国产婷婷国产香蕉| 免费看av不卡| 国产日韩一区二区三区在线播放| 国产伦久视频在线观看| 亚洲色图国产| 天堂√中文最新版在线| 免费在线观看视频一区| 久久久久黄色| 视频在线在亚洲| 天堂中文av在线资源库| 日本 国产 欧美色综合| 国精品产品一区| 日韩精品视频网站| 日韩在线观看不卡| 国产精品一级| 亚洲男女av一区二区| 欧美91在线|欧美| 视频一区二区三区入口| 日韩在线中文| 日韩视频1区| 免费观看不卡av| 精品美女在线视频| 涩涩涩久久久成人精品| 999国产精品| 国产精品乱战久久久| 久久国产精品亚洲77777| 日产精品一区二区| 国产日本精品| 午夜在线精品| 99视频精品全部免费在线视频| 国产免费av一区二区三区| 亚洲免费黄色| 色婷婷狠狠五月综合天色拍| 精品国产精品久久一区免费式 | 久久aⅴ国产紧身牛仔裤| 日韩一区二区在线免费| 欧美日韩调教| 亚洲综合专区| 九九综合在线| 中文字幕在线免费观看视频| 日本午夜精品一区二区三区电影| 亚洲神马久久| 久久理论电影| 韩国精品主播一区二区在线观看| 欧美a一区二区| 欧美精品观看| 日本va欧美va欧美va精品| 石原莉奈在线亚洲三区| 国产一区二区三区自拍| 精品丝袜在线| 国产精品yjizz视频网| 国产精品嫩草影院在线看| 亚洲三级国产| 久久亚洲影院| 午夜在线一区| 亚洲精品一二三区区别| 亚洲一本视频| 天堂资源在线亚洲| 99久久精品费精品国产| 日韩免费看片| www成人在线视频| 91看片一区| 日韩在线短视频| 欧洲一区二区三区精品| 欧美激情另类| 国产精品原创| 日产午夜精品一线二线三线| 成人在线视频中文字幕| 久久精品九色| 国产一区丝袜| 精品国产精品国产偷麻豆 | 精品不卡一区| 色乱码一区二区三区网站| a国产在线视频| 日韩欧美中文| 激情视频一区二区三区| 日韩视频中文| 日韩影院精彩在线| 日韩美女精品| 国产欧美日韩一区二区三区在线| 国产精品99久久免费观看| 精品国产aⅴ| 日韩在线观看不卡| 激情婷婷亚洲| 久热综合在线亚洲精品| 最新国产精品视频| 国产精品观看| 日韩久久精品| 伊人久久亚洲美女图片| 免费视频一区二区| 日韩精品国产欧美| 国产精成人品2018| 国产精品高颜值在线观看| 色88888久久久久久影院| 欧美aa国产视频| 视频一区免费在线观看| 欧美精品影院| 四虎成人av| 欧美精品一线| 日韩三级视频| 精品一区二区三区中文字幕视频 | 99精品视频在线| 伊人久久大香伊蕉在人线观看热v| 久久精品观看| 国产精品探花在线观看| 免费一级欧美在线观看视频| 黄色免费成人| 久久中文在线| 国产日韩三级| 日韩精品中文字幕吗一区二区 | 国产美女视频一区二区| 在线国产一区二区| 日韩免费久久| 精品免费在线| 亚洲作爱视频| 欧美一区自拍| 日本高清不卡一区二区三区视频| 9久re热视频在线精品| 欧美在线首页| 成人久久一区| 日韩精品导航| 精品捆绑调教一区二区三区| 国产视频一区三区| 欧美日一区二区在线观看| 欧美日韩尤物久久| 日本成人手机在线| 亲子伦视频一区二区三区| 日韩影片在线观看| 久久精品亚洲欧美日韩精品中文字幕| 蜜臀久久99精品久久久画质超高清| 国产精品免费大片| 午夜欧美精品| 精品一区二区三区亚洲| 免费一级片91| 亚洲精品.com| 国产精品免费不| 国产精品老牛|