Android安卓手机游戏连连看设计(8)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

Android安卓手机游戏连连看设计(8)


所有道具都是立即作用的,并且每作用一次,该种道具都有3s的冻结时间,冻结期间,该种道具是不可用的。个人游戏时,道具可用数目是规定的,不能在游戏过程中获得道具及道具使用次数。蓝牙对战时,个人道具的控制不变,但对战道具都是在游戏过程中随机获得的,每获得一种道具,该种道具的可用数目就增加一个。
7     实现和测试
7.1    编程环境展示
首先贴出本课题使用的开发环境,如图7.1所示:
7.2    UI模块实现
UI总是任何系统的第一门户,因此设计出良好的UI会极大地增加系统的用户体验,是体现人性化设计的最直接表现。但由于课题时间关系,并没有在UI上下功夫,只是实现了满足功能需求的部分。
UI图如图7.2所示:
加载一张图片的代码如下:
Bitmap bitmap = Bitmap.createBitmap(iconSize, iconSize,
                                    Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
d.setBounds(0, 0, iconSize, iconSize);
d.draw(canvas);
icons[key]=bitmap;
7.3    地图生成模块实现
正如前文所述,地图生成模块是可以方便地进行难度和规模控制的,并且每三关一组,地图在规模上增加一行,每关之间图片各类数增加一个。现给出第四关的游戏地图,地图为九行,可以与图7.2作对比。第四关游戏地图如图7.3所示:
难度控制策略如下代码所示。
public void difficultyManage(int gameLevel) {
    int a[] = {0, 0, 0, 1, 1, 1, 2, 2, 2};    // 关卡分组辅助数组
    refresh = 3 - gameLevel / 6;        // 第1~5关道具可用数为3,其它关卡为2
    help   = refresh;                // 同上
    totalTime = 100 - a[gameLevel-1] * 10;    // 各关卡允许时间控制
    leftTime = totalTime;
    iconNeeded = 9 + gameLevel;        // 第一关加载卡片10张,每关依次加1
    yNeeded   = 8 + a[gameLevel-1];        // 地图规模控制。
}
关卡之间有人性化提示,主要信息包括输赢状态、所用时间以及三个按钮,从左到右依次为退出、重玩和下一关。如图7.4所示:
图7.4 游戏输赢状态图
7.4    蓝牙对战模块实现
进入蓝牙对战模式后,第一件事情就是要打开蓝牙进行配对。
游戏一开始就检测蓝牙是否打开。
public void onStart() {
    super.onStart();
    if (!mBluetoothAdapter.isEnabled()) {    // 检测蓝牙是否打开
  // 如果没有打开蓝牙,则要求打开
  Intent enableIntent = new Intent(
    BluetoothAdapter.ACTION_REQUEST_ENABLE);
  startActivityForResult(enableIntent, REQUEST_ENABLE_BT);
    } else {
  // 如果蓝牙已经打开,但没有启动蓝牙服务,则启动之
  if (mChatService == null) setupChat();
    }
}
之后开始进行蓝牙配对。
public synchronized void connect(BluetoothDevice device) {
    if (mState == STATE_CONNECTING) { // 停止一切尝试进行连接的线程
  if (mConnectThread != null) {
mConnectThread.cancel();
mConnectThread = null;
  }
    } (责任编辑:qin)