musicMgr.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. /**
  2. * @author uu
  3. * @file 音乐控制组件
  4. */
  5. cc.Class({
  6. extends: cc.Component,
  7. properties: {
  8. volume: 1,
  9. audios: [cc.AudioSource],
  10. audioPrefab: cc.Prefab,
  11. bgMusic: cc.AudioSource,
  12. winAudio: cc.AudioSource,
  13. doubleAudio: cc.AudioSource,
  14. boomAudio: cc.AudioSource,
  15. magicAudio: cc.AudioSource,
  16. //audioSource: cc.AudioSource,
  17. },
  18. init() {
  19. this.audio = []
  20. this.instanceAudio()
  21. this.createMusicPool()
  22. },
  23. createMusicPool() {
  24. // this.musicPool = new cc.NodePool()
  25. // for (let i = 0; i < 20; i++) {
  26. // let music = cc.instantiate(this.audioPrefab)
  27. // this.musicPool.put(music)
  28. // }
  29. },
  30. instanceAudio() {
  31. },
  32. changeVol(vol) {
  33. this.volume = vol
  34. this.audios.forEach((item, index) => {
  35. // item.volume = vol
  36. this.audios[index].volume = vol
  37. })
  38. },
  39. onPlayAudio(num) {
  40. let self = this
  41. if (!this.audios[num] || this.audios[num].isPlaying) {
  42. if (this.audios[num + 1]) {
  43. self.onPlayAudio(num + 1)
  44. } else {
  45. //console.log('创建新的音乐实例')
  46. let music = null
  47. if (self.musicPool && self.musicPool.size() > 0) {
  48. music = self.musicPool.get()
  49. } else {
  50. music = cc.instantiate(self.audioPrefab)
  51. }
  52. music.parent = self.node
  53. this.audios[num + 1] = music.getComponent(cc.AudioSource)
  54. music.getComponent(cc.AudioSource).play()
  55. }
  56. // if (num < this.audios.length) {
  57. // this.audios[num].stop()
  58. // this.audios[num].rewind()
  59. // this.audios[num].play()
  60. // }
  61. } else {
  62. // console.log('使用旧的音乐')
  63. this.audios[num].rewind()
  64. this.audios[num].play()
  65. }
  66. },
  67. pauseBg() {
  68. this.bgMusic.pause()
  69. },
  70. resumeBg() {
  71. this.bgMusic.resume()
  72. },
  73. start() {
  74. // this.onPlayAudio(1);
  75. },
  76. checkBg() {
  77. },
  78. onWin() {
  79. this.winAudio.rewind()
  80. this.winAudio.play()
  81. },
  82. onDouble() {
  83. this.doubleAudio.rewind()
  84. this.doubleAudio.play()
  85. },
  86. onBoom() {
  87. this.boomAudio.rewind()
  88. this.boomAudio.play()
  89. },
  90. onMagic() {
  91. this.magicAudio.rewind()
  92. this.magicAudio.play()
  93. },
  94. });