教育房产时事环球科技商业
商业财经
热点动态
科技数码
软件应用
国际环球
晨报科学
新闻时事
信息智能
汽车房产
办公手机
教育体育
生活生物

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);  }

阿里陈亮(蚂蚁金服陈亮回怼阿里离职女高管被打脸)阿里陈亮(蚂蚁金服陈亮回怼阿里离职女高管被打脸)最近一篇文章在朋友圈刷屏,不过那个从阿里离职的漂亮女高管,从来不过情人节的文章却遭到了阿里人的打假。2月16日,上述文章的作者王晗发秀恩爱死得快(盘点秀恩爱就打脸的男明星)秀恩爱死得快(盘点秀恩爱就打脸的男明星)导读盘点秀恩爱就打脸的男明星,于晓光陈思诚塌房引众怒?N年前明星谈个恋爱,结个婚得瞒得严严实实,一旦曝光那就是重磅炸弹,人气资源下跌是必然,工程管理简历(工程主管完整简历范文)工程管理简历(工程主管完整简历范文)基本信息姓名七分简历年龄28岁电话1314588邮箱614628qq。com经验6年意向工程主管教育背景时间201402201605学校七分简历注册监理工程师查询(注册监理工程师注册常见问题解答)注册监理工程师查询(注册监理工程师注册常见问题解答)hello大家好!小赛来冒个泡想必很多小伙伴都知道,取得中华人民共和国监理工程师执业资格证书的申请人,应自证书签发之日起3年内提华图公务员面试培训(潜入河南公务员面试培训班的一天)华图公务员面试培训(潜入河南公务员面试培训班的一天)2021年河南公务员成绩在4月30日公布后,各大公务员培训机构都陆续开班。但是在河南省考发布成绩前,一个业内人称面试之王的老师彭公务员考试常识(公务员考试九个必知注意事项)公务员考试常识(公务员考试九个必知注意事项)第一个注意事项是否注意报考说明报考公务员考试之前必须要看清报考的各项说明,一定要注意在报考简章中提供的对所需岗位要求的相对应的专业学历外四川省地方税务局(国家税务总局四川省税务局正式挂牌)四川省地方税务局(国家税务总局四川省税务局正式挂牌)今天上午,国家税务总局四川省税务局正式挂牌,标志着原四川省国家税务局四川省地方税务局正式合并。深化国税地税征管体制改革,是以习近我全部的爱(满眼是你,才是我全部的爱)我全部的爱(满眼是你,才是我全部的爱)我喜欢十七岁那年校服与蝉鸣的夏天,草稿纸上不仅有密密麻麻的公式还有非凡的名字。我喜欢十八岁那年为梦奋斗的年华,一张张试卷上留下了努力后的汗水和藿香正气散(藿香正气散三大功效)藿香正气散(藿香正气散三大功效)湿为万病之源。但凡生病之人,舌头总不如健康时干爽,要么白腻,要么黄腻,甚至齿痕,带水。故中医有如果舌苔黄腻,或者舌苔白腻干燥的,考虑是湿热。如果是舌亚麻产地(亚麻籽油生产工艺大比较)亚麻产地(亚麻籽油生产工艺大比较)压榨法是靠物理压力将油脂直接从油料中分离出来,全过程无任何化学添加剂,保证产品安全卫生无污染,天然营养不受破坏。压榨法又包括冷榨法和热榨法。纯物理分歧的意思是什么?(你如何看待分歧?)分歧的意思是什么?(你如何看待分歧?)冷战的爆发,都是有导火线。只要有分歧没有解决,都会随着时间,被沉淀下来,只等待那根导火索的出现而爆炸。在矛盾沉淀的过程中,如果分歧被解决,那这
封测什么意思(在封测股上还没吃到肉的)封测什么意思(在封测股上还没吃到肉的)昨天大盘走的好像犯了周一综合征,晃荡了一天收红。这种情况最简单的法子就是看两点开盘和收盘半个小时,分别在干嘛?开盘市场放量较大,上周五冲进来的硅怎么读(半导体中的silicon为何翻译成硅而非矽?)硅怎么读(半导体中的silicon为何翻译成硅而非矽?)提到半导体,大家都知道各种处理器闪存内存等芯片都是基于半导体技术的,而我们现在常用的半导体实质上是硅基半导体,硅是这个行业最有趣名字(那些有趣的植物名字)有趣名字(那些有趣的植物名字)植物,就在我们身边,与我们的生活息息相关。我们国家是世界上植物资源最为丰富的国家之一,约有30000多种植物,仅次于世界植物最丰富的马来西亚和巴西,居初二物理题(八年级物理力学实验题汇总)初二物理题(八年级物理力学实验题汇总)八年级的物理主要是力学知识,力学可以说是初中物理最难的部分。很多学生初二下学期物理掉队的原因也就是学不好力学。如果是有耐心的家长会发现,力学最空气污染治理(空气污染对于人体的危害)空气污染治理(空气污染对于人体的危害)空气污染对于人体的危害治理空气污染的方法在历史的进程中,为了加速经济的发展,人们经常会为此牺牲大自然,例如排出废水废气填满垃圾等等。对环境的无郑州南三环(郑州三环周边新楼盘介绍)郑州南三环(郑州三环周边新楼盘介绍)一楼盘名称郑州雅颂居楼盘地址花园路与金水路交叉口往北项目特色品牌地产国际化社区地铁沿线交通地铁12号线紫荆山换乘站幼儿园省实验幼儿园省直机关第一上海银七星室内滑雪场(你期待的银七星滑雪场可能不会再有了!)上海银七星室内滑雪场(你期待的银七星滑雪场可能不会再有了!)这个周末,周到君注意到中共中央办公厅国务院办公厅印发了关于以2022年北京冬奥会为契机大力发展冰雪运动的意见,除了备战3室内滑雪场设计(京城别墅内首现滑雪场)室内滑雪场设计(京城别墅内首现滑雪场)王濛作为家喻户晓的中国短道速滑女王,曾夺得四枚冬奥会金牌,将中国推向冬奥强国,向世界演绎中国速度。在冬奥赛场上,王濛万中取一的严苛和舍我其谁的哈尔滨ufo(哈尔滨上空目击不明飞行物坠落!)哈尔滨ufo(哈尔滨上空目击不明飞行物坠落!)!10月11日凌晨015左右哈尔滨上空发现不明飞行物坠落这是行车记录仪记录的视频,在哈尔滨市香坊区和道里区群力地区均可以看见这道亮光。炳若观火(培养孩子好习惯)炳若观火(培养孩子好习惯)百道编按良好的习惯是孩子终生的宝贵财富。众所周知好习惯要从娃娃抓起,但是不少父母却不知从何下手,单一呆板的管教方式不仅事倍功半,还容易对孩子幼小的心灵造成李碧华图片(玉女歌手李碧华近照罕曝光)李碧华图片(玉女歌手李碧华近照罕曝光)近日,有网友在社交平台上晒出了昔日的玉女歌手李碧华的近照,她与金佩珊在私下相聚,并且合照的时候看起来很开心。不过她身穿黑色上衣,打扮得十分低调