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

📄 tomadventurecanvas.java

📁 java 小程序 使用j2me 开发的一个小的游戏软件
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                    status = RUNNING;
                }
                background.paint(g);
                for(int i=0;i<mapstage[stage-1][0][2]*mapstage[stage-1][0][3];i++)
                {
                    map[i].paint(g);
                }
                for(int i=0;i<itemstage[stage-1].length;i++)
                {
                    item[i].paint(g);
                }
                tom.paint(g);
                break;
        }
    }

    public void run()
    {
        while (true)
        {
            try
            {
                Thread.sleep(60);
            }
            catch (InterruptedException ex)
            {
            }
            repaint();
            System.gc();
        }
    }
    ////////////////////////////////按键处理/////////////////////////////////////
    public void keyPressed(int keycode)
    {
        switch (status)
        {
            case BBMF_LOGO:
                break;
            case GAME_LOGO:
//                System.out.println("ddddsss");
//                logo.imgbbmflogo = null;
//                logo.imggamelogo = null;
//                logo = null;
                System.gc();
                status = MAIN_MENU;
                break;
            case MAIN_MENU:
                break;
            case SUB_MENU:
                break;
            case RUNNING:
                //System.out.println(keycode);
                if(STAGE_LOSE == true)
                {
                    timecount = 0;
                    STAGE_LOSE = false;
                    imglose = null;
                    System.gc();
                }
                else if(STAGE_WIN == true)
                {
                    timecount = 0;
                    STAGE_WIN = false;
                    imgwin = null;
                    System.gc();
                }
                else
                {
                    switch (keycode)
                    {
                        case KEY_LEFT_SOFTKEY:
                            status = SUB_MENU;
                            display.setCurrent(this);
                            repaint();
                            break;
                        case KEY_RIGHT_SOFTKEY:
                            repaint();
                            break;
                        case KEY_PAUSE:
                            if (tom.status != Tom.FALL_LEFT &&
                                tom.status != Tom.FALL_RIGHT)
                            {
                                omapx = mapx;
                                omapy = mapy;
                                status = PAUSE;
                                display.setCurrent(this);
                            }
                            repaint();
                            break;
                        case KEY_UP:
                        case KEY_NUM2:
                            if (mapy - 3 >= 0)
                            {
                                mapy = mapy - 3;
                            }
                            repaint();
                            break;
                        case KEY_DOWN:
                        case KEY_NUM8:
                            if (mapy + 3 <= maph - viewh)
                            {
                                mapy = mapy + 3;
                            }
                            repaint();
                            break;
                        case KEY_LEFT:
                        case KEY_NUM4:
                            if (tom.status == Tom.LEFT ||
                                tom.status == Tom.RIGHT ||
                                tom.status == Tom.HIT_LEFT ||
                                tom.status == Tom.HIT_RIGHT)
                            {
                                tom.status = Tom.GO_LEFT;
                            }
                            else if (tom.status == Tom.FALL_LEFT ||
                                     tom.status == Tom.JUMP_LEFT)
                            {
                                tom.direct = Tom.LEFT; //下落时控制方向
                            }
                            else if (tom.status == Tom.FALL_RIGHT ||
                                     tom.status == Tom.JUMP_RIGHT)
                            {
                                tom.direct = Tom.LEFT;
                            }
                            repaint();
                            break;
                        case KEY_RIGHT:
                        case KEY_NUM6:
                            if (tom.status == Tom.LEFT ||
                                tom.status == Tom.RIGHT ||
                                tom.status == Tom.HIT_LEFT ||
                                tom.status == Tom.HIT_RIGHT)
                            {
                                tom.status = Tom.GO_RIGHT;
                            }
                            else if (tom.status == Tom.FALL_RIGHT ||
                                     tom.status == Tom.JUMP_RIGHT)
                            {
                                tom.direct = Tom.RIGHT;
                            }
                            else if (tom.status == Tom.FALL_LEFT ||
                                     tom.status == Tom.JUMP_LEFT)
                            {
                                tom.direct = Tom.RIGHT;
                            }
                            repaint();
                            break;
                        case KEY_NUM1:
                            if (tom.status != Tom.FALL_LEFT &&
                                tom.status != Tom.FALL_RIGHT)
                            {
                                tom.status = Tom.JUMP_LEFT;
                            }
                            break;
                        case KEY_NUM3:
                            if (tom.status != Tom.FALL_LEFT &&
                                tom.status != Tom.FALL_RIGHT)
                            {
                                tom.status = Tom.JUMP_RIGHT;
                            }
                            break;
                        case KEY_NUM5:
                            if (tom.status == Tom.LEFT)
                            {
                                tom.status = Tom.HIT_LEFT;
                            }
                            else if (tom.status == Tom.RIGHT)
                            {
                                tom.status = Tom.HIT_RIGHT;
                            }
                            break;
                        case KEY_NUM0:
                            if (tom.status == Tom.LEFT)
                            {
                                tom.status = Tom.DRILL_LEFT;
                            }
                            else if (tom.status == Tom.RIGHT)
                            {
                                tom.status = Tom.DRILL_RIGHT;
                            }
                            break;
                        case KEY_NUM9:
                            if (tom.status == Tom.LEFT)
                            {
                                tom.status = Tom.JUMPHIT_LEFT;
                            }
                            else if (tom.status == Tom.RIGHT)
                            {
                                tom.status = Tom.JUMPHIT_RIGHT;
                            }
                            break;
                    }
                }
                break;
            case PAUSE:
                switch (keycode)
                {
                    case KEY_LEFT_SOFTKEY:
                        status = SUB_MENU;
                        display.setCurrent(this);
                        repaint();
                        break;
                    case KEY_RIGHT_SOFTKEY:
                        repaint();
                        break;
                    case KEY_PAUSE:
                        mapx = omapx;
                        mapy = omapy;
                        status = RUNNING;
                        display.setCurrent(this);
                        repaint();
                        break;
                    case KEY_UP:
                    case KEY_NUM2:
                        pause = PAUSE_UP;
                        repaint();
                        break;
                    case KEY_DOWN:
                    case KEY_NUM8:
                        pause = PAUSE_DOWN;
                        repaint();
                        break;
                    case KEY_LEFT:
                    case KEY_NUM4:
                        pause = PAUSE_LEFT;
                        repaint();
                        break;
                    case KEY_RIGHT:
                    case KEY_NUM6:
                        pause = PAUSE_RIGHT;
                        repaint();
                        break;
                }
                break;
        }
        repaint();
        System.gc();
    }
    ///////////////////////////////释放按键处理//////////////////////////////////
    public void keyReleased(int keycode)
    {
        switch (status)
        {
            case RUNNING:
               switch(keycode)
               {
                   case KEY_LEFT:
                   case KEY_NUM4:
                       if(tom.status == Tom.GO_LEFT)
                       {
                           tom.status = Tom.LEFT;
                       }
                       tom.direct = 0;
                       break;
                   case KEY_RIGHT:
                   case KEY_NUM6:
                       if(tom.status == Tom.GO_RIGHT)
                       {
                           tom.status = Tom.RIGHT;
                       }
                       tom.direct = 0;
                       break;
               }
               break;
         case LEFT_MOVE:
              switch(keycode)
              {
                  case KEY_LEFT:
                  case KEY_NUM4:
                       if(tom.status == Tom.GO_LEFT)
                       {
                           tom.status = Tom.LEFT;
                       }
                      break;
              }
              break;
         case RIGHT_MOVE:
             switch(keycode)
             {
                 case KEY_RIGHT:
                 case KEY_NUM6:
                     if(tom.status == Tom.GO_RIGHT)
                     {
                         tom.status = Tom.RIGHT;
                     }
                     break;
             }
             break;
         case PAUSE:
             switch(keycode)
             {
                 case KEY_UP:
                 case KEY_NUM2:
                 case KEY_DOWN:
                 case KEY_NUM8:
                 case KEY_LEFT:
                 case KEY_NUM4:
                 case KEY_RIGHT:
                 case KEY_NUM6:
                     pause = PAUSE_NORMAL;
                     break;
             }
             break;
        }
    }

    public void commandAction(Command c, Displayable d)
    {
        //主菜单部分
        if (d == listmainmenu && c == listmainmenu.SELECT_COMMAND)
        {
            mainmenuselected = listmainmenu.getSelectedIndex();
            switch (listmainmenu.getSelectedIndex())
            {
                case 0: //开始游戏
                    initStage();
                    status = RUNNING;
                    display.setCurrent(this);
                    repaint();
                    break;
                case 1: //读取进度
                    break;
                case 2: //帮助
                    break;
                case 3: //排行榜
                    break;
                case 4: //音效设置
                    break;
                case 5: //厂商资讯
                    break;
                case 6: //退出游戏
                    status = BBMF_LOGO;
                    midlet.destroyApp(true);
                    midlet.notifyDestroyed();
                    break;
            }
            listmainmenu = null;
            System.gc();
        }
        //游戏中菜单部分
        else if (d == listsubmenu && c == listsubmenu.SELECT_COMMAND)
        {
            submenuselected = listsubmenu.getSelectedIndex();
            switch (listsubmenu.getSelectedIndex())
            {
                case 0: //继续游戏
                    status = RUNNING;
                    display.setCurrent(this);
                    repaint();
                    break;
                case 1: //储存进度
                    break;
                case 2: //返回主菜单
                    status = MAIN_MENU;
                    display.setCurrent(this);
                    repaint();
                    break;
                case 3: //退出游戏
                    status = BBMF_LOGO;
                    midlet.destroyApp(true);
                    midlet.notifyDestroyed();
                    break;
            }
            listsubmenu = null;
        }

    }
}

⌨️ 快捷键说明

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