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

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

大猫眼石(贵州猫眼石解析)大猫眼石(贵州猫眼石解析)罗甸县石英猫眼石是于1994年春在罗甸县红水河岸羊里乡龙井村发现的。具有猫眼效应的石英。含有大量平行于C轴的针状包裹体或细管道的石英,磨成弧面型宝石可呈现舍生取义的事例(红色律师施洋舍生取义为劳工)舍生取义的事例(红色律师施洋舍生取义为劳工)我不怕人,不怕事,不怕死!堂堂做人,反对强暴。你们杀了一个施洋,还有千百万的施洋!这是共产党员著名劳工律师施洋临行前大义凛然的豪言壮语。生姜祛斑(生姜果然是祛斑高手)生姜祛斑(生姜果然是祛斑高手)大家晚上好,欢迎来到姿态佳人护肤小课堂,每天给大家分享一些美肤小妙招,让我们在新的一年里倍有面子哦!爱美是女人的天性,每个人都在追求着干净白皙的好皮肤平水韵表(平水韵用字表)平水韵表(平水韵用字表)训蒙骈句十一尤凌烟阁,得月楼。筑台拜将,投笔封侯。碧苔生陋巷,红叶出御沟。天际虹梁和雨簖,江边渔网带烟收。唱晓灵鸡,两翅拍斜茅店月排云孤鹤,一声唳落海天秋。平水韵表(106韵平水韵)平水韵表(106韵平水韵)106韵(平水韵)成长史隋朝,陆法言的切韵分为193个韵部。唐初,孙愐编制唐韵是切韵的一个增修本,全书5卷,共195个韵部北宋,陈彭年编纂的大宋重修广韵在白居易的资料(白居易资料新编)白居易的资料(白居易资料新编)5月13日,由中国社会科学院文学研究所研究员中国社会科学院研究生院陈才智教授编著的白居易资料新编(全十册)(以下简称新编)新书发布会暨出版座谈会在京召图书软件(图书进销存软件有哪些优势?)图书软件(图书进销存软件有哪些优势?)市面上的图书进销存软件有很多,其中不乏粗制滥造的不良产品。不良产品带来的影响有很多,这里就不一一道来。本文主要讲述简单好用的图书进销存软件的主大孔雀明王(探访大足北山北宋孔雀明王石刻)大孔雀明王(探访大足北山北宋孔雀明王石刻)lt古迹寻踪gt探访大足北山孔雀明王石刻重庆大足北山石刻群,是唐宋遗存的珍贵石窟造像,这些造像是佛教思想和艺术的载体,它从古印度沿着丝绸之肛裂死的大宋公主(大宋公主真的是肛裂而死的吗?)肛裂死的大宋公主(大宋公主真的是肛裂而死的吗?)说到大宋公主是怎么死的这个问题也还是有说法的,其实在网上有很多的传言,毕竟当时这件事情闹得非常大,但是我们也是听说,又不是古代人,也内痔脱出(内痔肉球脱出怎么办?)内痔脱出(内痔肉球脱出怎么办?)红网时刻4月28讯(通讯员舒丽)内痔是肛门直肠疾病中最常见的病种,好发于截石位3711点位。得了痔疮,特别是内痔,患者总是会遇到痔疮肉球脱出的情况,乔治六世(乔治王子会决定未来不继承王位吗?)乔治六世(乔治王子会决定未来不继承王位吗?)乔治王子将在他父亲威廉王子之后成为国王,但是乔治王子会决定不继承王位吗?乔治王子是英国王位的第三顺位继承人,是威廉王子和剑桥公爵夫人凯特
满城尽是金字塔(让沈腾难以选择的两个女人)满城尽是金字塔(让沈腾难以选择的两个女人)年初,贾玲导演的你好,李焕英成为中国影史票房第二高的电影,贾玲也成为最大的赢家。五一档,马丽出演的喜剧电影阳光劫匪,票房口碑双双扑街。从夏近亲结婚的范围(近亲不能结婚)近亲结婚的范围(近亲不能结婚)在现代,近亲不能结婚是人人都知道的一个常识,但是喜欢看古装剧的朋友们都知道,古代家族和家族之间为了利益,也为了亲上加亲,往往会选择近亲结婚,尤其像表哥手机搜狐网(搜狐网经典版正式恢复)手机搜狐网(搜狐网经典版正式恢复)12月18日,2020搜狐WORLD大会在北京召开。本次搜狐分别从内容的生产内容的分发垂直领域搜狐视频IP大项目等方面和在场人员分享了搜狐发展至今搜狐网邮箱(搜狐拟变更注册地)搜狐网邮箱(搜狐拟变更注册地)话说,最近一直有做投资的盆友在问八姐,搜狐要变更注册地,这是要有啥大的资本动作吗?难道是要私有化?而今天下午,搜狐公司董事局主席张朝阳的一封公开信则揭可乐鸡翅的制作方法及步骤(轻松几步就能完成的可乐鸡翅)可乐鸡翅的制作方法及步骤(轻松几步就能完成的可乐鸡翅)简单可口的一道菜,家人都喜欢吃。By暖妈爱厨房用料鸡翅610可乐适量姜两片盐少许老抽少许八角1个葱蒜适量花雕酒少许做法步骤1鸡心痛2009铃声(欢子心痛2009)心痛2009铃声(欢子心痛2009)心痛2009欢子词欢子曲欢子我走了也许我们在一起是错的一起这么久了你有在乎过我吗你的脸贴在我胸口泪水早已渗透了我的衣袖你我都沉默了许久不该说的话sas硬盘(让普通电脑也能用SAS硬盘,美滋滋)sas硬盘(让普通电脑也能用SAS硬盘,美滋滋)贪便宜捡便宜对于很多人而言,是很正常的事情。不少国人购买产品,也都喜欢讨价还价,这难道能说是错误的吗?毕竟多数人的收入有限,当不了土严谨的拼音(七年级下册字词)严谨的拼音(七年级下册字词)(新版)七年级下册字词邓稼先课后元勋xn奠基din选聘pn谣言yo背诵sn昼夜昆仑挚友zh可歌可泣鲜xin为人知至死不懈xi鞠躬尽瘁cu当之无愧家喻y户绝对值练习题(10道绝对值化简计算,常见经典考试真题,可抄下来练习)绝对值练习题(10道绝对值化简计算,常见经典考试真题,可抄下来练习)绝对值化简计算,对于刚上初一的同学来说,真的很头疼。但是绝对值,是初中数学的基础中基础。所以我们必须迎难而上,扎学生成绩查询系统(这个省份成绩查询入口已开通!)学生成绩查询系统(这个省份成绩查询入口已开通!)嘿嘿大家好!小赛出来露个脸!截止至目前,已经可以查成绩的地区有山西安徽陕西天津。那么,谁会是第5个出分的省份呢?答案就是福建省!好啦描写大海的文章(关于大海的文案超文艺)描写大海的文章(关于大海的文案超文艺)海边的所有思绪永远是温柔的,揉杂着几分静谧的晚霞,也有些许日落之时的惆怅。最爱是黄昏。借着夏天的名义,一起去看海吧。大海一望无际,海风可以吹走