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

📄 gamecanvas.java

📁 用J2ME写的手机游戏。“北京浮生记”是您工作学习之余消遣休闲理想的小游戏
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
        threadMan.start();
        break;
    }

    repaint();

  }

//   postofficeControl()     邮局界面控制方法
  protected void postofficeControl(int keyCode) {
    int action = this.getGameAction(keyCode);
    switch (action) {
      case Canvas.GAME_B: //9键退出系统画面,回到游戏界面
        Base.menuList = 0;
        threadMan = new Thread(this);
        Base.threadRunnable = true;
        threadMan.start();
        repaint();
        break;
      case Canvas.FIRE: //控制没有债务情况下的警告画面的退出
        if (Base.lDebt == 0) {
          Base.menuList = 0;
        }
        threadMan = new Thread(this);
        Base.threadRunnable = true;
        threadMan.start();
        repaint();
        break;
    }
    if (keyCode == -6) {
      display.setCurrent(new Ad_postMoney(display));
    }
    if (keyCode == -7) {
      Base.menuList = 0;
      Base.threadRunnable = true;
      threadMan = new Thread(this);
      threadMan.start();
      repaint();
    }
  }

//   hospitalControl()       医院界面控制方法
  protected void hospitalControl(int keyCode) {
    int action = this.getGameAction(keyCode);
    switch (action) {
      case Canvas.GAME_B: //9键退出医院画面,回到游戏界面
        Base.menuList = 0;
        Base.threadRunnable = true;
        threadMan = new Thread(this);
        threadMan.start();
        repaint();
        break;
      case Canvas.FIRE: //控制警告画面的退出
        if (Base.hospitalStatus == 1 || Base.hospitalStatus == 2) {
          Base.menuList = 0;
          Base.threadRunnable = true;
          threadMan = new Thread(this);
          threadMan.start();
          Base.hospitalStatus = 0;
          repaint();
        }
    }
    if (keyCode == -6) {
      display.setCurrent(new Ad_cure(display)); ;
    }
    if (keyCode == -7) {
      Base.menuList = 0;

      Base.threadRunnable = true;
      threadMan = new Thread(this);
      threadMan.start();
      repaint();
    }
  }

//   storehouseControl()     库房界面控制方法
  protected void storehouseControl(int keyCode) {
    int action = this.getGameAction(keyCode);
    switch (action) {
      case Canvas.GAME_B: //9键退出当前画面,回到游戏界面
        Base.menuList = 0;
        threadMan = new Thread(this);
        Base.threadRunnable = true;
        threadMan.start();
        repaint();
        break;
      case Canvas.DOWN:
        if (Base.roomPage == 0) {
          Base.roomPage = 1;
        }
        else {
          Base.roomPage = 0;
        }
        break;
      case Canvas.UP:
        if (Base.roomPage == 0) {
          Base.roomPage = 1;
        }
        else {
          Base.roomPage = 0;
        }
        break;
      case Canvas.FIRE:
        if (Base.roomPage == 0) {
          Base.roomPage = 1;
        }
        else {
          Base.roomPage = 0;
        }
        break;
      default:
    }
  }

//   intermediaryControl()   中介界面控制方法
  protected void intermediaryControl(int keyCode) {
    int action = this.getGameAction(keyCode);
    switch (action) {
      case Canvas.GAME_B: //9键退出系统画面,回到游戏界面
        Base.menuList = 0;
        threadMan = new Thread(this);
        Base.threadRunnable = true;
        threadMan.start();
        repaint();
        break;
      case Canvas.FIRE:
        if (Base.interStatus == 1 || Base.interStatus == 2) {
          Base.menuList = 0;
        }
        Base.threadRunnable = true;
        threadMan = new Thread(this);
        threadMan.start();
        Base.interStatus = 0;
        repaint();

    }
    if (keyCode == -6) {
      display.setCurrent(new Ad_inter(display)); ;
    }
    if (keyCode == -7) {
      Base.menuList = 0;
    }
    Base.threadRunnable = true;
    threadMan = new Thread(this);
    threadMan.start();
    repaint();
  }

