范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

android游戏源码(Android实现汤姆猫小游戏)

  android游戏源码(Android实现汤姆猫小游戏)
  相信好多人都玩过汤姆猫这个小游戏,要做这个小游戏其实也不难,这不,现写一个,先看效果演示。
  tom.gif
  目前实现的主要功能点包括以下两部分:
  戳 tom 的各个身体部位它会做出相应反馈,包括动作和声音。
  往右滑动屏幕的时候另外一只黄色的小狗跳出来搞怪,并发出怪声。
  鉴于我不知道这只黄色的狗子叫啥名字,后面的内容里我就称呼它为小黄吧。
  思路分析
  我们先来分析一下这个小游戏的实现思路,首先是动作效果,不管是汤姆还是小黄所做的动作,其实就是一个逐帧动画,也就是将动画拆分为帧的形式,每一帧也就是一张图片,然后按序播放一组预先定义好的图片,就像播放一卷电影一样。声音效果就很简单了,在动作发生时播放音效即可。
  这篇文章就分两部分讲吧,一部分是用手指戳汤姆,另一部分是小黄出来搞怪。
  一、戳汤姆1. 确定点击位置
  我们点击汤姆时其实是点击了一些透明的按钮,透明效果只需要给控件alpha属性设置为0即可,如下图所示我们分别给汤姆的脚,肚子,尾巴和左右脸放置了按钮点击。
  layout.png2. 逐帧动画
  逐帧动画就是加载一系列可绘制资源来创建动画,需要在xml文件的 animation-list 元素中使用 item 子元素定义动画的全部帧,并指定各帧的持续时间即可。
  第一步
  在/res/drawable目录下,定义一个逐帧动画的xml资源文件,如下<?xmlversion="1.0"encoding="utf-8"?><animation-listxmlns:android="http://schemas.android.com/apk/res/android">  <item  android:drawable="@drawable/breath_0001"  android:duration="200"/>  <item  android:drawable="@drawable/breath_0002"  android:duration="200"/>  <item  android:drawable="@drawable/breath_0003"  android:duration="200"/>  <item  android:drawable="@drawable/breath_0004"  android:duration="200"/>  <item  android:drawable="@drawable/breath_0005"  android:duration="200"/>  <item  android:drawable="@drawable/breath_0006"  android:duration="200"/></animation-list>
  这里每一个item就是一帧,drawable设置动画图片资源,duration设置一帧持续的时间(ms)。
  第二步
  播放逐帧动画,如下layout_animation.setBackgroundResource(R.drawable.breath);  AnimationDrawableanim=(AnimationDrawable)layout_animation.getBackground();  anim.setOneShot(true);//是否播放一次if(anim.isRunning()){//如果动画已经播放过  anim.stop();//停止动画}//启动动画anim.start();
  这里很简单,直接使用AnimationDrawable类的start()方法即可启动逐帧动画,另外通过setOneShot()方法可以设置是否循环一次,为true将循环一次,然后停止并保持最后一帧。如果设置为false,则动画将一直循环。
  3. 播放声音
  Android中除了MediaPlayer播放音频之外,还提供了SoundPool来播放音效,SoundPool使用音效池的概念来管理多个短促的音效,适用于短且对反应速度比较高的情况(游戏音效或按键声等),所以我们选择SoundPool来给汤姆和小黄加音效。
  (1) 实例化SoundPoolSoundPoolpool=newSoundPool(3,AudioManager.STREAM_MUSIC,1);//同时播放最大数量类型音质
  可以看到SoundPool的构造函数中有三个参数,SoundPool(int maxStreams, int streamType, int srcQuality),各参数如下
  参数maxStreams:指定支持多少个声音,也就是同时播放最大数量。
  参数streamType:指定声音类型。
  参数srcQuality:指定声音品质。
  (2) 加载声音
  得到SoundPool对象之后,就可调用SoundPool的load()方法来加载声音。load()方法有四个重载,返回值都是该声音的ID,如下//1.通过资源ID加载声音。  intload(Contextcontext,intresld,intpriority)  //2.通过FileDescriptor加载offset开始、长度为length的声音。intload(FileDescriptorfd,longoffset,longlength,intpriority)  //3.通过一个AssetFileDescriptor对象所对应的文件中加载声音intload(AssetFileDescriptorafd,intpriority)  //4.通过指定的路径加载。intload(Stringpath,intpriority)
  我们把声音文件放在res下的raw文件中,所以使用第一个重载load()方法,第一个参数是上下文,第二个参数就是我们的音频资源ID,第三个参数是声音的优先级。如下代码所示:pool.load(this,R.raw.fart003_11025,1);
  (3) 播放声音
  SoundPool提供了play()方法播放指定声音,有六个参数,如下:intplay(intsoundID,floatleftVolume,floatrightVolume,intpriority,intloop,floatrate);
  参数soundID:指定播放哪个声音,也就是上面load()方法返回的声音ID。
  参数leftVolume、rightVolume:指定左、右声道的音量。
  参数priority:指定播放声音的优先级,数值越大,优先级越高。
  参数loop:指定是否循环,0:不循环,-1:循环,其他值表示要重复播放的次数。
  参数rate:指定播放的比率,数值可从0.5到2, 1为正常比率。
  当需要播放声音时,则调用play()方法即可,如下代码所示:pool.play(soundId,1,1,1,0,1);//声音id,左声道,右声道,优先级,循环,速率
  二、小黄搞怪
  这里我们设定了右滑屏幕小黄跑出来搞怪,其原理和戳汤姆是一样的,同样是播放逐帧动画和播放声音,只是我们触发这个事件的方式不同,当然你也可以写成戳他眼睛鼻子耳朵或者左滑下滑上滑让小黄出来搞怪,这里我就只介绍一下监听手势滑动的方法。
  监听手势滑动可以利用Activity的ontouchEvent()方法或手势滑动监听器OnGestureListener等,咱们的重点在于讲解这个游戏的实现原理,这里我就只介绍第一种监听了。
  首先手指滑动的时候会先按下,滑到另一个地方再抬起,我们就可以根据按下的坐标和抬起的坐标算出是往哪一个方向滑动了,如下代码所示。@OverridepublicbooleanonTouchEvent(MotionEventevent){if(event.getAction()==MotionEvent.ACTION_DOWN){//当手指按下的时候  x1=event.getX();  y1=event.getY();  }if(event.getAction()==MotionEvent.ACTION_UP){//当手指离开的时候  x2=event.getX();  y2=event.getY();if(x1-x2>50){//向左滑    }elseif(x2-x1>50){//向右滑  //小黄开始出来搞怪  }  }returnsuper.onTouchEvent(event);  }

关于双眼皮手术(想要做双眼皮手术有哪些方法?)关于双眼皮手术(想要做双眼皮手术有哪些方法?)双眼皮从视觉上增大了眼的轮廓,增添了眼的立体感,使眼睛显的较大,并使睫毛上翘,给人以生动,传神之感。而单眼皮眼皮较厚,睫毛下垂,显的眼开个眼角(开内眼角的方法有哪些?)开个眼角(开内眼角的方法有哪些?)求美者们想开内眼角,无疑是想通过去除内眦赘皮延长眼裂水平长度,来得到放大双眼的效果。可是关于开内眼角的方法,大多数求美者们都不是特别清楚,只能完全联想家悦h1508(联想家悦系列主板通病)联想家悦h1508(联想家悦系列主板通病)联想主板家悦s515H515H425H515S主板新圆梦H515E12500主板通病。客户机器送来时,现象是通电开机无显示,清洁内存条和换西班牙红酒品牌(2020年最佳西班牙葡萄酒TOP10!)西班牙红酒品牌(2020年最佳西班牙葡萄酒TOP10!)世界知名的葡萄酒搜索网WineSearcher(以下简称WS)经常会统计各类榜单,最常见的有最贵最受欢迎以及最佳榜单。其中,烫伤用什么药(烧烫伤后该用什么药?)烫伤用什么药(烧烫伤后该用什么药?)较浅的伤口,可以什么药物都不用,都能愈合。越深的伤口,越需要使用正确的专业药物,因为容易感染。更专业的治疗方法是在伤口愈合的不同时期,使用不同的湿润烫伤膏!(烧烫伤后该用什么药?)湿润烫伤膏!(烧烫伤后该用什么药?)较浅的伤口,可以什么药物都不用,都能愈合。越深的伤口,越需要使用正确的专业药物,因为容易感染。更专业的治疗方法是在伤口愈合的不同时期,使用不同的问世间情是何物(问世间情为何物,直教人生死相许)问世间情是何物(问世间情为何物,直教人生死相许)夜来滋味万千,处处被鲜血浸染,万千滋味涌上心头,泪潸然好想分一些思念与你,让你的世界有烟花一缕,只是这根针早已深深刺入心底,已经没有印度制造疫苗将问世(这四款国际新冠疫苗即将问世)印度制造疫苗将问世(这四款国际新冠疫苗即将问世)几年前,谁能够想到Moderna(MRNA。US)BioNTech(BNTX。US)等公司会变得如此广为人知?现在,它们凭借新冠疫苗控制台应用程序(NET控制台应用程序全过程并编写第一段代码)控制台应用程序(NET控制台应用程序全过程并编写第一段代码)1。创建第一个应用程序这里我们以项目实战为主,讲解C的核心功能,不以难以理解的概念为讲解点,而是让学习者在动手操作的过程ui设计怎么样(ui设计是什么行业)UI是指用户界面,用户与之交互的应用程序网站或设备的图形部分。UI设计使这些布局和交互元素直观可访问和包容。UI培训可以让你快速提升UI设计能力,增强职场竞争力。当你在手机上访问一五一自学网(想提升自己,自学网站哪个好?)五一自学网(想提升自己,自学网站哪个好?)不少人看了我上一个内容,关于学习网站的就迫不及待的把它收藏了,但是我想估计很多人都是收藏,但是从来不看这些,只收藏不看,收藏了很多实践从未
香飘飘上半年才赚2万块(每年绕地球好几圈的香飘飘)香飘飘上半年才赚2万块(每年绕地球好几圈的香飘飘)现在已然衰朽者,将来可能重放异彩。现在备受青睐者,将来却可能黯然失色。贺拉斯诗艺文巴九灵(微信公众号吴晓波频道)在人们印象中,消费环境变化(2。5亿年前,地球环境巨变)环境变化(2。5亿年前,地球环境巨变)在地球生命演化的漫长时间里,每隔一段时间,地球生命就会迎来一场大灭绝,一大部分的生命会随之被大自然淘汰,存下来的也会因为气候环境生态环境的巨变韩国大宇(韩国大宇造船遭黑客攻击!)韩国大宇(韩国大宇造船遭黑客攻击!韩国防卫事业厅6月21日表示,已确认此前有黑客对大宇造船进行了网络攻击,相关机构正在进行调查。韩国防卫事业厅发言人徐容元当天在韩国国防部例行记者会死亡之岛电影(独守死亡之岛50年)死亡之岛电影(独守死亡之岛50年)在加拿大新斯科舍省,有一个与世隔绝的岛屿,名叫SableIsland。小岛一年之中有127天笼罩在浓雾之中,曾造成超过500艘船只失事。很少有人知死侍为什么要杀光漫威(死侍出现在复仇者联盟)前言大家对于漫威中的死侍应该再熟悉不过了吧,嘻嘻哈哈的形象人们经常性戏称他为小贱贱。作为漫威人气角色之一的死侍受到了无数粉丝们的喜爱,Bug般的实力特别的外表和神奇的脑回路,经常让舞动奇迹第三季第一场(舞动奇迹升级舞蹈风暴!)舞动奇迹第三季第一场(舞动奇迹升级舞蹈风暴!)话说你们最近都在追什么综艺哇?羊在假期时看到芒果台又出了一档新节目舞蹈风暴,emmm千万不要被这个有点俗气的名字吓到,节目其实还是不错因为一个人放弃一座城(为了一个人,伤了一座城)因为一个人放弃一座城(为了一个人,伤了一座城)二十年前我看到的,永远是生活至纯至美的样子张开双臂,拥抱着那些美好向着未来的方向大步流星抽烟喝酒卡拉OK熬夜有着一切青春该有的面貌也誓星球大战观看顺序(星球大战系列正确观看顺序你知道吗?)星球大战观看顺序(星球大战系列正确观看顺序你知道吗?)星球大战系列的最新电影星球大战9天行者崛起马上要上映咯!有小伙伴表示,从1977年第一部星战,至今12部系列电影,想要从头补星华东五校(华东五校独一档,人大重返前三)华东五校(华东五校独一档,人大重返前三)985工程大学重新洗牌,人大重返前三,武大第九,哈工大无缘前十高考录取已经进入收尾阶段,提前批次的高考生们也陆续收到了自己梦寐以求的录取通知左传简介(今天,我们为何读左传?)左传简介(今天,我们为何读左传?)今日痛饮庆功酒,壮志未酬誓不休。来日方长显身手,甘洒热血写春秋。这是现代京剧智取威虎山中著名的唱段。杨子荣来到土匪窝,获得座山雕的信任,荣升老九,迷失太空2013(几个星际主题的电影!)迷失太空2013(几个星际主题的电影!)星际迷航系列星际迷航1无限太空1979年星际迷航2可汗之怒1982年星际迷航3石破天惊1984年星际迷航4抢救未来1986年星际迷航5终极先