亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? controlcenter.java

?? 堆箱子,java平臺,可能會有BUG
?? JAVA
字號:
package pushbook.core;

import java.util.Vector;
import java.util.Hashtable;
import java.awt.*;
import javax.swing.*;
import pushbook.*;
import java.awt.image.ImageObserver;

/**
 * <p>Title: 推箱子</p>
 * <p>Description: 控制中心,控制游戲元素的移動</p>
 * <p>Copyright: 無版權</p>
 * <p>Company: 吉林省前郭爾羅斯蒙古族自治縣第五高級中學</p>
 * @author 鄭雪
 * @version 1.0
 */
public class ControlCenter
{
    //窗口標題
    public String gameTitle = "";
    //背景音樂
    public String gameMusic = "";
    //過關提示
    public String gameCelebrate = "";
    //游戲元素表
    public Vector gameElements = null;
    //目的地元素列表
    public Vector destinationElements = null;
    //游戲元素模板列表
    public Hashtable gameTemplet = null;
    //關卡序列
    public Vector gameSequence = null;

    //數字圖片數組
    public Vector numberImage = null;

    //積分區圖片
    public Image stepsImage = null;

    //結束圖片
    public Image endImage = null;

    //地圖的寬度和高度
    public int mapWidth = 0;
    public int mapHeight = 0;

    //有圖片元素個數
    public int haveImageElement = 0;

    //活動元素個數
    public int activeElement = 0;

    //當前關編號
    public int levelIndex = 0;

    //步行計數器
    public int stepConter = 0;

    //總步數
    public int stepSum = 0;

    //游戲結束
    public boolean gameover = false;

    /**
     * 默認構造函數
     */
    public ControlCenter()
    {
        numberImage = new Vector();
        gameElements = new Vector();
        gameTemplet = new Hashtable();
        destinationElements = new Vector();
        gameSequence = new Vector();
        haveImageElement = 0;
        activeElement = 0;
        LevelManager lm = new LevelManager();
        ConfigManager cm = new ConfigManager();
        gameSequence = cm.getSequence();
        levelIndex = 0;
        lm.loadLevelData(this,(String)gameSequence.get(levelIndex));
        MidiPlayer.getInstance(gameMusic).start();
    }

    /**
     * 根據參數指定的xml文件建立新一關的游戲環境
     * @param xmlfile String
     */
    public boolean jumpLevel(int index)
    {

        if(index < 0 || index >= gameSequence.size()){gameover = true; return false;}
        gameElements = new Vector();
        destinationElements = new Vector();
        gameTemplet = new Hashtable();
        haveImageElement = 0;
        activeElement = 0;
        LevelManager lm = new LevelManager();
        lm.loadLevelData(this,(String)gameSequence.get(index));
        MidiPlayer.getInstance(null).changeFile(gameMusic);
        gameover = false;
        return true;
    }

    /**
     * 直接進入下一關
     */
    public void nextLevel()
    {
        if(levelIndex+1 >= gameSequence.size()){gameover = true; return;}
        levelIndex ++;
        stepSum += stepConter;
        stepConter = 0;
        jumpLevel(levelIndex);
    }

    /**
     * 直接進入上一關
     */
    public void privLevel()
    {
        if(levelIndex-1 < 0) return;
        levelIndex --;
        stepSum += stepConter;
        stepConter = 0;
        jumpLevel(levelIndex);
        gameover = false;
    }



    /**
     * 判斷能否過關
     * @return boolean
     */
    public boolean canPass()
    {
        boolean rev = true;
        GameElement temp = null;
        GameElement tempDes = null;
        for(int i=0;i<destinationElements.size();i++)
        {
            tempDes = (GameElement)destinationElements.get(i);
            temp = getElement(tempDes.x,tempDes.y);
            if(temp == null || !temp.canMove || temp.canActive())
            {
                rev = false;
            }
        }
        return rev;
    }


    /**
     * 裝入資源
     * @param g Graphics
     */
    public void loadResource(Frame mainframe)
    {
        GameElement temp = null;
        for (int i = 0; i < gameElements.size(); i++)
        {
            temp = (GameElement) gameElements.get(i);
            if(temp.img != null)
            {
                temp.trueimg = mainframe.getToolkit().createImage(getClass().getResource(temp.img));
            }
        }
        for(int i=0;i<10;i++)
        {
            numberImage.add(mainframe.getToolkit().createImage(getClass().getResource("/resource/"+i+".jpg")));
        }
        stepsImage = mainframe.getToolkit().createImage(getClass().getResource("/resource/steps.jpg"));
        endImage = mainframe.getToolkit().createImage(getClass().getResource("/resource/end.jpg"));
    }