//   systemControl()         系统界面控制方法
  protected void systemControl(int keyCode) {
    int action = this.getGameAction(keyCode);
    switch (action) {
      case Canvas.UP:
        if (Base.sysDy > 0) {
          Base.sysDy--;
        }
        else {
          Base.sysDy = 2;
        }
        repaint();
        break;

      case Canvas.DOWN:
        if (Base.sysDy < 2) {
          Base.sysDy++;
        }
        else {
          Base.sysDy = 0;
        }
        repaint();
        break;

      case Canvas.GAME_B: //9键退出系统画面,回到游戏界面
        Base.menuList = 0;
        repaint();
        break;
      case Canvas.FIRE:
        if (Base.sysDy == 0) {

	    Base.menuList=0;
	    Base.sysDy=0;
	    new RecStore().saveGame();
	    display.setCurrent(new GameCanvas(display));
          ;
        }
        if (Base.sysDy == 1) {
          set();
          display.setCurrent(new MenuListCanvas(display));
        }
        if (Base.sysDy == 2) {
          Base.menuList = 0;
        }
        repaint();

    }
  }

  public void loadImage(int goodsItem) {
    try {
      Base.image006 = Image.createImage("/res/pic006.png");
      Base.image007 = Image.createImage("/res/pic007.png");
      switch (goodsItem) {
        case 0:
          Base.image012 = Image.createImage("/res/pic012.png");
          break;
        case 1:
          Base.image013 = Image.createImage("/res/pic013.png");
          break;
        case 2:
          Base.image014 = Image.createImage("/res/pic014.png");
          break;
        case 3:
          Base.image015 = Image.createImage("/res/pic015.png");
          break;
        case 4:
          Base.image016 = Image.createImage("/res/pic016.png");
          break;
        case 5:
          Base.image017 = Image.createImage("/res/pic017.png");
          break;
        case 6:
          Base.image018 = Image.createImage("/res/pic018.png");
          break;
        case 7:
          Base.image019 = Image.createImage("/res/pic019.png");
          break;

      }

    }
    catch (Exception e) {}
  }

  /*将所有的属性恢复到初始状态*/
  static public void set() {
    /*各标号及偏移量*/
    Base.threadRunnable = true; //线程能否运行的标志
    Base.index = 0;
    Base.dx = 0;
    Base.dy = 0; //游戏界面偏移量
    Base.metro_dx = 0;
    Base.metro_dy = 0; //地铁界面偏移量
    Base.game = true;
    Base.sysDy = 0;
    Base.menuList = 0; //game界面菜单的编号
    Base.goodsItem = 0; //商品的编号
    Base.roomPage = 0; //仓库的页面数
    Base.bankStatus = 0; //银行的界面编号

    /*属性变量的设置*/
    // 日期(游戏时间,上限40天)
    Base.nDate = 0;
    //健康点数-30到100点少于-20点就回家养伤,告别北京
    Base.nHealth = 99;
    //现金数
    Base.lCash = 6000;
    //存款
    Base.lSave = 0;
    //债务
    Base.lDebt = 2500;
    //拥有的货物数量,及拥有的库房大小
    Base.lRoom = 100;

    /*持有商品的属性*/
    Base.vcd_price = 0; //持有商品VCD的平均价格
    Base.vcd_number = 0; //持有商品VCD的数量

    Base.phone_price = 0;
    Base.phone_number = 0;

    Base.sk_price = 0;
    Base.sk_number = 0;

    Base.cigar_price = 0;
    Base.cigar_number = 0;

    Base.wine_price = 0;
    Base.wine_number = 0;

    Base.toy_price = 0;
    Base.toy_number = 0;

    Base.book_price = 0;
    Base.book_number = 0;

    Base.car_price = 0;
    Base.car_number = 0;

    /*
     * 黑市商品的属性
     */
    Base.market_vcd_price = 0;
    Base.market_phone_price = 0;
    Base.market_sk_price = 0;
    Base.market_cigar_price = 0;
    Base.market_wine_price = 0;
    Base.market_toy_price = 0;
    Base.market_book_price = 0;
    Base.market_car_price = 0;
  }

  /*商品价格的随机变动*/
  static public void randomPrice() {
    Random rand = new Random();
    Base.market_vcd_price = Base.Average_vcd_price *
        (Math.abs(rand.nextInt()) % 6 + 2);
    Base.market_cigar_price = Base.Average_cigar_price *
        (Math.abs(rand.nextInt()) % 6 + 2);
    Base.market_phone_price = Base.Average_phone_price *
        (Math.abs(rand.nextInt()) % 6 + 2);
    Base.market_sk_price = Base.Average_sk_price *
        (Math.abs(rand.nextInt()) % 6 + 2);
    Base.market_wine_price = Base.Average_wine_price *
        (Math.abs(rand.nextInt()) % 6 + 2);
    Base.market_toy_price = Base.Average_toy_price *
        (Math.abs(rand.nextInt()) % 6 + 2);
    Base.market_book_price = Base.Average_book_price *
        (Math.abs(rand.nextInt()) % 6 + 2);
    Base.market_car_price = Base.Average_car_price *
        (Math.abs(rand.nextInt()) % 6 + 2);
  }

  /*用于实现存款的内部类*/
  public class Ad_bankSave
      extends Form
      implements CommandListener {
    Display display;
    Command commandOK;
    Command commandExit;
    TextField text;
    public Ad_bankSave(Display display) {
      super("");
      this.display = display;
      text = new TextField("请输入要存款的数目:", "", 50, TextField.NUMERIC);
      commandOK = new Command("确定", Command.OK, 1);
      commandExit = new Command("取消", Command.CANCEL, 1);
      this.addCommand(commandOK);
      this.addCommand(commandExit);
      this.append(text);
      this.setCommandListener(this);
    }

    public void commandAction(Command c, Displayable d) {
      String cmd = c.getLabel();
      long number; //用于接收输入的金额
      if (cmd.equals("确定")) {
        number = Integer.parseInt(text.getString());

        if (Base.lCash >= number) { //判断能否进行储蓄
          Base.lCash -= number;
          Base.lSave += number;
          Base.bankStatus = 1;
        }
        else {
          Base.bankStatus = 2;
        }
        display.setCurrent(new GameCanvas(display)); //回到低级界面
      }
      if (cmd.equals("取消")) {
        display.setCurrent(new GameCanvas(display));
      }
    }
  }

  /*用于实现取款的内部类*/
  public class Ad_bankWithdraw
      extends Form
      implements CommandListener {
    Display display;
    Command commandOK;
    Command commandExit;
    TextField text;
    public Ad_bankWithdraw(Display display) {
      super("");
      this.display = display;
      text = new TextField("请输入要取款的数目:", "", 50, TextField.NUMERIC);
      commandOK = new Command("确定", Command.OK, 1);
      commandExit = new Command("取消", Command.CANCEL, 1);
      this.addCommand(commandOK);
      this.addCommand(commandExit);
      this.append(text);
      this.setCommandListener(this);
    }

    public void commandAction(Command c, Displayable d) {
      String cmd = c.getLabel();
      long number; //用于接收输入的金额
      if (cmd.equals("确定")) {
        number = Integer.parseInt(text.getString());

        if (Base.lSave >= number) { //判断能否进行储蓄
          Base.lCash += number;
          Base.lSave -= number;
          Base.bankStatus = 3;
        }
        else {
          Base.bankStatus = 2;
        }
        display.setCurrent(new GameCanvas(display)); //回到低级界面
      }
      if (cmd.equals("取消")) {
        display.setCurrent(new GameCanvas(display));
      }

    }
  }

  /*用于实现汇款的内部类*/
  public class Ad_postMoney
      extends Form
      implements CommandListener {
    Display display;

⌨️ 快捷键说明

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