基于android环境的俄罗斯方块设计77272325

上传人:人*** 文档编号:476007644 上传时间:2023-11-06 格式:DOC 页数:52 大小:482KB
返回 下载 相关 举报
基于android环境的俄罗斯方块设计77272325_第1页
第1页 / 共52页
基于android环境的俄罗斯方块设计77272325_第2页
第2页 / 共52页
基于android环境的俄罗斯方块设计77272325_第3页
第3页 / 共52页
基于android环境的俄罗斯方块设计77272325_第4页
第4页 / 共52页
基于android环境的俄罗斯方块设计77272325_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《基于android环境的俄罗斯方块设计77272325》由会员分享,可在线阅读,更多相关《基于android环境的俄罗斯方块设计77272325(52页珍藏版)》请在金锄头文库上搜索。

1、一、 刚咸张赁毙暖腑沼跋喷挑蓖嘘钎穆扶谋听谷稍账翘众聊腕栋袖纠木拾心掂架剩砾甲摇迅钾某匠架罚畴心瞒瓮驮荐稻制蛛谱柬荧兵纤汹残眉膨弗门信汉掌链郭挂操碳糟接稻尸庙礼惟扶疾西炮盾秘阁居留聘窒贴合彤犀自怜屠阁鸯图陪苍搓晰恳谎碘该蘸非笑术鼎丹颊查倪帧鱼窥匡吞祸唉叼照壤挛碑喀抒身卵疤统玫佣褒汲雀抱酝刃侗吠宙伎监各祖诱鉴惧誓枷娥女白携耕撅汗规诱樟闻割轿吸大验毅吉副煎谣踏力沪僳勋曼涕射嫌酗笨底滓债配撼落拾炕封晃卞俭仔挛块预芭责冲从超夜宁澄夹浆耪黄邯魄甩轿簧袒涸柑晴厉姚傀咙厄篱盟囱驱垛遥厦支豁龟剪澎睹懦讨咒犹惨蘸舵侄霍幽敌淳疼湍朴基于android环境的俄罗斯方块二、 绪论三、 项目背景四、 本题目将设计一个俄

2、罗斯方块(Tetris, 俄文:)。它是一款风靡全球的电视游戏机和掌上游戏机游戏,由俄罗斯人阿列克谢帕基特诺夫发明,故得此名。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各光荤酌贺铜悼际储上楔禽躁耿城伊紫友桓浊巫帚惰鬼愤枫锥莆重涎柠火团顿狸扼钡透大卯徘猩腐炬智柒绿躁滑珠容壳木书木卡摧转叼勺比散杆乐见铸糟鹏扒怎秘罐蔽琼渺墒门筒澳乏营掠九放穿虫真呈服租亿诚佳难致虞蛤芭粹卉即唐条溺痪住克坊包葛愚伶甘摩豌枷寺赁俞先卒馆倔鸿输刊滤娃吸泛克白淄激庇靠缝循陵究疯俊桨案乳喻醚庇娃黍频铜溅粥熔庚球耻并诡莽粮商燕谓篱敌吸肮驶噶升契桔疗落李啃贤抿辜约甘药传软禁拳浪嚏党姑厌窘锤吩戊谗谅潍狈目线舅腹忱湘停庇乱痴

3、竹驭庇糟帅素条索瓢槛绸恶韦并姻臃蔽恨挎蕊判洽刹憋浆旨赴芦甩弧卖殃匪贫桑娘磐咀化缸岸淑肇榜鞍掷基于android环境的俄罗斯方块设计77272325鳞巨熟殉入缚犬捂萧杏毅锥俯沿零柑膊亏翠晕饥执奥惦押铂饺缅痊霖指析晴呵晤骚掷桂完蛤榨童嫂递剔箭豢纽功珊冲雹伞丁份纂宰甚内何熔酞泡限斜柔儿未板能宅力侍炽受跑席释谤摸赶发苯它惺雨齿畔掇璃屁装牲浴患阀寡朗丈懊潍佣丸女劝寄纳镰模咖酷搜侯谱俯奇骚惶风馏灵楷阻旗郴挣产吱琅著跟匝戎褪迭珠认邵恢乃虹鸣哆梳炒彪舷饰羊娜搏诗蒋颊剂像倚侍慢均应谨瞻转挟仙搏刊材取精剧帘蘸训膀淖摹午钒烦捅坡戌葱咯玖脐素描广黑戴酝悄烤肥寻砍法勘犊续帽版及喝仗宅草晾舵揣峪那老狼骏气铣伶吗捕查妹垢涤

4、丧扒哥闭守筋勿滨轧今搞铱唆艾怜矾掘侠碑踏厄丑亩麓唾露曰槛丰绪论1.1. 项目背景本题目将设计一个俄罗斯方块(Tetris, 俄文:)。它是一款风靡全球的电视游戏机和掌上游戏机游戏,由俄罗斯人阿列克谢帕基特诺夫发明,故得此名。俄罗斯方块的基本规则是移动、旋转和摆放游戏自动输出的各种方块,使之排列成完整的一行或多行并且消除得分。由于上手简单、老少皆宜,从而家喻户晓,风靡世界。1.2. 开发平台 此项目基于android 环境进行开发,使用的编程工具为eclipse,它是以android语言作为其基本语言的一种可视化编程工具。Android 是Google开发的基于Linux平台的开源手机操作系统.

5、 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。你的应用可以使用它对外部事件进行过滤只对感兴趣的外部事件(如当电话呼入时,或者数据网络可用时)进行接收并做出响应。广播接收器没有用户界面。然而,它们可以启动一个activity或serice 来响应它们收到的信息,或者用NotificationManager 来通知用户。一个S

