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

📄 maincanvas.java

📁 J2ME手机游戏蜀山剑侠传源代码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        PCDraw(nPoint, 22);
        if(nPoint == 22)
        {
            if(abyte5[byMap_No][nE_Flag[0]] - 1 == 0)
                TDL(nE_Flag[0]);
            else
            if(byMap_No == 2)
                TDL(5);
            nPoint = 0;
            byte abyte4[] = new byte[512 * abyte3[byMap_No]];
            byD_Map = new byte[abyte3[byMap_No]][32][32];
            try
            {
                InputStream inputstream = getClass().getResourceAsStream("/M.d");
                for(int i = 0; i < byMap_No; i++)
                    inputstream.skip(512 * abyte3[i]);

                inputstream.read(abyte4);
                inputstream.close();
                for(int i1 = 0; i1 < abyte3[byMap_No]; i1++)
                {
                    for(int j = 0; j < 32; j++)
                    {
                        for(int l = 0; l < 16; l++)
                        {
                            byD_Map[i1][j][l << 1] = (byte)(abyte4[(i1 << 9) + (j << 4) + l] >> 4 & 0xf);
                            byD_Map[i1][j][(l << 1) + 1] = (byte)(abyte4[(i1 << 9) + (j << 4) + l] & 0xf);
                        }

                    }

                }

            }
            catch(Exception exception) { }
            abyte4 = null;
            Run.gc();
            for(int k = 23; k >= 0; k--)
                if(T_D_EVENT[byMap_No][k] != 0 && (nE_Flag[byMap_No + 1] & 1 << k) != 0)
                    byD_Map[T_D_E_Z[byMap_No][k]][T_D_E_Y[byMap_No][k]][T_D_E_X[byMap_No][k]] = 12;

            byMy_X = (byte)((abyte0[byMap_No] << 2) + 2);
            byMy_Y = (byte)((abyte1[byMap_No] << 2) + 2);
            byMy_Z = abyte2[byMap_No];
            byMy_GType = 0;
            byGame_Chap[0] = 6;
        }
    }

    public void CDInit()
    {
        byte abyte0[] = {
            0, 3, 0, 7, 0, 7
        };
        nObj_Count[0] = 0;
        nObj_Count[1] = 0;
        nObj_Count[2] = 0;
        nObj_XSpeed[0] = 0;
        nObj_YSpeed[0] = 0;
        byGame_Chap[1] = 0;
        byCursor[0] = 0;
        nGame_Timer[1] = 0;
        nObj_X[1] = 0;
        nObj_Y[1] = 0;
        nObj_Z[1] = 0;
        nGame_Flag &= 0xfffffdff;
        if((nGame_Flag & 0x800) != 0)
        {
            if(nE_Flag[0] == 7)
            {
                byGame_Chap[0] = 18;
                nGame_Timer[0] = 0;
                return;
            }
            byGame_Chap[1] = abyte0[nE_Flag[0]];
            nGame_Flag &= 0xfffff7ff;
            nGame_Flag |= 0x40;
        }
        if(nMy_HP[0][0] <= 0)
            nMy_HP[0][0] = 1;
        if(nMy_HP[1][0] <= 0)
            nMy_HP[1][0] = 1;
        bySKey = 3;
        nGame_Flag |= 8;
        nIK = 0;
        byGame_Chap[0] = 7;
        offGfx.setColor(0, 0, 0);
        offGfx.fillRect(0, 0, getWidth(), getHeight());
    }

    public void CD()
    {
        byte abyte0[][] = {
            {
                0, 1
            }, {
                0, -1
            }, {
                -1, 0
            }, {
                1, 0
            }
        };
        char ac[][] = {
            {
                '\u62E3', '\u5230', '\u836F', '\u4E38'
            }, {
                '\u62E3', '\u5230', '\u88C5', '\u5907'
            }, {
                '\u62E3', '\u5230', '\u7269', '\u54C1'
            }
        };
        int j3 = nE_Flag[0];
        if(byMap_No == 2)
            j3 = 5;
        int l2 = nIK | nRK;
        if(byGame_Chap[1] == 0)
        {
            if(nObj_Count[0] == 0)
            {
                byte byte1 = byMy_X;
                byte byte2 = byMy_Y;
                nObj_XSpeed[0] = 0;
                nObj_YSpeed[0] = 0;
                nObj_Count[0] = 3;
                if((l2 & 0x808000) != 0)
                {
                    byte2 -= 4;
                    byMy_GType = 2;
                    nObj_YSpeed[0] = -1;
                } else
                if((l2 & 0x10200000) != 0)
                {
                    byte2 += 4;
                    byMy_GType = 0;
                    nObj_YSpeed[0] = 1;
                } else
                if((l2 & 0x1020000) != 0)
                {
                    byte1 -= 4;
                    byMy_GType = 4;
                    nObj_XSpeed[0] = -1;
                } else
                if((l2 & 0x8080000) != 0)
                {
                    byte1 += 4;
                    byMy_GType = 6;
                    nObj_XSpeed[0] = 1;
                } else
                {
                    nObj_Count[0] = 0;
                    if((l2 & 0x40040000) != 0)
                        switch(byD_Map[byMy_Z][(byMy_Y >> 2) + abyte0[byMy_GType >> 1][1]][(byMy_X >> 2) + abyte0[byMy_GType >> 1][0]])
                        {
                        case 3: // '\003'
                            for(int i = 23; i >= 16; i--)
                            {
                                if(T_D_E_X[byMap_No][i] - abyte0[byMy_GType >> 1][0] - (byMy_X >> 2) != 0 || T_D_E_Y[byMap_No][i] - abyte0[byMy_GType >> 1][1] - (byMy_Y >> 2) != 0 || T_D_E_Z[byMap_No][i] - byMy_Z != 0)
                                    continue;
                                if((nE_Flag[byMap_No + 1] & 1 << i) == 0)
                                {
                                    bySKey = 1;
                                    nGame_Flag |= 0x100;
                                    byGame_Chap[1] = T_D_EVENT[byMap_No][i];
                                    switch(byMap_No)
                                    {
                                    case 2: // '\002'
                                        if(byGame_Chap[1] - 2 == 0 && (byMy_Key & 2) != 0)
                                        {
                                            nE_Flag[byMap_No + 1] |= 1 << i;
                                            byGame_Chap[1] = 3;
                                            nObj_X[1] = (byMy_X >> 2) + abyte0[byMy_GType >> 1][0];
                                            nObj_Y[1] = (byMy_Y >> 2) + abyte0[byMy_GType >> 1][1];
                                            nObj_Z[1] = byMy_Z;
                                        }
                                        if(byGame_Chap[1] - 4 == 0 && (byMy_Key & 1) != 0)
                                        {
                                            nE_Flag[byMap_No + 1] |= 1 << i;
                                            byGame_Chap[1] = 5;
                                            nObj_X[1] = (byMy_X >> 2) + abyte0[byMy_GType >> 1][0];
                                            nObj_Y[1] = (byMy_Y >> 2) + abyte0[byMy_GType >> 1][1];
                                            nObj_Z[1] = byMy_Z;
                                        }
                                        break;
                                    }
                                }
                                break;
                            }

                            break;

                        case 5: // '\005'
                        case 8: // '\b'
                            for(int j = 31; j >= 24; j--)
                            {
                                if(T_D_E_X[byMap_No][j] - abyte0[byMy_GType >> 1][0] - (byMy_X >> 2) != 0 || T_D_E_Y[byMap_No][j] - abyte0[byMy_GType >> 1][1] - (byMy_Y >> 2) != 0 || T_D_E_Z[byMap_No][j] - byMy_Z != 0)
                                    continue;
                                if((nE_Flag[byMap_No + 1] & 1 << j) == 0)
                                {
                                    bySKey = 1;
                                    nE_Flag[byMap_No + 1] |= 1 << j;
                                    nGame_Flag |= 0x100;
                                    byGame_Chap[1] = T_D_EVENT[byMap_No][j];
                                    switch(byMap_No)
                                    {
                                    case 0: // '\0'
                                        if(byGame_Chap[1] - 4 == 0)
                                            byMy_Key |= 1;
                                        break;

                                    case 1: // '\001'
                                        byGame_Chap[1] = 1;
                                        for(int i2 = 0; i2 < 4; i2++)
                                            if((nE_Flag[2] & 1 << i2 + 24) != 0)
                                                byGame_Chap[1]++;

                                        if(byGame_Chap[1] - 5 == 0)
                                        {
                                            nE_Flag[2] &= 0xfffdffff;
                                            byD_Map[0][15][16] = 7;
                                        }
                                        break;
                                    }
                                }
                                break;
                            }

                            break;

                        case 4: // '\004'
                            for(int k = 15; k >= 0; k--)
                            {
                                if(T_D_E_X[byMap_No][k] - abyte0[byMy_GType >> 1][0] - (byMy_X >> 2) != 0 || T_D_E_Y[byMap_No][k] - abyte0[byMy_GType >> 1][1] - (byMy_Y >> 2) != 0 || T_D_E_Z[byMap_No][k] - byMy_Z != 0)
                                    continue;
                                byD_Map[byMy_Z][(byMy_Y >> 2) + abyte0[byMy_GType >> 1][1]][(byMy_X >> 2) + abyte0[byMy_GType >> 1][0]] = 12;
                                nE_Flag[byMap_No + 1] |= 1 << k;
                                nGame_Timer[1] = 15;
                                if(T_D_EVENT[byMap_No][k] - 4 < 0)
                                {
                                    nObj_Count[2] = 0;
                                    byMy_Item[T_D_EVENT[byMap_No][k] - 1]++;
                                    if(byMy_Item[T_D_EVENT[byMap_No][k] - 1] - 99 > 0)
                                        byMy_Item[T_D_EVENT[byMap_No][k] - 1] = 99;
                                } else
                                if(T_D_EVENT[byMap_No][k] - 20 < 0)
                                {
                                    nObj_Count[2] = 1;
                                    byMy_Weapon[T_D_EVENT[byMap_No][k] - 4 >> 3][T_D_EVENT[byMap_No][k] - 4 & 7]++;
                                    if(byMy_Weapon[T_D_EVENT[byMap_No][k] - 4 >> 3][T_D_EVENT[byMap_No][k] - 4 & 7] - 99 > 0)
                                        byMy_Weapon[T_D_EVENT[byMap_No][k] - 4 >> 3][T_D_EVENT[byMap_No][k] - 4 & 7] = 99;
                                } else
                                {
                                    byMy_Key |= 1 << T_D_EVENT[byMap_No][k] - 20;
                                    nObj_Count[2] = 2;
                                }
                                break;
                            }

                            break;

                        case 7: // '\007'
                            for(int l = 23; l >= 16; l--)
                            {
                                if(T_D_E_X[byMap_No][l] - abyte0[byMy_GType >> 1][0] - (byMy_X >> 2) != 0 || T_D_E_Y[byMap_No][l] - abyte0[byMy_GType >> 1][1] - (byMy_Y >> 2) != 0 || T_D_E_Z[byMap_No][l] - byMy_Z != 0)
                                    continue;
                                nGame_Flag |= 0x800;
                                bySKey = 1;
                                nE_Flag[byMap_No + 1] |= 1 << l;
                                nGame_Flag |= 0x100;
                                byGame_Chap[1] = T_D_EVENT[byMap_No][l];
                                nObj_X[1] = (byMy_X >> 2) + abyte0[byMy_GType >> 1][0];
                                nObj_Y[1] = (byMy_Y >> 2) + abyte0[byMy_GType >> 1][1];
                                nObj_Z[1] = byMy_Z;
                                break;
                            }

                            break;
                        }
                    else
                    if((l2 & 0x100) != 0)
                    {
                        byGame_Chap[3] = 6;
                        byGame_Chap[0] = 14;
                    }
                }
                if(byD_Map[byMy_Z][byte2 >> 2][byte1 >> 2] - 10 < 0)
                {
                    nObj_XSpeed[0] = 0;
                    nObj_YSpeed[0] = 0;
                    nObj_Count[0] = 0;
                }
            } else
            {
                nObj_Count[0]--;
                if(nObj_Count[0] == 0)
                    switch(byD_Map[byMy_Z][byMy_Y >> 2][byMy_X >> 2])
                    {
                    case 10: // '\n'
                        if(byMy_Z == 0)
                        {
                            byGame_Chap[0] = 12;
                        } else
                        {
                            nObj_Count[0] = 4;
                            nGame_Flag |= 2;
                        }
                        break;

                    case 11: // '\013'
                        nObj_Count[0] = 4;
                        nGame_Flag |= 2;
                        break;

                    case 14: // '\016'
                        for(int i1 = 23; i1 >= 16; i1--)
                        {
                            if(T_D_E_X[byMap_No][i1] - (byMy_X >> 2) != 0 || T_D_E_Y[byMap_No][i1] - (byMy_Y >> 2) != 0 || T_D_E_Z[byMap_No][i1] - byMy_Z != 0)
                                continue;
                            if((nE_Flag[byMap_No + 1] & 1 << i1) == 0)
                            {
                                bySKey = 1;
                                nE_Flag[byMap_No + 1] |= 1 << i1;
                                byGame_Chap[1] = T_D_EVENT[byMap_No][i1];
                                nGame_Flag |= 0x100;
                            }
                            break;
                        }

                        break;

                    case 12: // '\f'
                    case 13: // '\r'
                    default:
                        if(nObj_Count[1] == 0 && 14 - (Rand.nextInt() & 0x7f) > 0)
                        {
                            nGame_Timer[0] = 4;
                            byGame_Chap[0] = 4;
                        }
                        break;
                    }
            }
        } else
        {
            nObj_XSpeed[0] = 0;
            nObj_YSpeed[0] = 0;
            nGame_Flag |= 0x100;
            if((nIK & 0x40040000) != 0)
            {
                byCursor[0] += 3;
                if(T_TEND[j3][byGame_Chap[1] - 1] - byCursor[0] <= 0)
                {
                    bySKey = 3;
                    byGame_Chap[1] = 0;
                    byCursor[0] = 0;
                    if(nObj_X[1] != 0)
                    {
                        byD_Map[nObj_Z[1]][nObj_Y[1]][nObj_X[1]] = 12;
                        nObj_X[1] = 0;
                    }
                    if((nGame_Flag & 0x800) != 0)
                  

⌨️ 快捷键说明

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