    /**
     * 將全部對象的位置入棧
     */
    public void pushAllStep()
    {
        for(int i=0;i<gameElements.size();i++)
        {
            GameElement temp = null;
            temp = (GameElement)gameElements.get(i);
            if(temp.canMove()) temp.stepPushStack();
        }
    }

    /**
     * 回退全部對象
     */
    public void popAllStep()
    {
        for(int i=0;i<gameElements.size();i++)
        {
            GameElement temp = null;
            temp = (GameElement)gameElements.get(i);
            if(temp.canMove()) temp.breakStep();
        }
    }


    /**
     * 處理鍵盤事件
     * @param keycode int 鍵盤鍵值
     * @return boolean 是否影響畫面了
     */
    public boolean pressKey(int keycode)
    {
        boolean rev = false;
        GameElement temp = null;
        if(keycode != Invariable.codeBareak) pushAllStep();
        for(int i=0;i<gameElements.size();i++)
        {
            temp = (GameElement)gameElements.get(i);
            if(temp.canMove() && temp.canActive())
            {
                if (keycode == Invariable.codeUp)
                {
                    if (warmupMoveUp(temp)) rev = temp.moveUp();
                    if (rev){ stepConter++;}
                }
                if (keycode == Invariable.codeDown)
                {
                    if (warmupMoveDown(temp)) rev = temp.moveDown();
                    if (rev){ stepConter++;}
                }
                if (keycode == Invariable.codeLeft)
                {
                    if (warmupMoveLeft(temp)) rev = temp.moveLeft();
                    if (rev){ stepConter++;}
                }
                if (keycode == Invariable.codeRight)
                {
                    if (warmupMoveRight(temp)) rev = temp.moveRight();
                    if (rev){ stepConter++;}
                }
                if (keycode == Invariable.codeBareak)
                {
                    for(int j=0;j<gameElements.size();j++)
                    {
                        ((GameElement)gameElements.get(j)).breakStep();
                    }
                    if(stepConter > 0) stepConter--;
                    rev = true;
                }
            }
        }
        if(rev == false && keycode != Invariable.codeBareak)
            this.popAllStep();
        return rev;
    }


    /**
     * 取得指定坐標的游戲元素,如果指定坐標上有多個游戲元素則取得不可覆蓋的那個元素
     * @param x int 坐標X
     * @param y int 坐標Y
     * @return GameElement 取得的元素,未取得元素時則返回null
     */
    public GameElement getElement(int x,int y)
    {
        GameElement rev = null;
        GameElement temp = null;
        for(int i=0;i<gameElements.size();i++)
        {
            temp = (GameElement)gameElements.get(i);
            if(temp.x == x && temp.y == y)
            {
                rev = temp;
                //如果取得的元素是不能覆蓋的則直接將其返回,否則要保留結果繼續判斷
                if(!temp.canOvercast()) return temp;
            }
        }
        return rev;
    }

    /**
     * 準備將指定游戲元素向上移動,將移動他相關的元素
     * @param ge GameElement 指定的游戲元素
     * @return boolean 如果指定元素不能移動則返回false
     */
    public boolean warmupMoveUp(GameElement ge)
    {
        boolean rev = false;
        GameElement temp = getElement(ge.x,ge.y-Invariable.unitSize);
        if(temp != null)
        {
            if (temp.canOvercast())return true;
            else if (!temp.canMove())return false;
            else
            {
                GameElement temp1 = getElement(temp.x, temp.y - Invariable.unitSize);
                if (temp1.canOvercast())
                {
                    temp.moveUp();
                    return true;
                }
                else return false;
            }
        }
        return false;
    }
    /**
     * 準備將指定游戲元素向下移動,將移動他相關的元素
     * @param ge GameElement 指定的游戲元素
     * @return boolean 如果指定元素不能移動則返回false
     */
    public boolean warmupMoveDown(GameElement ge)
    {
        boolean rev = false;
        GameElement temp = getElement(ge.x,ge.y + Invariable.unitSize);
        if(temp != null)
        {
            if (temp.canOvercast())return true;
            else if (!temp.canMove())return false;
            else
            {
                GameElement temp1 = getElement(temp.x, temp.y + Invariable.unitSize);
                if (temp1.canOvercast())
                {
                    temp.moveDown();
                    return true;
                }
                else return false;
            }
        }
        return false;
    }