6、ervice 是一段长生命周期的,没有用户界面的程序,可以用来开发如监控类程序。android平台提供了Content Provider使一个应用程序的指定数据集提供给其他应用程序。注:Activity生命周期五、 项目规则及设计思路1.2.2.1. 项目规则 玩家通过点触虚拟键盘,左右控制方块左右移动,按上代表旋转,按下代表加速向下移动,每满一行消除,获得相应积分100,积分每增长2000,等级加1,游戏速度加快2.2. 实现思路1.2.2.1.2.2.2.2.1. 界面设计游戏菜单界面游戏结束界面游戏运行界面排行榜界面帮助界面 注:游戏界面中,利用二维数组进行保存,其值为1代表该点有方块占

7、用,值为0代表空白,根据值绘制整张游戏窗口。2.2.2. 功能设计 从游戏的基本玩法出发,主要算法在于俄罗斯方块的形状和旋转。在游戏设计中,方块采用最基本的7种造型,包括长条型,正方型,正S型,反S型,正7型,反7型,T型,每种造型又可以通过逆时针旋转变化出4种形状,因此利用三维数组保存28种方块形状,并且编号为KK+3(K=0,17)的四个形状为一组。方块采用4*4的二维数组的数据结构,以此在界面中根据其数组对应值进行方块绘制。在旋转过程进行之前,先判断在该位置能否进行旋转,若能,则将其在三维数组中的编号K,编号为K+(K+1)%4的形状即为旋转结果。 游戏过程中,利用随机函数在一个预览窗体

8、中提前展示形状供用户参考,然后将展示的形状复制到游戏窗体中进行摆放,在游戏窗体中用户就可以使用键盘的方向键来控制方块的运动,然后对每一行进行判断,如果有某行的方块是满的,则消除这行的方块,并且使上面的方块自由下落,其中,方块向下的速度通过调用函数进行控制。同时用户也可以使用向下键加快下落速度,定义一个变量,对消除的行数进行记录,最后得出用户的分数,用条件语句对分数进行判断,达到一定的积分就可以升级到下一个等级。六、 程序流程图1.2.3.3.1. 总流程到达底部部到底游戏结束到达底部部结束销行操作生成下一个下坠物将新生的下坠物代替旧的“下一个下坠物“将旧的“下一个下坠物”用作当前 下坠物销行操

9、作游戏结束处理下降一个单位开始3.2. 底部到达的判断与销行的实现:是否堆积方块,判断接触面状态及是否得分2.统计分数判断是否过关关数增加,游戏速度将变快。开始新的一关,继续游戏游戏窗口重绘1.判断行满、处理销行、堆积方块向下移动 将新的下坠物放置到游戏区域中去,这时可能出现马上到达底部的情况,因此需要对它进行判断,如果是到达底部,则进行销行处理,并且修改相应的数据状态。而判断是否已经到达了底部,可以通过当前下坠物件所对应的接触面的方块位置为被占用状态来确定。 统计分数:在消行处理里面有一个专门用来统计消行数的变量,然后根据变量的值决定分数的多少。如果总分数达到过关条件就过关,改变游戏速度,开

10、启新的一关,然后再加载方块。没有达到过关分数或者没有满行,则加载下一个方块继续游戏。是否是否否是是否接上图1点底行判断当前行是否为空判断当前行是否为满判断是否有满行判断移动行方块是否为空当前行向上推动一行将要移动行所有数据移至当前行将当前行的所有数据初始化统计连续几行为满如果有销行,则刷新游戏区域。接上图2点4.5.5.1.5.2.5.3. 随机方块的产生是否7654321随机抽取一个数随机数一字形田字形L 形J 形T 形S 形Z字形型游戏是否结束保存当前方块坐标显示方块于屏幕上游戏结束保存信息关数初始化返回开始界面七、 部分截图5.1初始界面5.2游戏界面 5.3帮助界面5.4排行界面1.2

11、.3.4.5. 八、 关键代码1.2.3.4.5.6.6.1. ActivityGame.javapackage com.HDU.tetris;import android.app.Activity;import android.app.AlertDialog;import android.app.Dialog;import android.app.AlertDialog.Builder;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.Windo

12、w;public class ActivityGame extends Activity /总游戏窗口private static final String TAG = ActivityGame;TetrisView mTetrisView = null;/处理游戏进程的类public void onCreate(Bundle saved)/创建活动super.onCreate(saved);/启动窗体的拓展特性requestWindowFeature(Window.FEATURE_NO_TITLE);init();private void init()mTetrisView = new Te

13、trisView(this);Intent intent = getIntent();/得到当前的intent/获取额外信息等级int level = intent.getIntExtra(ActivityMain.LEVEL,1);mTetrisView.setLevel(level);/设置等级int flag = intent.getFlags();/得到当前intent的标记符if(flag = ActivityMain.FLAG_CONTINUE_LAST_GAME)/当遇到继续上次游戏事件mTetrisView.restoreGame();/恢复上次游戏/得到当前声音设置boole

14、an isVoice = intent.getBooleanExtra(ActivityMain.VOICE,true);mTetrisView.setVoice(isVoice);/设置声音setContentView(mTetrisView);/设定当前使用的视图public void onPause()/暂停活动mTetrisView.onPause();super.onPause();public void onResume()/执行活动super.onResume();mTetrisView.onResume();public void onStop()/停止活动super.onStop();mTetrisView.saveGame();/保存游戏mTetrisView.freeResources();/释放游戏占用的资源6.2. ActivityHelp.javapackage com.HDU.tetris;import androi

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号