Android游戏开发之处理音乐与音效太鼓达人游戏原理
同学们在玩游戏的时候应该都会发现游戏中会有两种形式来播放音乐 ,一般设置选项中会明确标明 设置游戏音乐 与设置游戏音效。 客观的分析一下这两种形式的音乐,游戏背景音乐同时只会播放一首也就是说两首背景音乐不会同时播放,除非一首播放完毕或者切换场景等 才会播放下一首。而游戏音效 比如主角与敌人挥动武器的声音 被攻击中的声音等,这些声音比较短而且播放很频繁很有可能会同时播放游戏音效。
1.使用MediaPlayer播放游戏音乐
创建MediaPlayer对象 将Context与资源文件传入。
判断声音是否正在播放,如果没有播放则开始播放游戏音乐。
判断声音是否正在播放,如果正在播放则停止播放游戏音乐。
这里强调一下MediaPlayer同一时间只能播放一个音乐。
2.使用SoundPool播放游戏音效
Soundpool的加载:
int load(Context context, int resId, int priority) //从资源中载入 比如 R.raw.id
int load(FileDescriptor fd, long offset, long length, int priority) //从FileDescriptor 对象载入
int load(AssetFileDescriptor afd, int priority) //从AssetFileDescriptor 对象载入
int load(String path, int priority) //从完整文件路径名载入 第二个参数为优先级。
创建音效播放音效
play (int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate)
leftVolume 表示对左音量设置 rightVolume 表示右音量设置 , loop 表示 循环次数 rate表示速率最低0.5最高为2,1代表正常速度这里强调一下SoundPool可以同时播放多个音乐。
下面向大家介绍一下这个DEMO中的重点,太鼓达人游戏开发的原理,图片资源全部源于互联网。
进入游戏界面 使用MediaPlayer来播放背景声音, 玩家击打鼓盘使用soundpool播放游戏音效。配合这下面的DEMO 请大家继续阅读。
菜单界面
游戏界面
1.处理触摸点与鼓盘的碰撞 我们先分析一下鼓盘的组成结构,它是由两个圆形组成的一个大圆形中间一个小圆形。玩家触摸屏幕后会拿到触摸的X,Y坐标 然后利用数学公事 (x1 – x2)2 + (y1 – y2)2 < (r1 + r2)2 计算出点与大圆形的距离与小圆形的距离,根据两点之间的距离就可以计算出当前触摸的点是在蓝色的鼓盘中 还是红色的鼓盘中,判断一下X坐标在圆形左边还是右边就可以拿到触摸的是左边的鼓盘还是右边的鼓盘。
检测碰撞的部分源代码
2 .音符的移动
游戏中我们可以发现各种音符会从屏幕左边向右移动,我觉得原作肯定是有一个音符编辑器 在开发中策划来编辑这个音符包括 位置 出现的是频率 时间 音符的类型 等等 最后编辑器会把数据生成出来 在程序中去读取这些数据并显示出来,作为学习来说我们没必要想那么多我强调的还是开发的原理 任何平台的游戏它使用的算法 数据结构 基本都是一样的,今后我会在教程中陆续向大家贯穿这些思想。
代码实现上我把音符一样封成一个音符类,和上节教程类似每一个音符由又向左移动 根据随机数 来设置音符的类型 为红色还是蓝色。 程序中一样只申请了5块 音符的对象,玩家点击鼓盘后然后以音符对象检测它的XY坐标是是否在点击区域 如果在点点击区域 在判断玩家敲打的鼓盘音符与当前音符是否类型一样如果一样则表示击打成功 屏幕中显示good图片,如果失败则显示bad图片。被击中的鼓点 或者没有击中向左超过击打范围 直接重置它们的坐标 让它们进入下一个轮回判定中。
简单的音符类实现 现在只有两种音符 一个是红色 一个是蓝色玩家击打某个鼓盘后 瞬间鼓点图片会消失 然后在显示这样会让玩家感觉自己已经点中鼓盘。 这个效果可以根据clipRext来把图片切割出来显示在屏幕中。
游戏效果图
游戏的更新
游戏的绘制
以后写教程每个demo的代码量会越来越多 所以贴代码在博客中可能大家看的就不是很清楚,不过我会尽量在博客中把原理说清楚 还是建议大家都去下载我的源码来阅读学习。源代码中我会写详细的注释,还是那句老话在漂亮的语言不如普通实用的代码片段,老规矩每篇文章都会附带源代码,最后如果你还是觉得我写的不够详细
看的不够爽 不要紧我把源代码的下载地址贴出来 欢迎大家一起讨论学习雨松MOMO希望可以和大家一起进步。下载地址:http://download.csdn.net/source/3512973
分享到:
相关推荐
Android 处理音乐与音效太鼓达人游戏原理~~~~~~
雨松MOMO带你做游戏 Android游戏开发之音乐与音效的处理太鼓达人游戏原理 欢迎大家下载阅读
android游戏太鼓达人源代码,各市场内下载量已超过20万。
android太鼓达人apk+音乐包,内含几首音乐
FLASH太鼓达人源码 很好的效果 基本功能都实现了
0.1.5_64太鼓达人猫byAihex
前些天,在b站上看到有人分享单片机模拟NS手柄,在《精灵宝可梦》、《异度之刃》等游戏中实现自动操作的视频。我是个有着多年“鼓龄”的太鼓达人玩家,于是产生想法,将该方案用于自动完成太鼓达人曲目,实现类似TAS...
太鼓,音乐节奏游戏特色日本太鼓。 使用JavaScript和HTML5 Canvas构建。 目录 介绍 太鼓是一款以日本太鼓为特色的音乐节奏游戏。 演奏者跟随一段音乐在音符流中击打鼓。 特征 在Taiko中,玩家能够: 随机播放三首...
CyouTaiKoNoTaTuJin TaiKoNoTaTuJin,太鼓の达人,太鼓达人,由javascript制作的演示html5 该演示可以在Google Chrome上运行 有些浏览器可能无法播放WebM格式的视频
StepMania是一款适用于家庭和街机游戏的高级跨平台节奏游戏。 先进的跨平台节奏游戏,适合家庭和商场使用。 安装 从包裹 对于不希望自己编译游戏并立即使用二进制文件的用户,请注意以下问题: Windows用户应在...
什么是太鼓? Taiko是由背后的团队构建的免费开放源代码浏览器自动化工具。 Taiko是一个Node.js库,具有清晰简洁的API,可自动执行基于Chromium的浏览器(Chrome,Microsoft Edge,Opera)和Firefox。 用Taiko编写...
样式Beats - DJMAX/Beatmania IIDX 风格Technika - DJMAX 技术风格Square - Jubeat 风格太鼓- 太鼓之达人风格迈-迈迈风格模拟文件格式BSM - Beats2 SM - StepMania 3.9 SSC - StepMania 5目标平台Windows 8 桌面- ...
taikoguide:太鼓指南
vb编写的程序,能实现ini读取功能,修复了很多bug,源文件中标明注释,用于学习和交流
(太鼓の达人Wii Uば〜じょん!) (太鼓の达人特盛り!) (太鼓の达人あつめて★ともだち大作戦!) (太鼓の达人Nintendo Switchば〜じょん!) 二进制文件 您可以在“页面上找到预构建的二进制文件。 它们...
java太鼓 用 java 编写的 taiko 不包含 img 或歌曲文件
ArduinoTaikoController 适用于PC和Nintendo Switch上的太鼓游戏的基于Arduino Leonardo / Micro的控制器电路的草图软体设定Windows 10 如果您使用的是Windows 7,由于某些驱动程序问题,您将无法第二次上载代码。...
AGE-Taiko这是一个使用易语言编写的,使用AGE(这里的源码文本所起到的作用...本程序所读取的普面为太鼓次郎的TJA普面。技术有限,修复错误的速度缓慢,当然如果你有好的解决方法,可以提交代码。长期更新E文件网盘:
等GUI库Driver :鼠标驱动程序和键盘驱动程序(修订版) APP :画图、记事本、游戏(太鼓)文件说明Lib:图像处理的一些资源。 Pro:用于图像传输的 VS2012 项目Xv6:基于@vx6 的源代码我们修改了什么? Driver :...
3.关于有人反映不能安装补丁和dlc的,当装不了得时候,退出金叶进入游戏玩一会再退出,继续安装剩下的dlc就可以啦,排球,龙珠z,太鼓等已经实测过,都可以 最后,现在7.0.1大气层挺方便的,还有顾虑的放心升级吧