PlayMessageForm.java
上传用户:whhzxy
上传日期:2009-12-31
资源大小:269k
文件大小:3k
源码类别:

J2ME

开发平台:

Java

  1. import java.util.Timer;
  2. import javax.microedition.lcdui.*;
  3. /**
  4.   * 游戏信息窗口。
  5.   * @author SoftStar,嘟嘟熊
  6.   * @version 1.0
  7.   */
  8. public class PlayMessageForm
  9.     extends Form
  10.     implements CommandListener {
  11.   /**
  12.    * richman实例
  13.    */
  14.   KMRichMan richMan;
  15.   /**
  16.    * 定时器
  17.    */
  18.   private static Timer timer = null;
  19.   /**
  20.    * 卡片ID
  21.    */
  22.   private int cardIDs[];
  23.   /**
  24.    * 选择的卡片ID
  25.    */
  26.   private int selectedIDs;
  27.   /**
  28.    * 信息类型
  29.    */
  30.   int messageType;
  31.   /**
  32.    * 信息窗口选择状态
  33.    */
  34.   private static byte choiceStatus = 0; //0 -- 自动 ,1--手动,3--完毕
  35.   /**
  36.    * 构造一个对象
  37.    * @param kmrichman 不解释了
  38.    * @param title 标题
  39.    * @param message 信息
  40.    * @param type 信息类型
  41.    * @param isAutoSelect 是否信息窗口是自动选择的。
  42.    */
  43.   public PlayMessageForm(KMRichMan kmrichman, String title, String message,
  44.                          int type, boolean isAutoSelect) {
  45.     super(title);
  46.     cardIDs = null;
  47.     selectedIDs = 0;
  48.     richMan = kmrichman;
  49.     messageType = type;
  50.     append(message);
  51.     if (isAutoSelect) { //如果是自动选择
  52.       if (timer == null)
  53.         timer = new Timer();
  54.       timer.schedule(new Controlor(this), 2000L);
  55.       choiceStatus = 0;
  56.     }
  57.     else {
  58.       switch (type) {
  59.         case 0: // 是否购买土地,建造房屋,建造旅馆
  60.           addCommand(new Command("是", 8, 0));
  61.           addCommand(new Command("否", 8, 1));
  62.           break;
  63.         case 1: // 支付路费
  64.         case 2: // 新闻
  65.         case 3: // 机会
  66.         case 4: // 监狱
  67.         case 6: // 获得美金,卡片功效
  68.           addCommand(new Command("确认", 8, 0));
  69.           break;
  70.         case 5: // 卡片详情
  71.         case 7: // 没有卡片
  72.           addCommand(new Command("返回", 8, 0));
  73.           break;
  74.     }
  75.     choiceStatus = 1;
  76.     }
  77.     setCommandListener(this);
  78.   }
  79.   /**
  80.    * 初始化卡片
  81.    */
  82.   void intialCardIDs(int cardIDs[], int selectedID) {
  83.     this.cardIDs = cardIDs;
  84.     selectedIDs = selectedID;
  85.   }
  86.   /**
  87.  * 处理按键
  88.  */
  89.   public void commandAction(Command command, Displayable displayable) {
  90.     if (choiceStatus == 0)
  91.       return;
  92.     if (command.getLabel() == "是") {
  93.       choiceStatus = 3;
  94.       richMan.buyGroundorBuilding();
  95.     }
  96.     else
  97.     if (command.getLabel() == "否") {
  98.       choiceStatus = 3;
  99.       richMan.confirmMessage(); // 不买土地或加盖房子
  100.     }
  101.     else
  102.     if (command.getLabel() == "确认") {
  103.       choiceStatus = 3;
  104.       richMan.confirmMessage(); //支付路费 新闻 机会 监狱 获得美金(卡片功效)
  105.     }
  106.     else
  107.     if (command.getLabel() == "返回" && getTitle() == "卡片详情") {
  108.       choiceStatus = 3;
  109.       richMan.useCard_hunman(cardIDs, selectedIDs);
  110.     }
  111.     else
  112.     if (command.getLabel() == "返回") {
  113.       choiceStatus = 3;
  114.       richMan.setDisplayToPlayCanvas1();
  115.     }
  116.   }
  117.   /**
  118.  * 处理自动选择
  119.  */
  120.   void autoSelect() {
  121.     if (choiceStatus == 3)
  122.       return;
  123.     switch (messageType) {
  124.       case 0: // 选择
  125.         richMan.buyGroundorBuilding(); //好象不能执行到这里了。因为电脑不用出现这个对话框
  126.         break;
  127.       case 1: // 确认
  128.       case 4:
  129.       case 3:
  130.       case 6:
  131.         richMan.confirmMessage(); //支付路费 机会 监狱 获得美金(卡片功效)
  132.         break;
  133.       case 2: // 新闻
  134.         richMan.confirmNews();
  135.         break;
  136.     }
  137.   }
  138. }