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

📄 samkokgame.java

📁 俄罗斯制作的横版动作游戏
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                        case 52: // '4'
                        case 53: // '5'
                            targetH = 16;
                            break;
                        }
                        int targetY = monsterY[j] - targetH;
                        if((!bossStage || bossLifeOn <= 0) && chon(shotX, shotY, shotW, shotH, targetX, targetY, targetW, targetH))
                        {
                            if(monsterT[i] >= 51)
                                bossHP -= 4;
                            else
                                monsterHP[j] -= 4;
                            addEffect(playerShotX[i], playerShotY[i] - 16, 1);
                            setMonsterAttack(j);
                            playerShotT[i] = 0;
                        }
                    }

            }

    }

    private void processAddAttack()
    {
        int eff = saPlayer.effect;
        int curEff = 0;
        if(weaponMode == 0)
        {
            if(playerFrameStep == 1 || playerFrameStep == 2)
                setAttack(14, 14, 12, 10, eff, playerAttack);
        } else
        {
            switch(playerMode - 4)
            {
            default:
                break;

            case 0: // '\0'
            case 2: // '\002'
                if(playerFrameStep == 1 || playerFrameStep == 2)
                    setAttack(14, 12, 20, 11, eff, 2 + playerAttack);
                break;

            case 1: // '\001'
                if(playerFrameStep == 1 || playerFrameStep == 2)
                    setAttack(-4, 9, 40, 14, eff, 2 + playerAttack);
                break;

            case 3: // '\003'
                if(playerFrameStep == 3 || playerFrameStep == 4)
                    setAttack(14, 10, 23, 14, eff, 3 + playerAttack);
                break;

            case 4: // '\004'
                if(playerFrameStep == 1 || playerFrameStep == 2)
                    setAttack(-4, 10, 40, 14, eff, 3 + playerAttack);
                break;

            case 5: // '\005'
                if(playerFrameStep == 1 || playerFrameStep == 2)
                {
                    setAttack(-4, 9, 40, 14, eff, 3 + playerAttack);
                    break;
                }
                if(playerFrameStep >= 3)
                    setAttack(-4, 9, 40, 14, eff, 6 + playerAttack);
                break;

            case 6: // '\006'
                if(playerFrameStep == 4 || playerFrameStep == 5)
                    setAttack(14, 9, 21, 14, eff, 4 + playerAttack);
                break;

            case 7: // '\007'
                if(playerFrameStep == 1 || playerFrameStep == 2)
                    setAttack(-4, 9, 40, 14, eff, 4 + playerAttack);
                break;

            case 8: // '\b'
                if(playerFrame[fightFrameMode][playerFrameStep] > 999)
                    curEff = 8192 - eff;
                else
                    curEff = eff;
                if(playerFrameStep >= 1 && playerFrameStep <= 10)
                    setAttack(-4, 9, 40, 14, curEff, 5 + playerAttack);
                break;
            }
        }
    }

    private void setAttack(int x, int y, int w, int h, int eff, int att)
    {
        playerAtt = true;
        recY = (short)((playerY + y) - 24);
        recAttack = (short)att;
        if(eff == 0)
        {
            recX = (short)(playerX + x);
            recW = (short)w;
            recH = (short)h;
        } else
        {
            recX = (short)(((playerX - w) + 24) - x);
            recW = (short)w;
            recH = (short)h;
        }
    }

    private void addPlayerShot()
    {
        for(int i = 0; i < 5; i++)
            if(playerShotT[i] == 0)
            {
                if(saPlayer.effect == 0)
                    playerShotX[i] = (short)(playerX + 24);
                else
                    playerShotX[i] = (short)(playerX - 16);
                playerShotY[i] = (short)(playerY - 1);
                if(saPlayer.effect == 0)
                    playerShotT[i] = 1;
                else
                    playerShotT[i] = 17;
                i = 5;
            }

    }

    private int processCheckAttack()
    {
        int monWid = 0;
        int monHei = 0;
        int monsterAttack = 0;
        int monstart = 0;
        for(int i = 0; i < maxMonster + 5; i++)
            if(monsterM[i] > 0 && (monsterM[i] & 0xf) != 2 && (monsterM[i] & 0xf) < 6 && monsterX[i] + curMapX > -64 && monsterX[i] + curMapX < 204 && (monsterT[i] <= 8 || monsterT[i] >= 25 && monsterT[i] <= 28 || monsterT[i] == 50) && monsterT[i] > 0)
                processCheckAttack_1(i, monstart, monWid, monHei, monsterAttack);
            else
            if(monsterM[i] > 0 && (monsterM[i] & 0xf) < 5 && monsterT[i] >= 51)
                processCheckAttack_2(i, monstart, monWid, monHei, monsterAttack);

        return monsterAttack;
    }

    private void processCheckAttack_1(int i, int monstart, int monWid, int monHei, int monsterAttack)
    {
        switch(monsterT[i])
        {
        case 1: // '\001'
            monWid = 24;
            monHei = 11;
            monstart = 0;
            break;

        case 2: // '\002'
            monWid = 12;
            monHei = 16;
            monstart = 6;
            break;

        case 3: // '\003'
        case 4: // '\004'
        case 6: // '\006'
        case 7: // '\007'
        case 8: // '\b'
            monWid = 12;
            monHei = 16;
            monstart = 6;
            break;

        case 5: // '\005'
        case 50: // '2'
            monHei = 16;
            monWid = 41;
            if((monsterM[i] & 0x10) >> 4 == 0)
                monstart = 0;
            else
                monstart = -17;
            break;

        case 25: // '\031'
        case 26: // '\032'
            monstart = 0;
            monWid = 16;
            monHei = 5;
            break;

        case 27: // '\033'
        case 28: // '\034'
            monstart = 0;
            monWid = 5;
            monHei = 16;
            break;
        }
        if((monsterT[i] != 7 && monsterT[i] != 8 || (monsterM[i] & 0xf) != 3 || monsterAddX[i] <= 0 || monsterX[i] <= playerX) && (monsterT[i] != 7 && monsterT[i] != 8 || (monsterM[i] & 0xf) != 3 || monsterAddX[i] >= 0 || monsterX[i] >= playerX) && chon(recX, recY, recW, recH, monsterX[i] + monstart, monsterY[i] - monHei, monWid, monHei))
        {
            monsterAttack = 1;
            monsterHP[i] -= recAttack;
            if(saPlayer.effect == 0)
                addEffect(playerX + 12, playerY - 16, 1);
            else
                addEffect(playerX - 12, playerY - 12, 1);
            setMonsterAttack(i);
        }
    }

    private void processCheckAttack_2(int i, int monstart, int monWid, int monHei, int monsterAttack)
    {
        if(bossLifeOn <= 0 && ((monsterM[i] & 0xf) != 2 || monsterT[i] != 51 || monsterS[i] >= 15 || monsterAddX[i] == 0))
        {
            monstart = 4;
            monWid = 16;
            monHei = 16;
            if(chon(recX, recY, recW, recH, monsterX[i] + monstart, monsterY[i] - monHei, monWid, monHei))
            {
                monsterAttack = 1;
                bossHP -= recAttack;
                if(saPlayer.effect == 0)
                    addEffect(playerX + 12, playerY - 16, 1);
                else
                    addEffect(playerX - 12, playerY - 12, 1);
                setMonsterAttack(i);
            }
        }
    }

    private void processHPDown(int monHit)
    {
        if(maifaHP > 0)
            maifaHP -= monHit;
        else
            playerHP -= monHit;
        if(maifaHP < 0)
            maifaHP = 0;
        if(playerHP <= 0)
            playerDie = 20;
    }

    private void processCheckChonME()
    {
        int monstart = 0;
        int monWid = 0;
        int monHei = 0;
        int monHit = 0;
        boolean haveChon = false;
        for(int i = 0; i < maxMonster + 5; i++)
            if(monsterM[i] > 0 && monsterX[i] + curMapX > -64 && monsterX[i] + curMapX < 240 && monsterT[i] > 0)
                if(monsterT[i] <= 8)
                    haveChon = processCheckChonME_8(i, monWid, monHei, monHit, haveChon, monstart);
                else
                if(monsterT[i] <= 20)
                    processCheckChonME_20(i);
                else
                if(monsterT[i] <= 24 || monsterT[i] == 30 || monsterT[i] == 32)
                    haveChon = processCheckChonME_24(i, haveChon, monHit);
                else
                if(monsterT[i] <= 28)
                    haveChon = processCheckChonME_28(i, haveChon);
                else
                if(monsterT[i] == 31)
                    haveChon = processCheckChonME_31(i, haveChon, monstart);
                else
                if(monsterT[i] == 50)
                    haveChon = processCheckChonME_50(i, haveChon);
                else
                if(monsterT[i] >= 51)
                    haveChon = processCheckChonME_51(i, haveChon);

    }

    private boolean processCheckChonME_8(int i, int monWid, int monHei, int monHit, boolean haveChon, int monstart)
    {
        if(playerMode != 2 && playerLifeOn == 0 && !haveChon)
        {
            switch(monsterT[i])
            {
            case 1: // '\001'
                monWid = 24;
                monHei = 11;
                monstart = 0;
                monHit = 1;
                break;

            case 2: // '\002'
                monWid = 12;
                monHei = 16;
                monstart = 6;
                monHit = 2;
                break;

            case 3: // '\003'
            case 4: // '\004'
            case 6: // '\006'
                monWid = 12;
                monHei = 16;
                monstart = 6;
                monHit = 2;
                break;

            case 5: // '\005'
                monWid = 41;
                monHei = 18;
                monHit = 3;
                if((monsterM[i] & 0x10) >> 4 == 0)
                    monstart = 0;
                else
                    monstart = -17;
                break;
            }
            if(chon(playerX + 7, playerY - 16, 10, 16, monsterX[i] + monstart, monsterY[i] - monHei, monWid, monHei))
            {
                haveChon = true;
                processHPDown(monHit);
                setPlayerStun(monsterX[i]);
            }
        }
        return haveChon;
    }

    private void processCheckChonME_20(int i)
    {
        if(chon(playerX + 7, playerY - 18, 10, 18, monsterX[i], monsterY[i] - 8, 16, 8))
        {
            switch(monsterT[i])
            {
            case 9: // '\t'
                weaponMode = 16;
                maxWeaponMode = 16;
                break;

            case 10: // '\n'
                weaponMode = 32;
                maxWeaponMode = 32;
                break;

            case 11: // '\013'
                weaponMode = 48;
                maxWeaponMode = 48;
                break;

            case 12: // '\f'
                maifaHP = 15;
                break;

            case 13: // '\r'
                playerHP += 3;
                break;

            case 14: // '\016'
                playerHP += 8;
                break;

            case 15: // '\017'
                if(weaponMode > 0)
                    playerMP[(weaponMode >> 4) - 1] += 3;
                break;

            case 16: // '\020'
                if(weaponMode > 0)
                    playerMP[(weaponMode >> 4) - 1] += 8;
                break;

            case 17: // '\021'
                if(specialType[0] != -1)
                    specialType[0] = 909;
                break;

            case 18: // '\022'
                if(specialType[1] != -1)
                {
                    specialType[1] = 909;
                    playerAttack = 3;
                }
                break;

            case 19: // '\023'
                if(specialType[2] != -1)
                {
                    specialType[2] = 909;
                    playerWalkStep = 4;
                }
                break;
            }
            if(playerHP > playerMaxHP)
                playerHP = playerMaxHP;
            if(weaponMode > 0 && playerMP[(weaponMode >> 4) - 1] > playerMaxMP)
                playerMP[(weaponMode >> 4) - 1] = playerMaxMP;
            showItemName = 20;
            itemNameNumber = (byte)(monsterT[i] - 9);
            if(monsterTempT[i] >= 9 && monsterTempT[i] <= 20)
            {
                monsterTempT[i] = monsterT[i] = -1;
                monsterM[i] = -10;
            } else
            {
                monsterT[i] = 0;
                monsterM[i] = -1;
            }
        }
    }

    private boolean p

⌨️ 快捷键说明

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