Android安卓手机游戏连连看设计(8)
时间:2017-02-27 22:04 来源:毕业论文 作者:毕业论文 点击:次
所有道具都是立即作用的,并且每作用一次,该种道具都有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) |