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

📄 maincanvas.java

📁 机器人大战MetalEN
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
            {
                if((My_ActFlag & 0x40) == 0)
                {
                    if((My_ActFlag & 0x94) == 0)
                    {
                        if((My_ActFlag & 0x1) != 0)
                        {
                            My_XSpeed = -My_WSpeed;
                            if((My_ActFlag & 0x2) == 0)
                                My_AnimeCount = 0;
                            My_GType = 1;
                            My_ActFlag |= 0x2;
                            My_ActFlag &= 0xfffffbff;
                        }
                    } else
                    {
                        My_XSpeed = -My_WSpeed;
                    }
                    My_ActFlag |= 0x1;
                }
            } else
            if((i & 0x80010) != 0)
            {
                if((My_ActFlag & 0x40) == 0)
                {
                    if((My_ActFlag & 0x94) == 0)
                    {
                        if((My_ActFlag & 0x1) == 0)
                        {
                            My_XSpeed = My_WSpeed;
                            if((My_ActFlag & 0x2) == 0)
                                My_AnimeCount = 0;
                            My_GType = 1;
                            My_ActFlag |= 0x2;
                            My_ActFlag &= 0xfffffbff;
                        }
                    } else
                    {
                        My_XSpeed = My_WSpeed;
                    }
                    My_ActFlag &= 0xfffffffe;
                }
            } else
            {
                My_ActFlag &= 0xfffffffd;
            }
            if((i & 0x40440) != 0)
            {
                My_ActFlag |= 0x100;
                My_ActFlag &= 0xfffffbff;
            } else
            {
                My_ActFlag &= 0xfffffeff;
            }
            if((i & 0x22000c) == 12 || (i & 0x100000) != 0)
            {
                if((My_ActFlag & 0x94) == 0)
                {
                    My_XSpeed = 0xfffa0000;
                    My_DCount = 6;
                    My_ActFlag |= 0x1;
                    My_ActFlag |= 0x40;
                    My_ActFlag &= 0xfffffbff;
                    My_GType = 2;
                }
            } else
            if(((i & 0x280014) == 20 || (i & 0x400000) != 0) && (My_ActFlag & 0x94) == 0)
            {
                My_XSpeed = 0x60000;
                My_DCount = 6;
                My_ActFlag &= 0xfffffffe;
                My_ActFlag |= 0x40;
                My_ActFlag &= 0xfffffbff;
                My_GType = 2;
            }
            if((j & 0x200004) != 0 && (My_ActFlag & 0xd4) == 0)
            {
                My_Y += 0x50000;
                My_ActFlag |= 0x10;
                My_ActFlag &= 0xfffffbdd;
                My_GType = 4;
            }
        }
        return true;
    }

    public void GameMain()
    {
        if(Game_MainTimer <= 0 && (Game_MainFlag & 0x4) == 0)
        {
            Game_SubTimer++;
            Game_MainFlag |= 0x1;
            if(Game_SubTimer - 2 > 0)
            {
                Game_MainChapter = 11;
                Game_SubTimer = 0;
            }
        } else
        {
            Game_MainTimer--;
            int i;
            for(i = Game_ClearCond; i >= 0; i--)
                if((Enemy_Flag[i] & 0x800) == 0)
                    break;

            if(i < 0)
            {
                Game_MainFlag |= 0x4;
                Game_SubTimer++;
                Game_MainTimer++;
                Game_MainFlag |= 0x1;
                if(Game_SubTimer - 2 > 0)
                {
                    Game_MainChapter = 9;
                    Game_MainFlag &= 0xfffffffb;
                    Game_SubTimer = 0;
                }
            }
        }
        GameMainMyChar();
        GameMainCamera();
        GameMainMyShot();
        GameMainEnemyShot();
        GameMainEnemy();
        GameMainExp();
    }

    public void GameMainMyChar()
    {
        if((My_ActFlag & 0xd6) == 0)
        {
            if((My_ActFlag & 0x100) == 0)
            {
                My_ActFlag |= 0x400;
                My_GType = 0;
            } else
            {
                My_GType = 5;
            }
        } else
        {
            My_ActFlag |= 0x100;
        }
        if(My_DCount > 0)
        {
            My_DCount--;
            if((My_AnimeCount & 0x1) == 0)
                MyBurstGenerator();
        }
        if(My_DCount == 0 && (My_ActFlag & 0x20) != 0)
            My_ActFlag &= 0xffffffbf;
        My_YSpeed += 0x20000;
        if(My_YSpeed - 0x80000 > 0)
            My_YSpeed = 0x80000;
        if((My_ActFlag & 0x84) != 0 && My_YSpeed > 0)
        {
            My_GType = 4;
            My_ActFlag |= 0x10;
            My_ActFlag &= 0xfffffffb;
        }
        MyVsMapChip2();
        My_AnimeCount--;
        if(My_AnimeCount < 0)
            My_AnimeCount = 5;
        if(My_AttackCount > 0)
            My_AttackCount--;
        if((My_ActFlag & 0x100) != 0 && My_AttackCount == 0)
        {
            My_AttackCount = Table_MyShot_Space[My_Weapon];
            for(int j = Table_MyShot_Loop[My_Weapon]; j >= 0; j--)
            {
                for(int i = 7; i >= 0; i--)
                {
                    if((MyShot_Flag[i] & 0x800) == 0)
                        continue;
                    MyShot_X[i] = My_X + Table_MyShot_Type_PointX[My_Weapon][My_ActFlag & 0x1];
                    MyShot_Y[i] = My_Y + Table_MyShot_Type_PointY[My_Weapon];
                    MyShot_XSpeed[i] = Table_MyShot_Type_XSpeed[My_Weapon][My_ActFlag & 0x1][j];
                    MyShot_YSpeed[i] = Table_MyShot_Type_YSpeed[My_Weapon][j];
                    MyShot_Attack[i] = Table_MyShot_Attack[My_Weapon];
                    MyShot_HitWidth[i] = Table_MyShot_Hit_Width[My_Weapon];
                    MyShot_HitHeight[i] = Table_MyShot_Hit_Height[My_Weapon];
                    MyShot_Flag[i] = MyShot_Flag[i] & 0xfffff7ff;
                    MyShot_Count[i] = T_MyShot_Count[My_Weapon];
                    break;
                }

            }

        }
        if((My_ActFlag & 0x40) == 0)
            My_XSpeed = 0;
        if(My_AP <= 0 && (Game_MainFlag & 0x4) == 0)
        {
            My_ActFlag |= 0x200;
            My_AP = 0;
            if(Game_MainTimer > 0)
            {
                ExpGenerator(My_X, My_Y, 10);
                Game_MainTimer = 0;
            }
        }
        MyBurst_Count--;
        if(MyBurst_Count <= 0)
        {
            MyBurst_Flag = 0;
            MyBurst_Flag |= 0x800;
        }
    }

    public void MyBurstGenerator()
    {
        MyBurst_X = My_X + Table_Burst_Type_X[My_ActFlag & 0x1];
        MyBurst_Y = My_Y + 0x40000;
        MyBurst_Flag = Table_Burst_Type_Flag[My_ActFlag & 0x1];
        MyBurst_Count = 2;
    }

    public void GameMainMyShot()
    {
        for(int i = 7; i >= 0; i--)
            if((MyShot_Flag[i] & 0x800) == 0)
            {
                MyShot_X[i] += MyShot_XSpeed[i];
                MyShot_Y[i] += MyShot_YSpeed[i];
                MyShot_Count[i]--;
                if(ShotVsMapChip(MyShot_X[i], MyShot_Y[i], MyShot_HitWidth[i], MyShot_HitHeight[i]) != 0)
                {
                    MyShot_Count[i] = 0;
                    ExpGenerator(MyShot_X[i], MyShot_Y[i], 16);
                }
                int j = ShotVsEnemy(MyShot_X[i], MyShot_Y[i], MyShot_HitWidth[i], MyShot_HitHeight[i]);
                if(j != 0)
                {
                    Enemy_AP[j - 1] -= MyShot_Attack[i];
                    Enemy_Flag[j - 1] |= 0x200;
                    MyShot_Count[i] = 0;
                    ExpGenerator(MyShot_X[i], MyShot_Y[i], 16);
                }
                if(MyShot_Count[i] <= 0)
                    MyShot_Flag[i] = 2048;
            }

    }

    public void ExpGenerator(int i, int j, int k)
    {
label0:
        switch(k)
        {
        case 9: // '\t'
        case 14: // '\016'
        case 15: // '\017'
        default:
            break;

        case 1: // '\001'
        case 3: // '\003'
            for(int j3 = 1; j3 >= 0; j3--)
            {
                for(int l = 31; l >= 0; l--)
                {
                    if((Exp_Flag[l] & 0x800) == 0)
                        continue;
                    Exp_X[l] = (i + Table_ExpGene_Rev_X[j3]) - 0x100000;
                    Exp_Y[l] = j + Table_ExpGene_Rev_Y[j3];
                    Exp_XSpeed[l] = 0;
                    Exp_YSpeed[l] = 0xffff0000;
                    Exp_GType[l] = 0;
                    Exp_Flag[l] = Exp_Flag[l] & 0xfffff7ff;
                    Exp_Count[l] = 4 + j3;
                    break;
                }

            }

            break;

        case 2: // '\002'
            for(int k3 = 8; k3 >= 0; k3--)
            {
                for(int i1 = 31; i1 >= 0; i1--)
                {
                    if((Exp_Flag[i1] & 0x800) == 0)
                        continue;
                    Exp_X[i1] = i + Table_ExpGene_Rev_X[k3];
                    Exp_Y[i1] = j + Table_ExpGene_Rev_Y[k3];
                    Exp_XSpeed[i1] = 0;
                    Exp_YSpeed[i1] = 0xffff0000;
                    Exp_GType[i1] = 0;
                    Exp_Flag[i1] = Exp_Flag[i1] & 0xfffff7ff;
                    Exp_Count[i1] = 4;
                    break;
                }

            }

            break;

        case 4: // '\004'
        case 5: // '\005'
        case 6: // '\006'
        case 7: // '\007'
            for(int j1 = 31; j1 >= 0; j1--)
                if((Exp_Flag[j1] & 0x800) != 0)
                {
                    Exp_X[j1] = i - 0x80000;
                    Exp_Y[j1] = j - 0x80000;
                    Exp_XSpeed[j1] = 0;
                    Exp_YSpeed[j1] = 0xffff0000;
                    Exp_GType[j1] = 0;
                    Exp_Flag[j1] = Exp_Flag[j1] & 0xfffff7ff;
                    Exp_Count[j1] = 4;
                    break label0;
                }

            break;

        case 8: // '\b'
            for(int l3 = 4; l3 >= 0; l3--)
            {
                for(int k1 = 31; k1 >= 0; k1--)
                {
                    if((Exp_Flag[k1] & 0x800) == 0)
                        continue;
                    Exp_X[k1] = (i + Table_ExpGene_Rev_X[l3]) - 0x100000;
                    Exp_Y[k1] = j + Table_ExpGene_Rev_Y[l3];
                    Exp_XSpeed[k1] = 0;
                    Exp_YSpeed[k1] = 0xffff0000;
                    Exp_GType[k1] = 0;
                    Exp_Flag[k1] = Exp_Flag[k1] & 0xfffff7ff;
                    Exp_Count[k1] = 4 + l3;
                    break;
                }

            }

            break;

        case 10: // '\n'
            for(int l4 = 1; l4 >= 0; l4--)
            {
                for(int i4 = 8; i4 >= 0; i4--)
                {
                    for(int l1 = 31; l1 >= 0; l1--)
                    {
                        if((Exp_Flag[l1] & 0x800) == 0)
                            continue;
                        Exp_X[l1] = i + Table_ExpGene_Rev_X[i4] + l4 * 0x180000;
                        Exp_Y[l1] = j + Table_ExpGene_Rev_Y[i4] + l4 * 0x180000;
                        Exp_XSpeed[l1] = Table_ExpGene_Rev_X[i4] / 6;
                        Exp_YSpeed[l1] = Table_ExpGene_Rev_Y[i4] / 6;
                        Exp_GType[l1] = 0;
                        Exp_Flag[l1] = Exp_Flag[l1] & 0xfffff7ff;
                        Exp_Count[l1] = 4 + l4;
                        break;
                    }

                }

            }

            break;

        case 11: // '\013'
            for(int i2 = 31; i2 >= 0; i2--)
                if((Exp_Flag[i2] & 0x800) != 0)
                {
                    Exp_X[i2] = i - 0x80000;
                    Exp_Y[i2] = j - 0x80000;
                    Exp_XSpeed[i2] = 0;
                    Exp_YSpeed[i2] = 0xffff0000;
                    Exp_GType[i2] = 3;
                    Exp_Flag[i2] = Exp_Flag[i2] & 0xfffff7ff;
                    Exp_Count[i2] = 4;
                    break label0;
                }

            break;

        case 12: // '\f'
            for(int j4 = 4; j4 >= 0; j4--)
            {
                for(int j2 = 31; j2 >= 0; j2--)
                {
                    if((Exp_Flag[j2] & 0x800) == 0)
                        continue;
                    Exp_X[j2] = (i + Table_ExpGene_Rev_X[j4]) - 0x100000;
                    Exp_Y[j2] = j + Table_ExpGene_Rev_Y[j4];
                    Exp_XSpeed[j2] = 0;
                    Exp_YSpeed[j2] = 0xffff0000;
                    Exp_GType[j2] = 3;
                    Exp_Flag[j2] = Exp_Flag[j2] & 0xfffff7ff;
                    Exp_Count[j2] = 4 + j4;
                    break;
                }

            }

            break;

        case 13: // '\r'
            for(int i5 = 3; i5 >= 0; i5--)
            {
                for(int k4 = 8; k4 >= 0; k4--)
                {
                    for(int k2 = 31; k2 >= 0; k2--)
                    {
                        if((Exp_Flag[k2] & 0x800) == 0)
                            continue;
                        Exp_X[k2] = i + Table_ExpGene_Rev_X[k4] + 0x100000;
                        Exp_Y[k2] = j + Table_ExpGene_Rev_Y[k4] + i5 * 0x200000;
                        Exp_XSpeed[k2] = Table_ExpGene_Rev_X[k4] / 6;
                        Exp_YSpeed[k2] = Table_ExpGene_Rev_Y[k4] / 6;
                        Exp_GType[k2] = 3;
                        Exp_Flag

⌨️ 快捷键说明

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