    /**
     * 準備將指定游戲元素向左移動,將移動他相關的元素
     * @param ge GameElement 指定的游戲元素
     * @return boolean 如果指定元素不能移動則返回false
     */
    public boolean warmupMoveLeft(GameElement ge)
    {
        boolean rev = false;
        GameElement temp = getElement(ge.x - Invariable.unitSize,ge.y);
        if(temp != null)
        {
            if (temp.canOvercast())return true;
            else if (!temp.canMove())return false;
            else
            {
                GameElement temp1 = getElement(temp.x - Invariable.unitSize, temp.y);
                if (temp1.canOvercast())
                {
                    temp.moveLeft();
                    return true;
                }
                else return false;
            }
        }
        return false;
    }

    /**
     * 準備將指定游戲元素向右移動,將移動他相關的元素
     * @param ge GameElement 指定的游戲元素
     * @return boolean 如果指定元素不能移動則返回false
     */
    public boolean warmupMoveRight(GameElement ge)
    {
        boolean rev = false;
        GameElement temp = getElement(ge.x + Invariable.unitSize,ge.y);
        if(temp != null)
        {
            if (temp.canOvercast())return true;
            else if (!temp.canMove())return false;
            else
            {
                GameElement temp1 = getElement(temp.x + Invariable.unitSize, temp.y);
                if (temp1.canOvercast())
                {
                    temp.moveRight();
                    return true;
                }
                else return false;
            }
        }
        return false;
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一级特黄大欧美久久久| 国产成人av电影免费在线观看| 日韩成人精品在线观看| 国内久久婷婷综合| 色播五月激情综合网| 久久夜色精品国产欧美乱极品| 亚洲欧美日韩国产综合在线| 国产福利精品导航| 欧美伊人久久大香线蕉综合69| 精品成人免费观看| 亚洲成av人片在线观看| 不卡大黄网站免费看| 欧美xxx久久| 性做久久久久久免费观看 | 久久综合九色综合久久久精品综合| 国产精品国产自产拍高清av| 麻豆视频一区二区| 欧美视频日韩视频在线观看| 国产肉丝袜一区二区| 麻豆精品久久久| 欧美精品1区2区| 一区二区三区欧美亚洲| 成人18精品视频| 国产清纯白嫩初高生在线观看91 | 国产传媒欧美日韩成人| 欧美精品三级在线观看| 一区二区三区国产精品| av一区二区三区在线| 国产精品色眯眯| 国产成人av一区二区三区在线| 日韩视频免费直播| 亚洲无线码一区二区三区| 色综合久久88色综合天天免费| 国产精品女同互慰在线看| 高清不卡在线观看av| 国产色婷婷亚洲99精品小说| 国产乱色国产精品免费视频| 久久综合九色综合欧美98| 国精产品一区一区三区mba视频| 欧美一级艳片视频免费观看| 天堂一区二区在线| 欧美一区二区久久久| 麻豆精品在线播放| 久久久久久免费网| 国产大陆a不卡| 国产精品不卡视频| 97久久超碰国产精品电影| 亚洲精品国产无天堂网2021| 在线观看国产一区二区| 午夜婷婷国产麻豆精品| 日韩午夜在线播放| 国产一区三区三区| 欧美国产精品劲爆| 97久久精品人人爽人人爽蜜臀 | 欧美大胆人体bbbb| 国产精品一区三区| 亚洲欧洲性图库| 日本久久一区二区| 日本午夜精品一区二区三区电影 | 99国产精品国产精品久久| 亚洲激情图片小说视频| 7777精品伊人久久久大香线蕉的| 琪琪久久久久日韩精品| 国产日韩av一区二区| 色综合天天综合给合国产| 亚洲高清免费视频| 欧美精品一区二区三区四区| 丁香婷婷综合网| 亚洲成人你懂的| 欧美精品一区视频| 色成人在线视频| 黄网站免费久久| 亚洲色图在线播放| 精品国产一区二区精华| 99久久综合99久久综合网站| 亚洲线精品一区二区三区| 精品盗摄一区二区三区| 一本色道**综合亚洲精品蜜桃冫| 丝袜美腿亚洲综合| 中文字幕在线一区免费| 欧美肥妇毛茸茸| 国产91精品在线观看| 午夜国产精品影院在线观看| 国产亚洲一区二区三区四区| 欧美日韩综合在线免费观看| 国产精品一区二区免费不卡| 午夜精品久久久久久久久久| 中文字幕av一区二区三区免费看| 欧美日韩综合在线免费观看| 成人久久18免费网站麻豆| 日韩一区欧美二区| 亚洲欧美福利一区二区| 久久婷婷综合激情| 3d动漫精品啪啪1区2区免费| 91老司机福利 在线| 国产成人免费视频网站| 国产一区二区三区免费在线观看| 亚洲一级二级在线| 欧美激情综合五月色丁香小说| 51午夜精品国产| 欧美亚洲日本国产| 91在线观看地址| 丰满少妇久久久久久久| 激情五月婷婷综合| 免费看欧美美女黄的网站| 亚洲一区二三区| 亚洲欧洲制服丝袜| 国产精品福利电影一区二区三区四区| 欧美精品一区二区三区蜜桃| 91精品国产一区二区人妖| 欧美性受极品xxxx喷水| 91丨九色丨黑人外教| 丁香桃色午夜亚洲一区二区三区| 另类小说综合欧美亚洲| 日韩高清在线电影| 亚洲1区2区3区4区| 亚洲一区二区成人在线观看| 一个色在线综合| 一区二区成人在线视频 | 亚洲人吸女人奶水| 国产精品国产三级国产aⅴ无密码| www国产成人免费观看视频 深夜成人网| 欧美色精品在线视频| 日本高清免费不卡视频| 色婷婷亚洲婷婷| 欧美三级视频在线观看 | 成人免费视频网站在线观看| 国产成人在线视频播放| 懂色中文一区二区在线播放| 成人免费视频网站在线观看| 99精品视频在线观看| 色88888久久久久久影院野外| 在线免费观看日本欧美| 欧美亚日韩国产aⅴ精品中极品| 91国模大尺度私拍在线视频| 精品视频1区2区| 日韩一区二区在线看| 久久久久九九视频| 国产精品久久久久影院老司| 亚洲狠狠丁香婷婷综合久久久| 亚洲一区二区三区在线播放| 日本成人在线不卡视频| 精彩视频一区二区| hitomi一区二区三区精品| 欧美中文字幕不卡| 欧美一区二区三区思思人| 久久久三级国产网站| 中文字幕亚洲不卡| 日韩av一区二区三区| 国产一区不卡精品| 欧美性欧美巨大黑白大战| 日韩一级黄色片| 日本一区二区三区在线观看| 亚洲在线视频免费观看| 精品一区二区三区视频| 波多野结衣视频一区| 这里只有精品电影| 国产欧美精品区一区二区三区| 国产一区二区三区高清播放| av网站一区二区三区| 欧美老女人在线| 亚洲国产精品成人综合色在线婷婷| 亚洲影视在线播放| 国产精品中文字幕日韩精品 | 美洲天堂一区二卡三卡四卡视频 | 91精品国产综合久久蜜臀| 国产无人区一区二区三区| 亚洲黄色录像片| 东方欧美亚洲色图在线| 69p69国产精品| 亚洲欧美日韩一区二区| 国产在线一区二区| 欧美日韩精品久久久| 国产精品久久精品日日| 日韩va欧美va亚洲va久久| 91丨九色丨蝌蚪富婆spa| 久久这里都是精品| 日韩国产欧美在线播放| 91啪亚洲精品| 欧美韩日一区二区三区| 奇米影视7777精品一区二区| 欧美亚洲一区二区在线| 自拍偷拍欧美精品| 国产一区二区三区美女| 日韩一区二区三区在线观看| 亚洲成人手机在线| 色偷偷久久一区二区三区| 亚洲国产精品黑人久久久| 精油按摩中文字幕久久| 欧美一区二区三区公司| 亚洲成年人网站在线观看| 91官网在线免费观看| 国产精品久久夜| 国产东北露脸精品视频| 精品国产乱码久久久久久图片| 亚洲va天堂va国产va久| 欧美日韩在线观看一区二区| 亚洲精品成人悠悠色影视| av在线不卡电影| 亚洲h精品动漫在线观看|