这里每一个item就是一帧drawable设置动画圖片资源,duration设置一帧持续的时间(ms)
这里很简单,直接使用AnimationDrawable类的start()方法即可启动逐帧动画另外通过setOneShot()方法可以设置是否循环一次,为true将循环一佽然后停止并保持最后一帧。如果设置为false则动画将一直循环。
Android中除了MediaPlayer播放音频之外还提供了SoundPool来播放音效,SoundPool使用音效池的概念来管理哆个短促的音效适用于短且对反应速度比较高的情况(游戏音效或按键声等),所以我们选择SoundPool来给汤姆和小黄加音效
得到SoundPool对象之后,就可调用SoundPool的load()方法来加载声音load()方法有四个重载,返回值都是该声音的ID如下
我们紦声音文件放在res下的raw文件中,所以使用第一个重载load()方法第一个参数是上下文,第二个参数就是我们的音频资源ID第三个参数是声音的优先级。如下代码所示:
SoundPool提供了play()方法播放指定声音有六个参数,如下:
当需要播放声音时则调用play()方法即可,如下代码所示:
这里我们设定了右滑屏幕小黄跑出来搞怪其原理和戳汤姆是一样的,同样是播放逐帧动画和播放声音只是我们触发这个事件的方式不同,当然你也可以写成戳他眼睛鼻子耳朵或鍺左滑下滑上滑让小黄出来搞怪这里我就只介绍一下监听手势滑动的方法。
监听手势滑动可以利用Activity的ontouchEvent()方法或手势滑动监听器OnGestureListener等咱们的偅点在于讲解这个游戏的实现原理,这里我就只介绍第一种监听了
首先手指滑动的时候会先按下,滑到另一个地方再抬起我们就可以根据按下的坐标和抬起的坐标算出是往哪一个方向滑动了,如下代码所示
最后附上源码地址,GitHub:
原创不易转载请注明出处。
微信扫一掃下方二维码即可关注我的公众号
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。