audioScript.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. cc.Class({
  2. extends: cc.Component,
  3. properties: {
  4. bgClip: {
  5. default: null,
  6. type: cc.AudioClip
  7. },
  8. tipClip: {
  9. default: [],
  10. type: cc.AudioClip,
  11. tooltip: "提示出拳方式, 0 左,1 中,2 右",
  12. },
  13. //游戏开始
  14. gameStart: {
  15. default: null,
  16. type: cc.AudioClip
  17. },
  18. gameVictory: {
  19. default: null,
  20. tooltip: "游戏胜利",
  21. type: cc.AudioClip
  22. },
  23. gameDefeat: {
  24. default: null,
  25. tooltip: "游戏失败",
  26. type: cc.AudioClip
  27. },
  28. numClip: {
  29. default: [],
  30. type: cc.AudioClip,
  31. tooltip: "播报数字0 - 10",
  32. },
  33. numPower: {
  34. default: null,
  35. tooltip: "数值前的力量提示",
  36. type: cc.AudioClip
  37. },
  38. numUnit: {
  39. default: null,
  40. tooltip: "数值后的单位",
  41. type: cc.AudioClip
  42. },
  43. hitFail: {
  44. default: null,
  45. tooltip: "击打失败",
  46. type: cc.AudioClip
  47. },
  48. hitSuccess: {
  49. default: null,
  50. tooltip: "击打成功",
  51. type: cc.AudioClip
  52. },
  53. getCoin: {
  54. default: null,
  55. tooltip: "获得金币",
  56. type: cc.AudioClip
  57. },
  58. deducCoin: {
  59. default: null,
  60. tooltip: "扣金币",
  61. type: cc.AudioClip
  62. },
  63. noCoin: {
  64. default: null,
  65. tooltip: "不够金币",
  66. type: cc.AudioClip
  67. },
  68. threeHits: {
  69. default: null,
  70. tooltip: "连续击中三次",
  71. type: cc.AudioClip
  72. },
  73. twoHits: {
  74. default: null,
  75. tooltip: "连续击中两次",
  76. type: cc.AudioClip
  77. },
  78. },
  79. // LIFE-CYCLE CALLBACKS:
  80. onLoad() {
  81. window.myAudio = this;
  82. },
  83. start() {
  84. cc.audioEngine.playMusic(this.bgClip, true);
  85. // this.onPlayHitPower("48");
  86. },
  87. //提示出拳方式, 0 左,1 中,2 右
  88. onPlayBoxingTip(tipIndex) {
  89. cc.audioEngine.play(this.tipClip[tipIndex], false, 1);
  90. },
  91. //开始转动
  92. onPlayGameStart(callback) {
  93. cc.audioEngine.play(this.gameStart, false, 1);
  94. setTimeout(() => {
  95. if (callback)
  96. callback();
  97. }, 2000);
  98. },
  99. onPlayGameVictory() {
  100. cc.audioEngine.play(this.gameVictory, false, 1);
  101. },
  102. onPlayGameDefeat() {
  103. cc.audioEngine.play(this.gameDefeat, false, 1);
  104. },
  105. onPlayHitPower(hitPower, callback) {
  106. let hitPowers = hitPower.split('');
  107. // console.log("onPlayHitPower", hitPowers);
  108. let self = this;
  109. let audioIndexArray = [];
  110. if (hitPower.length == 3) { //三位数
  111. audioIndexArray.push(hitPowers[0]);//百
  112. audioIndexArray.push(11);//插入百的单位声音
  113. //如果十位是0的话,也不用插入读音
  114. if (hitPowers[1] !== "0")
  115. audioIndexArray.push(hitPowers[1]);//十
  116. audioIndexArray.push(10);//插入十的单位声音
  117. //假如最后一个是 0 ,不用插入
  118. if (hitPowers[2] !== "0")
  119. audioIndexArray.push(hitPowers[2]);//个
  120. } else if (hitPower.length == 2) { //两位数
  121. audioIndexArray.push(hitPowers[0]);//十
  122. audioIndexArray.push(10);//插入十的单位声音
  123. //假如最后一个是 0 ,不用插入
  124. if (hitPowers[1] !== "0")
  125. audioIndexArray.push(hitPowers[1]);//个
  126. }
  127. cc.audioEngine.play(self.numPower, false, 1);
  128. setTimeout(function () {
  129. for (let i = 0; i < audioIndexArray.length; i++) {
  130. (
  131. function (a) {
  132. setTimeout(function () {
  133. cc.audioEngine.play(self.numClip[audioIndexArray[a]], false, 1);
  134. if (a == audioIndexArray.length - 1) {
  135. setTimeout(function () {
  136. cc.audioEngine.play(self.numUnit, false, 1);
  137. //读完后给个回调
  138. setTimeout(function () {
  139. if (callback)
  140. callback();
  141. }, 1000)
  142. }, 500)
  143. }
  144. }, a * 500)
  145. }(i)
  146. )
  147. }
  148. }, 1300)
  149. },
  150. onHitFail() {
  151. cc.audioEngine.playEffect(this.hitFail, false, 1);
  152. },
  153. onHitSuccess() {
  154. cc.audioEngine.playEffect(this.hitSuccess, false, 1);
  155. },
  156. onGetCoin() {
  157. cc.audioEngine.playEffect(this.getCoin, false, 1);
  158. },
  159. onDeducCoin() {
  160. cc.audioEngine.playEffect(this.deducCoin, false, 1);
  161. },
  162. onNoCoin() {
  163. cc.audioEngine.playEffect(this.noCoin, false, 1);
  164. },
  165. onTwoHits() {
  166. cc.audioEngine.playEffect(this.twoHits, false, 1);
  167. },
  168. onThreeHits() {
  169. cc.audioEngine.playEffect(this.threeHits, false, 1);
  170. }
  171. // update (dt) {},
  172. });