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

📄 puyopuyo2.java

📁 手机游戏 SEGA《PuyoPuyo》 J2ME源代码+详细注释
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi

import java.io.IOException;
import java.io.PrintStream;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;

public class PuyoPuyo2 extends AgesBaseHttp
{

    public static boolean config[] = new boolean[2];
    private static int load_mode1 = 0;
    private static int title_mode;
    private static int select_mode;
    private static int stat_cnt = 0;
    private static boolean Draw_flag = true;
    private static Image img_title[] = new Image[2];
    private static Image img_ending[] = new Image[2];
    private static Image img_game[] = new Image[3];
    private static Image img_face;
    private static Image img_stand;
    public static Image img_gframe;
    public static Image img_gframe2;
    private static Image cut_img;
    private static int cut_img_id;
    private static Image img_cur_arrow;
    private static Image img_cur_puyo;
    private static Image img_kar[] = new Image[3];
    public static Image img_font[] = new Image[4];
    public static Image img_spr[] = new Image[10];
    private static Field field[] = null;
    private static byte next_buf[][];
    private static boolean next_flag[];
    private static int start_cnt;
    private static int winner;
    private static int hi_score[] = new int[5];
    private static int my_score;
    private static int st_score;
    private static int b_my_score;
    private static boolean my_scoref;
    private static int kar_anime;
    private static int kar_jump;
    private static int end_cnt;
    private static int end_cnt2;
    private static int nowLevel = 0;
    private static int enemyNo = 0;
    private static int next[] = {
        15000, 35000, 55000, 0x11170
    };
    private static int exp;
    private static int rest;
    private static int add_exp;
    private static int intro_cnt;
    private static int intro_page;
    private static boolean clear_enemy[] = new boolean[17];
    private static int class_clear;
    private static int roulette_speed;
    private static int select_cnt;
    private static int enemy_level[] = {
        35, 33, 33, 34, 32, 25, 24, 24, 22, 14,
        15, 16, 10, 9, 4
    };
    private static int enemy_class[][] = {
        {
            0, 1, 2, 3, 4
        }, {
            5, 6, 7, 8
        }, {
            9, 10, 11
        }, {
            12, 13
        }, {
            14
        }
    };
    private static int enemy_argo[][] = {
        {
            80, 200, 390, 8, 1, 0, 0, 0, 0, 0,
            0
        }, {
            200, 100, 300, 50, 2, 35, 20, 0, 0, 0,
            0
        }, {
            100, 200, 250, 90, 3, 0, 0, 0, 0, 0,
            0
        }, {
            100, 160, 100, 20, 4, 0, 0, 0, 80, 90,
            100
        }, {
            60, 150, 80, 10, 4, 0, 0, 0, 0, 0,
            0
        }, {
            100, 150, 50, 2, 4, 100, -90, 0, 0, 0,
            100
        }, {
            50, 100, 80, 50, 4, 0, 0, 0, 0, 0,
            0
        }, {
            50, 20, 100, 220, 4, 200, 200, 200, 200, 200,
            200
        }, {
            1, -180, 200, 80, 4, 0, 0, 0, 0, 0,
            0
        }, {
            80, -100, 30, 10, 4, 0, 0, 0, 0, 0,
            0
        }, {
            40, 200, 30, 8, 4, 100, 100, 100, 100, 100,
            100
        }, {
            40, -150, 25, 2, 4, 10, 10, 0, 0, 10,
            10
        }, {
            30, -200, 30, 8, 4, 50, 40, 0, 40, 50,
            60
        }, {
            20, -100, 25, 6, 4, 30, 30, 0, 30, 35,
            35
        }, {
            20, -200, 20, 8, 4, 30, 30, 0, 30, 35,
            35
        }
    };
    public static Font font = Font.getDefaultFont();
    private static boolean first_read = false;

    public PuyoPuyo2()
    {
        if(!first_read)
        {
            field = new Field[2];
            field[0] = new Field((short)0, (short)27, 0);
            field[1] = new Field((short)90, (short)27, 1);
            field[0].enemy = field[1];
            field[1].enemy = field[0];
            next_buf = new byte[128][2];
            next_flag = new boolean[128];
            first_read = true;
        }
        game_mode = 1;//getAppProperty("MIDxlet-Network").charAt(0) != 'Y' ? 1 : 0;
        System.gc();
    }

