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

📄 menu.java

📁 Jake2是一个Java 3D游戏引擎.
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        cy = y;        DrawCharacter(cx, cy, 1);        for (n = 0; n < lines; n++) {            cy += 8;            DrawCharacter(cx, cy, 4);        }        DrawCharacter(cx, cy + 8, 7);        // draw middle        cx += 8;        while (width > 0) {            cy = y;            DrawCharacter(cx, cy, 2);            for (n = 0; n < lines; n++) {                cy += 8;                DrawCharacter(cx, cy, 5);            }            DrawCharacter(cx, cy + 8, 8);            width -= 1;            cx += 8;        }        // draw right side        cy = y;        DrawCharacter(cx, cy, 3);        for (n = 0; n < lines; n++) {            cy += 8;            DrawCharacter(cx, cy, 6);        }        DrawCharacter(cx, cy + 8, 9);    }    /*     * =======================================================================     *      * MAIN MENU     *      * =======================================================================     */    static final int MAIN_ITEMS = 5;    static xcommand_t Main_Draw = new xcommand_t() {        public void execute() {            Main_Draw();        }    };    static void Main_Draw() {        int i;        int w, h;        int ystart;        int xoffset;        int widest = -1;        int totalheight = 0;        String litname;        String[] names = { "m_main_game", "m_main_multiplayer",                "m_main_options", "m_main_video", "m_main_quit" };        Dimension dim = new Dimension();        for (i = 0; i < names.length; i++) {            Globals.re.DrawGetPicSize(dim, names[i]);            w = dim.width;            h = dim.height;            if (w > widest)                widest = w;            totalheight += (h + 12);        }        ystart = (Globals.viddef.height / 2 - 110);        xoffset = (Globals.viddef.width - widest + 70) / 2;        for (i = 0; i < names.length; i++) {            if (i != m_main_cursor)                Globals.re.DrawPic(xoffset, ystart + i * 40 + 13, names[i]);        }        //strcat(litname, "_sel");        litname = names[m_main_cursor] + "_sel";        Globals.re.DrawPic(xoffset, ystart + m_main_cursor * 40 + 13, litname);        DrawCursor(xoffset - 25, ystart + m_main_cursor * 40 + 11,                (int) ((Globals.cls.realtime / 100)) % NUM_CURSOR_FRAMES);        Globals.re.DrawGetPicSize(dim, "m_main_plaque");        w = dim.width;        h = dim.height;        Globals.re.DrawPic(xoffset - 30 - w, ystart, "m_main_plaque");        Globals.re.DrawPic(xoffset - 30 - w, ystart + h + 5, "m_main_logo");    }    static keyfunc_t Main_Key = new keyfunc_t() {        public String execute(int key) {            return Main_Key(key);        }    };    static String Main_Key(int key) {        String sound = menu_move_sound;        switch (key) {        case Key.K_ESCAPE:            PopMenu();            break;        case Key.K_KP_DOWNARROW:        case Key.K_DOWNARROW:            if (++m_main_cursor >= MAIN_ITEMS)                m_main_cursor = 0;            return sound;        case Key.K_KP_UPARROW:        case Key.K_UPARROW:            if (--m_main_cursor < 0)                m_main_cursor = MAIN_ITEMS - 1;            return sound;        case Key.K_KP_ENTER:        case Key.K_ENTER:            m_entersound = true;            switch (m_main_cursor) {            case 0:                Menu_Game_f();                break;            case 1:                Menu_Multiplayer_f();                break;            case 2:                Menu_Options_f();                break;            case 3:                Menu_Video_f();                break;            case 4:                Menu_Quit_f();                break;            }        }        return null;    }    static xcommand_t Menu_Main = new xcommand_t() {        public void execute() {            Menu_Main_f();        }    };    static void Menu_Main_f() {        PushMenu(new xcommand_t() {            public void execute() {                Main_Draw();            }        }, new keyfunc_t() {            public String execute(int key) {                return Main_Key(key);            }        });    }    /*     * =======================================================================     *      * MULTIPLAYER MENU     *      * =======================================================================     */    static menuframework_s s_multiplayer_menu = new menuframework_s();    static menuaction_s s_join_network_server_action = new menuaction_s();    static menuaction_s s_start_network_server_action = new menuaction_s();    static menuaction_s s_player_setup_action = new menuaction_s();    static void Multiplayer_MenuDraw() {        Banner("m_banner_multiplayer");        Menu_AdjustCursor(s_multiplayer_menu, 1);        Menu_Draw(s_multiplayer_menu);    }    static void PlayerSetupFunc(Object unused) {        Menu_PlayerConfig_f();    }    static void JoinNetworkServerFunc(Object unused) {        Menu_JoinServer_f();    }    static void StartNetworkServerFunc(Object unused) {        Menu_StartServer_f();    }    static void Multiplayer_MenuInit() {        s_multiplayer_menu.x = (int) (viddef.width * 0.50f - 64);        s_multiplayer_menu.nitems = 0;        s_join_network_server_action.type = MTYPE_ACTION;        s_join_network_server_action.flags = QMF_LEFT_JUSTIFY;        s_join_network_server_action.x = 0;        s_join_network_server_action.y = 0;        s_join_network_server_action.name = " join network server";        s_join_network_server_action.callback = new mcallback() {            public void execute(Object o) {                JoinNetworkServerFunc(o);            };        };        s_start_network_server_action.type = MTYPE_ACTION;        s_start_network_server_action.flags = QMF_LEFT_JUSTIFY;        s_start_network_server_action.x = 0;        s_start_network_server_action.y = 10;        s_start_network_server_action.name = " start network server";        s_start_network_server_action.callback = new mcallback() {            public void execute(Object o) {                StartNetworkServerFunc(o);            }        };        s_player_setup_action.type = MTYPE_ACTION;        s_player_setup_action.flags = QMF_LEFT_JUSTIFY;        s_player_setup_action.x = 0;        s_player_setup_action.y = 20;        s_player_setup_action.name = " player setup";        s_player_setup_action.callback = new mcallback() {            public void execute(Object o) {                PlayerSetupFunc(o);            }        };        Menu_AddItem(s_multiplayer_menu, s_join_network_server_action);        Menu_AddItem(s_multiplayer_menu, s_start_network_server_action);        Menu_AddItem(s_multiplayer_menu, s_player_setup_action);        Menu_SetStatusBar(s_multiplayer_menu, null);        Menu_Center(s_multiplayer_menu);    }    static String Multiplayer_MenuKey(int key) {        return Default_MenuKey(s_multiplayer_menu, key);    }    static xcommand_t Menu_Multiplayer = new xcommand_t() {        public void execute() {            Menu_Multiplayer_f();        }    };    static void Menu_Multiplayer_f() {        Multiplayer_MenuInit();        PushMenu(new xcommand_t() {            public void execute() {                Multiplayer_MenuDraw();            }        }, new keyfunc_t() {            public String execute(int key) {                return Multiplayer_MenuKey(key);            }        });    }    /*     * =======================================================================     *      * KEYS MENU     *      * =======================================================================     */    static String bindnames[][] = { { "+attack", "attack" },            { "weapnext", "next weapon" }, { "+forward", "walk forward" },            { "+back", "backpedal" }, { "+left", "turn left" },            { "+right", "turn right" }, { "+speed", "run" },            { "+moveleft", "step left" }, { "+moveright", "step right" },            { "+strafe", "sidestep" }, { "+lookup", "look up" },            { "+lookdown", "look down" }, { "centerview", "center view" },            { "+mlook", "mouse look" }, { "+klook", "keyboard look" },            { "+moveup", "up / jump" }, { "+movedown", "down / crouch" }, {            "inven", "inventory" }, { "invuse", "use item" },            { "invdrop", "drop item" }, { "invprev", "prev item" },            { "invnext", "next item" }, {            "cmd help", "help computer" }, { null, null } };    int keys_cursor;    static boolean bind_grab;    static menuframework_s s_keys_menu = new menuframework_s();    static menuaction_s s_keys_attack_action = new menuaction_s();    static menuaction_s s_keys_change_weapon_action = new menuaction_s();    static menuaction_s s_keys_walk_forward_action = new menuaction_s();    static menuaction_s s_keys_backpedal_action = new menuaction_s();    static menuaction_s s_keys_turn_left_action = new menuaction_s();    static menuaction_s s_keys_turn_right_action = new menuaction_s();    static menuaction_s s_keys_run_action = new menuaction_s();    static menuaction_s s_keys_step_left_action = new menuaction_s();    static menuaction_s s_keys_step_right_action = new menuaction_s();    static menuaction_s s_keys_sidestep_action = new menuaction_s();    static menuaction_s s_keys_look_up_action = new menuaction_s();    static menuaction_s s_keys_look_down_action = new menuaction_s();    static menuaction_s s_keys_center_view_action = new menuaction_s();    static menuaction_s s_keys_mouse_look_action = new menuaction_s();    static menuaction_s s_keys_keyboard_look_action = new menuaction_s();    static menuaction_s s_keys_move_up_action = new menuaction_s();    static menuaction_s s_keys_move_down_action = new menuaction_s();    static menuaction_s s_keys_inventory_action = new menuaction_s();    static menuaction_s s_keys_inv_use_action = new menuaction_s();    static menuaction_s s_keys_inv_drop_action = new menuaction_s();    static menuaction_s s_keys_inv_prev_action = new menuaction_s();    static menuaction_s s_keys_inv_next_action = new menuaction_s();    static menuaction_s s_keys_help_computer_action = new menuaction_s();    static void UnbindCommand(String command) {        int j;        String b;        for (j = 0; j < 256; j++) {            b = keybindings[j];            if (b == null)                continue;            if (b.equals(command))                Key.SetBinding(j, "");        }    }    static void FindKeysForCommand(String command, int twokeys[]) {        int count;        int j;        String b;        twokeys[0] = twokeys[1] = -1;        count = 0;        for (j = 0; j < 256; j++) {            b = keybindings[j];            if (b == null)                continue;            if (b.equals(command)) {                twokeys[count] = j;                count++;                if (count == 2)                    break;            }        }    }    static void KeyCursorDrawFunc(menuframework_s menu) {        if (bind_grab)            re.DrawChar(menu.x, menu.y + menu.cursor * 9, '=');        else            re.DrawChar(menu.x, menu.y + menu.cursor * 9, 12 + ((int) (Timer                    .Milliseconds() / 250) & 1));    }

⌨️ 快捷键说明

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