⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gamecanvas.java~2~

📁 格斗类型的游戏
💻 JAVA~2~
📖 第 1 页 / 共 2 页
字号:
        V = true;
        J = null;
        if(h != null) {
            h.stopThread();
            h = null;
        }
        System.gc();
        z = false;
        if(player1 != null)
            player1.SetNull();
        else
            player1 = new Player(this, false);
        if(player2 != null)
            player2.SetNull();
        else
            player2 = new Player(this, true);
        player1.setPlayer((byte)i1);
        player2.setPlayer((byte)j1);
        if(P.backToGameMode() == 3)
            player1.setE(player1.getE() * 2);
        System.gc();
        round = 0;
        vRound[0] = 0;
        vRound[1] = 0;
        reset();
    }

    /*
    * 重新设定游戏
    */
    public void reset(){
        b = 0;
        refreshNum = 0L;
        A = 0;
        sCounter = 0;
        a = 0L;
        int i1 = 0;
        if(P.backToGameMode() == 3)
            i1 = player1.getE();
        player1.resetPlayer();
        if(P.backToGameMode() == 3) {
            player1.setE(i1);
            if(i1 == 0)
                player1.setE(DragonSoul.eNum[player1.getPlayer()]);
        }
        player2.resetPlayer();
        if(P.setting[2] == 0 || P.backToGameMode() == 0) {
            G = "开始!!!";
        } else {
            round++;
            G = "第".concat(String.valueOf(String.valueOf(round))).concat("回");
        }
        E = false;
        overTime = false;
        startT();
        sCounter = 20;
    }