    void game_synch(boolean flag)
    {
        Draw_flag = !flag ? Draw_flag : true;
        if((keyPush & 0x2) != 0 && !key_pause && game_mode != 0)
        {
            config[1] = !config[1];
            sound_flag = !sound_flag;
            if(!sound_flag)
            {
                stopBgm();
                once = false;
            } else
            if(game_mode == 2)
            {
                playBgm(0);
                once = true;
            } else
            if(game_mode == 4 && !stopflag)
                playBgm(1);
            SaveData(false, false);
            if(game_mode == 8)
                Draw_flag = true;
        }
        switch(game_mode)
        {
        case 7: // '\007'
        case 9: // '\t'
        case 10: // '\n'
        case 11: // '\013'
        case 12: // '\f'
        case 13: // '\r'
        case 14: // '\016'
        default:
            break;

        case 0: // '\0'
            if(doCheckRegistration())
                game_mode = 1;
            drawCheckRegistration();
            if(state == 6)
            {
                gc.setColor(0);
                gc.fillRect(offsetX, 151 + offsetY, 150, 16);
                gc.setColor(0xffffff);
                gc.drawString("Retry", 5 + offsetX, 151 + offsetY, 20);
                gc.drawString("Exit", 145 + offsetX, 151 + offsetY, 24);
                game_mode = 15;
            }
            break;

        case 15: // '\017'
            drawCheckRegistration();
            if((keyPush & 0x20000) != 0)
            {
                state = 1;
                game_mode = 0;
                key_down = 0;
                drawCheckRegistration();
                gc.setColor(0);
                gc.fillRect(offsetX, 151 + offsetY, 150, 16);
                break;
            }
            if((keyPush & 0x40000) != 0)
            {
                destroyApp(false);
                notifyDestroyed();
            } else
            {
                gc.setColor(0);
                gc.fillRect(offsetX, 151 + offsetY, 150, 16);
                gc.setColor(0xffffff);
                gc.drawString("Retry", 5 + offsetX, 151 + offsetY, 20);
                gc.drawString("Exit", 145 + offsetX, 151 + offsetY, 24);
            }
            break;

        case 1: // '\001'
            if(First_Load())
            {
                game_mode = 2;
                title_mode = 0;
                select_mode = 0;
                logo = null;
            }
            break;

        case 2: // '\002'
            if(Title_Main())
            {
                game_mode = 3;
                select_mode = 0;
            }
            break;

        case 3: // '\003'
            switch(Select_Main())
            {
            case 0: // '\0'
                kar_anime = 0;
                kar_jump = 0;
                game_mode = 4;
                break;

            case 1: // '\001'
                game_mode = 8;
                select_mode = 2;
                break;

            case 2: // '\002'
                game_mode = 2;
                title_mode = 0;
                select_mode = 0;
                break;

            case 3: // '\003'
                destroyApp(false);
                notifyDestroyed();
                break;
            }
            break;

        case 4: // '\004'
            switch(Game_Main())
            {
            case -1:
            default:
                break;

            case 0: // '\0'
                stat_cnt = 0;
                Draw_flag = true;
                if(nowLevel == 5)
                {
                    game_mode = 6;
                    Ending_Init(1);
                    end_cnt = 1;
                    end_cnt2 = 0;
                    cut_img_id = 0;
                } else
                {
                    GameImage1_Init();
                }
                break;

            case 1: // '\001'
                stat_cnt = 0;
                select_mode = 0;
                Draw_flag = true;
                game_mode = 5;
                Title_Init(2);
                break;

            case -2:
                stat_cnt = 0;
                Draw_flag = true;
                game_mode = 2;
                title_mode = 0;
                select_mode = 0;
                Title_Init(1);
                break;
            }
            break;

        case 5: // '\005'
            switch(Continue_Main())
            {
            case 0: // '\0'
                game_mode = 4;
                GameImage1_Init();
                SaveData(false, true);
                my_score = 0;
                break;

            case 1: // '\001'
                game_mode = 2;
                title_mode = 0;
                select_mode = 0;
                SaveData(false, true);
                Title_Init(1);
                Init_Over();
                break;
            }
            break;

        case 6: // '\006'
            if(Ending_Main())
            {
                game_mode = 2;
                title_mode = 0;
                select_mode = 0;
                SaveData(false, true);
                Title_Init(1);
                Init_Over();
            }
            break;

        case 8: // '\b'
            if(Option_Main())
            {
                game_mode = 3;
                select_mode = 0;
                SaveData(false, false);
            }
            break;
        }
    }

    boolean First_Load()
    {
        byte byte0 = 51;
        drawLoad(byte0);
        sleep();
        switch(load_mode1)
        {
        default:
            break;

        case 0: // '\0'
            LoadData();
            load_mode1 = 1;
            break;

        case 1: // '\001'
            load_mode1 = 2;
            break;

        case 2: // '\002'
            load_mode1 = 3;
            break;

        case 3: // '\003'
            Font_Init();
            load_mode1 = 4;
            break;

        case 4: // '\004'
            Title_Init(1);
            load_mode1 = 5;
            break;

        case 5: // '\005'
//            try
//            {
//                for(int i = 0; i < 2; i++)
//                {
//                    java.io.InputStream inputstream = _class.getResourceAsStream(i + ".mid");
//                    sound[i] = Manager.createPlayer(inputstream, "audio/midi");
//                    sound[i].realize();
//                    sound[i].prefetch();
//                }
//
//            }
//            catch(MediaException mediaexception)
//            {
//                System.out.println("MediaException");
//            }
//            catch(IOException ioexception)
//            {
//                System.out.println("IOException");
//            }
            load_mode1 = 0;
            return true;
        }
        return false;

⌨️ 快捷键说明

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