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

📄 options.java

📁 格斗类型的游戏
💻 JAVA
字号:

import com.nokia.mid.ui.FullCanvas;

import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;


 public class Options extends FullCanvas
    {
        private DragonSoul inc;
         private static final int d[] = {
            2, 2, 3, 3, 2, 2
        };
        //菜单的索引值
        private int selectedIndex;
        public Image number;
        public Image check_box;
        private String optionMenu[] = {
            "声音",
            "难度",
            "回合数",
            "时间"
        };

        protected void showNotify()
        {
            inc.loadLights();
        }

        /**
         * 游戏设定类构造函数
         * @param inc DragonSoul类对象
         */
        public Options(DragonSoul inc)
        {
            this.inc = inc;
            selectedIndex = 0;

            try {
                number = Image.createImage("/digits.png");
                check_box = Image.createImage("/check_box.png");
            } catch (Exception e){}
        }

        /**
         * 按键响应函数
         * @param i1 按键响应代码
         */
        protected void keyPressed(int i1)
        {
            //menuBk = System.currentTimeMillis();
            if(i1 == 50 || i1 == -1)
            {
                selectedIndex = selectedIndex <= 0 ? optionMenu.length - 1 : selectedIndex - 1;
                repaint();
                return;
            }
            if(i1 == 56 || i1 == -2)
            {
                selectedIndex = selectedIndex >= optionMenu.length - 1 ? 0 : selectedIndex + 1;
                repaint();
                return;
            }
            if(i1 == 53 || i1 == -6 || i1 == getKeyCode(8))
            {
                inc.setting[selectedIndex]++;
                if(inc.setting[selectedIndex] >= d[selectedIndex])
                    inc.setting[selectedIndex] = 0;
                repaint();
                return;
            }
            if(i1 == -7)
            {
//                inc.saveIndex();
                inc.saveSetting();
                inc.backToMenu();
            }
        }

        /**
         * 绘制游戏设定画面
         * @param g1 Graphics
         */
        protected void paint(Graphics g1)
        {
            int _fldtry = getWidth() / 5;
            //g1.setClip(0, 0, getWidth(), getHeight());
            g1.setColor(0xffffff);
            g1.fillRect(0, 0, getWidth(), getHeight());
            for(int i1 = 0; i1 < (getWidth() - 1) /inc.menuBk.getWidth() + 1; i1++)
                g1.drawImage(inc.menuBk, i1 * inc.menuBk.getWidth(), 0, 0x10 | 0x4);

            for(int j1 = 0; j1 < optionMenu.length; j1++)
            {
                int l1 = 23 + 21 * (j1 + 1);
                if (j1 == selectedIndex) {
                    g1.drawImage(inc.fistImage, _fldtry - 18, l1 - 12, 0x10 | 0x4);
                }
                if(j1 == 0)
                {
                    g1.setClip((getWidth() - _fldtry) - 10, l1 - check_box.getHeight(), check_box.getWidth() / 2, check_box.getHeight());
                    int i2 = ((1 - inc.setting[j1]) * check_box.getWidth()) / 2;
                    g1.drawImage(check_box, getWidth() - ((_fldtry + 10) + i2), l1 - check_box.getHeight(), 0x10 | 0x4);
                }
                if(j1 == 1)
                {
                    String s = inc.getGameRank() ? "易" : "难";
                    int l2 = getWidth() - (_fldtry + 10 - check_box.getWidth() / 4);
                    g1.setColor(0);
                    g1.drawString(s, l2 + 1, l1 + 1, 0x20 | 0x1);
                    g1.setColor(0x993300);
                    g1.drawString(s, l2, l1, 0x20 | 0x1);
                }
                if(j1 == 2)
                {
                    int j2 = getWidth() - (_fldtry + 10 - check_box.getWidth() / 4);
                    drawNumber(g1, inc.setting[2] * 2 + 1, j2 - number.getWidth() / 10 / 2, l1 - number.getHeight(), 1);
                }
                if(j1 == 3)
                {
                    int k2 = getWidth() - (_fldtry + 10 - check_box.getWidth() / 4);
                    if(inc.setting[3] == 0)
                        drawNumber(g1, 50, k2 -number.getWidth() / 10, l1 -number.getHeight(), 2);
                    else
                    if(inc.setting[3] == 1)
                        drawNumber(g1, 100, k2 - ((number.getWidth() / 10) * 3) / 2, l1 -number.getHeight(), 3);
                    else
                    if(inc.setting[3] == 2)
                        g1.drawImage(inc.m, k2, (l1 - 4) + 2, 0x20 | 0x1);
                }
                g1.setClip(0, 0, getWidth(), getHeight());
                g1.setColor(0);
                g1.drawString(optionMenu[j1], _fldtry - 0, l1 + 1, 0x20 | 0x4);
                g1.setColor(0x993300);
                g1.drawString(optionMenu[j1], _fldtry - 1, l1, 0x20 | 0x4);
            }

            //int k1 = (27 + 21 * (selectedIndex + 1)) - inc.fistImage.getHeight() ;

//            g1.drawImage(inc._fldchar, 0, getHeight(), 0x20 | 0x4);
//            g1.drawImage(inc._fldif, getWidth(), getHeight(), 0x20 | 0x8);
    }

        /**
         * 绘制设定的对局时间
         * @param g1 Graphics
         * @param i1 int,回合数或时间
         * @param j1 int,回合数或时间横坐标
         * @param k1 int,回合数或时间纵坐标
         * @param l1 int,回合数或时间的状态
         */
        private void drawNumber(Graphics g1, int i1, int j1, int k1, int l1){
            for (int i2 = 0; i2 < l1; i2++) {
                int j2 = 1;
                for(int k2 = 0; k2 < l1 - i2 - 1; k2++)
                    j2 *= 10;

                int l2 = (i1 / j2) % 10;
                g1.setClip(j1 + (number.getWidth() / 10) * i2, k1,number.getWidth() / 10, number.getHeight());
                g1.drawImage(number, j1 + (number.getWidth() / 10) * (i2 - l2), k1, 0x10 | 0x4);
            }
        }
    }

⌨️ 快捷键说明

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