//    public void setElse()
//    {
//        sCounter = 20;
//    }

    /*
     * 开始游戏或过关继续游戏
     */
    public void startT()
    {
        bPause = false;
        B += System.currentTimeMillis() - a;
        if(J == null)
        {
            V = false;
            J = new Thread(this);
            J.start();
        } else {
            A = (int)(System.currentTimeMillis() - B) / 1000;
        }
    }

    /*
     * 游戏胜利结束对局
     */
    public void endT()
    {
        V = true;
        J = null;
        System.gc();
    }

    /*
    * 游戏暂停并记下系统当前时间
    */
    public void pauseGame()
    {
        bPause = true;
        a = System.currentTimeMillis();
    }

    /*
    * 隐藏游戏界面
    */
    protected void hideNotify()
    {
        pauseGame();
    }

    /*
    * 显示游戏界面
    */
    protected void showNotify()
    {
        P.loadLights();
        startT();
    }

    /**
     * 获得入口类对象
     * @return p DragonSoul入口类对象
     */
    public DragonSoul getP()
    {
        return P;
   }

    /**
     * 获得游戏角色1
     * @return player1 Player,游戏角色类
     */
    public Player getPlayer1()
    {
        return player1;
    }

    /**
     * 获得游戏角色2
     * @return player2 Player,游戏角色类
     */
    public Player getPlayer2()
    {
        return player2;
    }

    /*
     * 获得游戏背景图片定位坐标
     */
    public int getB()
    {
        return b;
    }

    /**
     * 获得游戏中执行的时间
     * @return A int,游戏中执行时间
     */
    public int getA()
    {
        return A;
    }

    /**
     * 设定游戏玩家
     * @param b1 Player,游戏玩家
     */
    public void setPlayer1(Player b1)
    {
        Player b2 = getPlayer2();
        if(b2 == b1)
        {
            b2 = getPlayer1();
            vRound[0]++;
            start(6);
            if(P.backToGameMode() == 3)
            {
                int i1 = player1.getE() + DragonSoul.eNum[player1.getPlayer()] / 4;
                if(i1 > DragonSoul.eNum[player1.getPlayer()] * 2)
                    i1 = DragonSoul.eNum[player1.getPlayer()] * 2;
                player1.setE(i1);
            }
        } else {
            vRound[1]++;
            start(4);
        }
        G = String.valueOf(String.valueOf(DragonSoul.name[b2.getPlayer()])).concat(" 赢!");
        sCounter = 20;
        E = true;
    }

    /*
    * 判断比赛的回合数
    */
    public boolean jugdeGameNum(){
        return vRound[0] > P.setting[2];
    }

    /*
    * 设定新游戏
    */
    private void setNew() {
        if(sCounter > 0) {
            sCounter--;
            if(sCounter == 0)
                if(E || overTime) {
//System.out.println("round = " + round);
//System.out.println("vRound[0] = " + vRound[0]);
//System.out.println("vRound[1] = " + vRound[1]);
                    if ((round < P.setting[2] * 2 + 1&& (vRound[0] == P.setting[2] + 1 || vRound[1] == P.setting[2] + 1))
                            || (round == P.setting[2] * 2 + 1&& (vRound[0] != vRound[1]))
                            /*|| jugdeGameNum(0) || jugdeGameNum(1)*/) {
                        if(vRound[0] > vRound[1])
                            start(7);
                        else
                            start(5);
                        endT();
                        try {
                            Thread.currentThread();
                            Thread.sleep(3000L);
                        } catch(Exception exception) { }
                        if(jugdeGameNum() && (P.backToGameMode() == 2 || P.backToGameMode() == 3)){
                            int i1 = getPlayer1().getPlayer();
                            int j1 = getPlayer2().getPlayer();
                            if(++j1 == i1)
                                j1++;
                            if(j1 >= 8) {
                                M = P.backToGameMode() == 2;
                                m = P.backToGameMode() == 3;
                                repaint();
                                serviceRepaints();
                                try
                                {
                                    Thread.currentThread();
                                    Thread.sleep(3000L);
                                }
                                catch(Exception exception2) { }
                            }
                        }
                    } else {
                        try
                        {
                            Thread.currentThread();
                            Thread.sleep(3000L);
                        }
                        catch(Exception exception1) { }
                        reset();
                    }
                } else
                {
                    startT();
                    B = System.currentTimeMillis();
                }
        } else
        {
            A = (int)(System.currentTimeMillis() - B) / 1000;
            b = (player2.getPlayerCor() + player1.getPlayerCor()) / 4;
            refreshNum++;
            if((P.backToGameMode() == 1 || P.backToGameMode() == 2 || P.backToGameMode() == 3) && (P.setting[3] == 0 && A >= 50 || P.setting[3] == 1 && A >= 100))
            {
                G = "超时!";
                round--;
                sCounter = 20;
                overTime = true;
            }
        }
    }

    /**
     * 得到对局时的刷新次数
     * @return refreshNum long,对局时的刷新次数
     */
    public long getRefreshNum()
    {
        return refreshNum;
    }

    /*
     * 执行线程,设定菜单模式
     */
    public void startThr()
    {
        I = true;
        h = new a();
        h.start();
        P.setN(P.getN() - 1);
    }

    /*
    * 运行主线程
    */
    public void run() {
//   System.out.println("----------------run 1-----------------");
        B = System.currentTimeMillis();
        while(!V) {
            if(isShown()) {
                c = false;
                if(!bPause) {
                    player1.setState();
                    player2.setState();
                }
                if(sCounter > 0 && !bPause)
                    pauseGame();
                setNew();
                if(sCounter > 0) {
                    repaint();
                } else {
                    int i1 = 6 + time.getHeight();
                    if(c)
                        i1 = 0;
                    repaint(0, i1, getWidth(), getHeight() - panel.getHeight() - i1);
                }
                serviceRepaints();
                P.loadLights();
            }
            try {
                Thread.currentThread();
                Thread.sleep(25L);
            } catch(Exception exception) { }
        }
        if (P.bGameHelp) {
            P.initHelp1Menu();
            return;
        }
        if(P.backToGameMode() == 0)
            P.initModeMenu();
        if(P.backToGameMode() == 1)
            P.initModeMenu();
        if(P.backToGameMode() == 2)
            if(z)
                P.initModeMenu();
            else
            if(!jugdeGameNum() && P.getN() > 0)
                startThr();
            else
                P.atBack();
        if(P.backToGameMode() == 3)
            if(z)
                P.initModeMenu();
            else
            if(!jugdeGameNum() && P.getN() > 0)
                startThr();
            else
                P.back();
    }

    /*
    * 线程类
    */
    public class a extends Thread
        {

            private boolean a = false;

        /*
        * 运行线程
        */
            public void run()
            {
//System.out.println("----------------run 2-----------------");
                B = System.currentTimeMillis();
                while(!a)
                {
                    if(isShown())
                    {
                        A = 10 - (int)(System.currentTimeMillis() - B) / 1000;
                        repaint();
                        serviceRepaints();
                        if(A <= 0)
                        {
                            stopThread();
                            if(P.backToGameMode() == 2)
                                P.atBack();
                            else
                            if(P.backToGameMode() == 3)
                                P.back();
                        }
                    }
                    try
                    {
                        Thread.currentThread();
                        Thread.sleep(25L);
                    }
                    catch(Exception exception) { }
                }
            }

//            public saveIndex()
//            {
//                saveIndex = false;
//            }

        /*
        * 停止线程
        */
             public void stopThread()
            {
                a = true;
            }
        }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -