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

📄 puyopuyo2.java

📁 手机游戏 SEGA《PuyoPuyo》 J2ME源代码+详细注释
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
                gc.setColor(0xff8040);
                gc.fillRect(148 + offsetX, offsetY + 75, 1, 10);
                gc.setColor(0x804020);
                gc.fillRect(149 + offsetX, offsetY + 75, 1, 10);
            }
            if(title_mode == 2)
            {
                drawCenter(0xffffff, "in 1994. All the", 69);
                drawCenter(0xffffff, "fun you remember", 86);
            } else
            if(title_mode == 3)
            {
                drawCenter(0xffffff, "Up,2,0 ..Rotate Left", 69);
                drawCenter(0xffffff, "Down,8 ..Drop", 86);
            }
        }
        if((keyRepeat & 0x2010) != 0)
        {
            if(title_mode == 0)
                title_mode = 3;
            else
                title_mode--;
            Draw_flag = true;
        } else
        if((keyRepeat & 0x4040) != 0)
        {
            if(title_mode == 3)
                title_mode = 0;
            else
                title_mode++;
            Draw_flag = true;
        } else
        {
            if((keyPush & 0x10c20) != 0)
            {
                Draw_flag = true;
                once = false;
                stopBgm();
                gc.setColor(0);
                gc.fillRect(offsetX, 151 + offsetY, 150, 16);
                return true;
            }
            if((keyPush & 0x40000) != 0)
            {
                destroyApp(false);
                notifyDestroyed();
            }
        }
        return false;
    }

    static int Select_Main()
    {
        String as[] = {
            " Play PuyoPuyo2", " Option", " Back To Title", " Exit Game"
        };
        if(Draw_flag)
        {
            Draw_flag = false;
            c_Screen();
            Draw_BackGraund();
            drawCenter(0xffffff, "Select Mode", 20);
            for(int i = 0; i < 4; i++)
                drawString(i != select_mode ? 0xc0c0ff : 0xffffff, as[i], 40, 52 + i * 22);

            System.gc();
        }
        gc.setColor(0x40a040);
        gc.fillRect(16 + offsetX, offsetY + 53 + select_mode * 22, 10, 10);
        Draw_PuyoCar(16, 53 + select_mode * 22);
        if(Cursor_UD(0, 3))
            return select_mode;
        else
            return 99;
    }

    static boolean Option_Main()
    {
        String as[] = {
            "ROTATION", "SOUND", "BACK", "RIGHT", "ON", "LEFT", "OFF"
        };
        if(Draw_flag)
        {
            Draw_flag = false;
            c_Screen();
            Draw_BackGraund();
            drawCenter(0xffffff, "OPTION", 16);
            for(int i = 0; i < 3; i++)
            {
                drawString(i != 2 ? 0xffffff : 0xff8080, as[i], 20, 50 + i * 26);
                if(i == 2)
                    break;
                if(config[i])
                    drawString(0xffffc0, as[3 + i], 100, 50 + i * 26);
                else
                    drawString(0xc0c0ff, as[5 + i], 100, 50 + i * 26);
            }

            System.gc();
        }
        gc.setColor(0x40a040);
        gc.fillRect((select_mode != 2 ? 85 : 5) + offsetX, offsetY + 51 + select_mode * 26, 10, 10);
        Draw_PuyoCar(select_mode != 2 ? 85 : 5, 51 + select_mode * 26);
        if(Cursor_UD(0, 2))
            switch(select_mode)
            {
            case 0: // '\0'
                config[0] = !config[0];
                break;

            case 1: // '\001'
                config[1] = !config[1];
                sound_flag = !sound_flag;
                break;

            case 2: // '\002'
                return true;
            }
        return false;
    }

    static int Continue_Main()
    {
        String as[] = {
            "Yes", "No"
        };
        if(Draw_flag)
        {
            Draw_flag = false;
            c_Screen();
            gc.drawImage(img_title[1], 16 + offsetX, offsetY + 10, 20);
            for(int i = 0; i < 2; i++)
                drawString(i != select_mode ? 0xc0c0ff : 0xffffff, as[i], 100, 110 + i * 20);

            System.gc();
        }
        gc.setColor(0);
        gc.fillRect(80 + offsetX, offsetY + 111 + select_mode * 20, 10, 10);
        Draw_PuyoCar(80, 111 + select_mode * 20);
        if(Cursor_UD(0, 1))
            return select_mode;
        else
            return 99;
    }

    static boolean Ending_Main()
    {
        byte byte0 = 15;
        try
        {
            if(Draw_flag)
            {
                Draw_flag = false;
                c_Screen();
                if(end_cnt2 > 0 && end_cnt2 < 5)
                {
                    if(cut_img_id != end_cnt2)
                    {
                        cut_img_id = end_cnt2;
                        getImageParts(img_ending[0], cut_img, end_cnt2 - 1);
                    }
                    gc.drawImage(cut_img, 35 + offsetX, 45 + offsetY, 20);
                } else
                if(end_cnt2 >= 5)
                {
                    gc.drawImage(img_ending[1], offsetX, offsetY, 20);
                    if(end_cnt - byte0 >= 125)
                        drawCenter(0xff0000, "Congratulations!", 62);
                }
                System.gc();
            }
            if(end_cnt == byte0 || (end_cnt - byte0) % 25 == 0)
            {
                Draw_flag = true;
                end_cnt2++;
                if(end_cnt2 == 5)
                    Ending_Init(2);
            }
            end_cnt++;
        }
        catch(Throwable throwable)
        {
            Ending_Init(2);
        }
        if((keyPush & 0x10c20) != 0 && end_cnt2 >= 5)
        {
            Draw_flag = true;
            cut_img_id = 0;
            return true;
        } else
        {
            return false;
        }
    }

    static boolean Cursor_UD(int i, int j)
    {
        if((keyRepeat & 0x1005) != 0)
        {
            if(select_mode != i)
                select_mode--;
            else
                select_mode = j;
            Draw_flag = true;
        } else
        if((keyRepeat & 0x8100) != 0)
        {
            if(select_mode != j)
                select_mode++;
            else
                select_mode = i;
            Draw_flag = true;
        } else
        if((keyPush & 0x10c20) != 0)
        {
            Draw_flag = true;
            return true;
        }
        select_mode = select_mode;
        return false;
    }

    private static void draw_select(boolean flag)
    {
        int l = enemy_class[nowLevel][0];
        int i1 = 0;
        boolean flag1 = false;
        if(kar_anime != 35)
        {
            gc.setColor(42438);
            gc.fillRect(offsetX, offsetY, 150, 150);
            int i = 0;
            do
            {
                if(i >= 3)
                    break;
                int j1;
                if(kar_anime < 16)
                {
                    gc.drawImage(img_game[1], 70 + ((nowLevel - 1) + i) * 10 + offsetX, (100 - i * 50) + offsetY, 20);
                    j1 = (nowLevel - 1) + i;
                } else
                if(kar_anime >= 16 && kar_anime < 25)
                {
                    if(i == 0)
                        gc.drawImage(img_game[1], 70 + ((nowLevel - 1) + i) * 10 + kar_anime * 5 + offsetX, (100 - i * 50) + offsetY, 20);
                    else
                        gc.drawImage(img_game[1], 70 + ((nowLevel - 1) + i) * 10 + offsetX, (100 - i * 50) + offsetY, 20);
                    j1 = (nowLevel - 1) + i;
                } else
                if(kar_anime >= 26 && kar_anime < 27)
                {
                    gc.drawImage(img_game[1], 70 + (nowLevel + i) * 10 + offsetX, (100 - i * 50 - (i == 0 ? 0 : 5 * i)) + offsetY, 20);
                    j1 = nowLevel + i;
                } else
                {
                    gc.drawImage(img_game[1], 70 + (nowLevel + i) * 10 + offsetX, (100 - i * 50) + offsetY, 20);
                    j1 = nowLevel + i;
                }
                if(j1 == 4)
                {
                    gc.drawImage(img_game[2], 110 + offsetX, (offsetY + 100) - i * 50 - 100, 20);
                    break;
                }
                i++;
            } while(true);
            Draw_Status();
        } else
        {
            if(Draw_flag)
            {
                Draw_flag = false;
                gc.setColor(42438);
                gc.fillRect(offsetX, offsetY, 150, 150);
                int j = 0;
                do
                {
                    if(j >= 3)
                        break;
                    gc.drawImage(img_game[1], 70 + (nowLevel + j) * 10 + offsetX, (offsetY + 100) - j * 50, 20);
                    if(nowLevel + j == 4)
                    {
                        gc.drawImage(img_game[2], 110 + offsetX, (offsetY + 100) - j * 50 - 100, 20);
                        break;
                    }
                    j++;
                } while(true);
                Draw_Status();
                System.gc();
            }
            for(int k = 0; k < enemy_class[nowLevel].length; k++)
            {
                if(!clear_enemy[l])
                {
                    getImageParts(img_face, cut_img, enemy_class[nowLevel][k]);
                    gc.drawImage(cut_img, nowLevel * 15 + k * 30 + offsetX, offsetY + 115, 20);
                } else
                {
                    getImageParts(img_face, cut_img, 15);
                    gc.drawImage(cut_img, nowLevel * 15 + k * 30 + offsetX, offsetY + 115, 20);
                }
                if(l == enemyNo)
                    i1 = k;
                l++;
            }

        }
        if(kar_anime != 35)
        {
            if(kar_anime < 10)
                drawSprite(img_kar[0], 22 + nowLevel * 10, 111, 0, 0, 0);
            else
            if(kar_anime >= 10 && kar_anime < 15)
                drawSprite(img_kar[1], 27 + nowLevel * 10, 111, 0, 0, 0);
            else
            if(kar_anime >= 15 && kar_anime < 18)
                drawSprite(img_kar[2], 22 + nowLevel * 10, 120, 0, 0, 0);
            else
            if(kar_anime >= 18 && kar_anime < 26)
                drawSprite(img_kar[0], 22 + nowLevel * 10, 111, 0, 0, 0);
            else
            if(kar_anime >= 26)
            {
                if(kar_anime == 26)
                    kar_jump = -30;
                else
                    kar_jump += 20;
                drawSprite(img_kar[0], 22 + nowLevel * 10, 111 + kar_jump, 0, 0, 0);
            }
            kar_anime++;
            gc.setColor(0);
            gc.fillRect(0, offsetY + 150, 176, 20 + offsetY);
        } else
        if(!flag || commonCounter % 3 != 0)
        {
            int k1 = nowLevel * 15 + i1 * 30;
            byte byte0 = 115;
            gc.setColor(0xfb0000);
            gc.drawRect(k1 + offsetX, offsetY + byte0, 29, 29);
        }
    }

    static void Draw_Status()
    {
        gc.drawImage(img_game[0], 5 + offsetX, offsetY, 20);
        if(nowLevel < 4)
        {
            draw_message("EXP", 9, 40, 0, 3);
            draw_value(exp, 56, 52, 0);
            draw_message("NEXT", 9, 65, 0, 3);
            draw_value(nowLevel != 0 ? next[nowLevel] - next[nowLevel - 1] : next[nowLevel], 56, 77, 0);
            draw_message("REST", 9, 90, 0, 3);
            draw_value(rest, 56, 102, 0);
        } else
        {
            draw_message("ARLE", 10, 62, 0, 0);
            draw_message("NADJA", 16, 75, 0, 0);
        }
        draw_message("LEVEL", 69, 37, 0, 0);
        draw_value(nowLevel + 1, 119, 37, 0);
    }

    static void Draw_BackGraund()
    {
        gc.setColor(42438);
        gc.fillRect(offsetX, offsetY, 150, 150);
        gc.setColor(0x804020);
        gc.drawRect(1 + offsetX, 1 + offsetY, 148, 148);
        gc.setColor(0xff8040);
        gc.drawRect(offsetX, offsetY, 148, 148);
        gc.setColor(0x40a040);
        gc.fillRect(2 + offsetX, offsetY + 2, 146, 146);
    }

    static void Draw_PuyoCar(int i, int j)
    {
        if(commonCounter % 9 < 3)
            drawSprite(img_cur_puyo, i, j, 10, 10, 0);
        else
        if(commonCounter % 9 >= 3 && commonCounter % 9 < 6)
            drawSprite(img_cur_puyo, i, j, 10, 10, 1);
        else
            drawSprite(img_cur_puyo, i, j, 10, 10, 2);
    }

    private static void draw_game()
    {
        boolean flag = false;
        if(Draw_flag)
        {
            flag = true;
            gc.drawImage(img_gframe, offsetX, offsetY, 20);
            gc.drawImage(img_gframe, 90 + offsetX, offsetY, 20);
            gc.setColor(0);
            gc.fillRect(60 + offsetX, offsetY, 30, 150);
            gc.drawImage(img_gframe2, 60 + offsetX, offsetY, 20);
            gc.fillRect(offsetX, 151 + offsetY, 150, 16);
            gc.setColor(0xffffff);
            if(stat_cnt >= 5)
                if(!key_pause)
                {
                    gc.drawString("PAUSE", 5 + offsetX, offsetY + 151, 20);
                } else
                {
                    gc.drawString("RESTART", 5 + offsetX, offsetY + 151, 20);
                    gc.drawString("TITLE", 145 + offsetX, offsetY + 151, 24);
                }
        }
        if(start_cnt == 100)

⌨️ 快捷键说明

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