77范文网 - 专业文章范例文档资料分享平台

基于Android平台的数独游戏(6)

来源:网络收集 时间:2019-04-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

湖南科技大学本科生毕业设计(论文)

图4.4 游戏主界面

其中isNewGame变量用于控制是否显示继续游戏按钮,因为当游戏第一次运行时,显示继续游戏按钮不符合逻辑,设置一个boolean量isNewGame用于控制主界面显示的XML,关键代码如下: if(isNewGame){ } else{ } 当开始新游戏时,置isNewGame变量为false,当游戏完成时,置isNewGame变量为true。

setContentView(R.layout.main); setContentView(R.layout.startmain); 4.4游戏关卡选择模块

(1)游戏难度选择

游戏关卡选择模块主要包括游戏难度等级选择,游戏关卡的选择等。游戏难度等级选择如图4.5所示,游戏关卡选择界面如图4.6所示。

-17-

湖南科技大学本科生毕业设计(论文)

图4.5游戏难度选择界面 图4.6游戏关卡选择界面

游戏难度选择通过实例化一个AlertDialog来实现,传入定义好的难度数组XML,监听选择的项,将索引值传递给关卡选择类LevelActivity.java。XML文件及关键代码如下:

@string/medium_label @string/hard_label

private void openNewGameDialog(Context context) { AlertDialog.Builder builder = new AlertDialog.Builder(context); builder.setItems(R.array.difficulty, -18-

湖南科技大学本科生毕业设计(论文)

new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialoginterface, int i) { ... //打开关卡选择界面 ... }); } builder.show(); 游戏关卡的实现,主要使用Gallery视图。

Gallery介绍:Gallery(俗称画廊视图)是一个锁定中心条目并且拥有水平滚动列表

(2)游戏关卡实现

的视图,一般用来浏览图片,并且可以响应事件显示信息。Gallery还可以和ImageSwitcher组件结合使用来实现一个通过缩略图来浏览图片的效果。

实现步骤:

1.系统定义的Gallery滑动速度很快,重新定义一个继承自Gallery的类CustomGallery,重写onFling()方法,将返回值改为false。

2.以重写过的类CustomGallery作为布局元素,定义布局文件level.xml,关键代码如下:

paramsbtnParamsbtnParamshLayoutbtnParamsbgLayoutGallery以每行三个BtnParams,每页五个params为单位布局

-19-

湖南科技大学本科生毕业设计(论文)

图4.7关卡选择界面布局层次结构图

4.定义完游戏关卡选择模块界面布局后,我们给这个界面定义一个onTouch()方法,监听两类动作完成关卡选择和关卡滑动的命令。图4.8为关卡选择时的效果,图4.9为关卡选择界面滑动时的效果。关键代码如下:

private OnTouchListener mTouch = new OnTouchListener(){ }}; float fX = 0; float fY = 0; public boolean onTouch(View view, MotionEvent event) { int iTag = (Integer)view.getTag(); if( event.getAction() == MotionEvent.ACTION_DOWN ){ //如果触摸动作是按下 view.setBackgroundResource(R.drawable.passing); //设置按下的图片 fX = event.getX(); //记录点击位置的坐标 fY = event.getY(); bClick = true; //是否点击布尔值设为true return true; if( Math.abs(fX-event.getX()) < 2*density } bClick = true; //如果触摸动作的坐标差小于两个单位,布尔值不变 } else bClick = false; return true; //否则判定为移动动作 }else if( event.getAction() == MotionEvent.ACTION_MOVE ){ //如果触摸动作是移动 || Math.abs(fY-event.getY()) < 2*density) { else if( event.getAction() == MotionEvent.ACTION_UP ){ view.setBackgroundResource(R.drawable.passed); if( bClick ){ ……. //如果判定为按下动作,则启动GameActivity,同时将关卡值传过去 }return true; }return false; -20-

湖南科技大学本科生毕业设计(论文)

图4.8 关卡选择时的效果图 图4.9 关卡选择界面滑动时的效果图

5.定义游戏关卡选择类LevelActivity.java,设定level.xml为布局文件,定义一个gallery,绑定GalleryAdapter监听器,获取Sudoku.java主界面传过来的关卡数TOTAL_LEVEL,关键代码如下: //获得当前难度等级的总关卡数量 TOTAL_LEVEL = getIntent().getIntExtra(KEY_TOTAL_LEVEL, 0); //定义LevelItem结构的线性表,这里抽象为Gallery显示的所有页面 ArrayList> pages = new ArrayList>(); boolean breakFlag = false;//是否超出关卡数的布尔变量 for( int i=0; i items = new ArrayList(); for( int j=0; j TOTAL_LEVEL){ breakFlag = true; break; //检测是否超出总关卡数 //定义一页LevelItem结构的线性表 -21-

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于Android平台的数独游戏(6)在线全文阅读。

基于Android平台的数独游戏(6).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/616180.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: