ObjectPool.js 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. cc.Class({
  2. extends: cc.Component,
  3. properties: {
  4. 地鼠预设: cc.Prefab,
  5. 炸弹预设: cc.Prefab,
  6. 地鼠教育预设: cc.Prefab,
  7. 炸弹教育预设: cc.Prefab,
  8. },
  9. // LIFE-CYCLE CALLBACKS:
  10. onLoad() {
  11. ObjectPools = this;
  12. this.dishuPool = new cc.NodePool();
  13. this.zhadanPool = new cc.NodePool();
  14. this.AudioEngine1 = [];
  15. this.AudioEngine1.push("audio/dazhongdishu");
  16. this.AudioEngine1.push("audio/dishubeida");
  17. this.AudioEngine1.push("audio/dishuguadiao");
  18. this.AudioEngine1.push("audio/dishuguaixiao");
  19. this.AudioEngine1.push("audio/lianji");
  20. this.AudioEngine1.push("audio/dishuguaixiao");
  21. this.AudioEngine1.push("audio/zhadanbaozha");
  22. this.AudioEngine1.push("audio/dazhongdishu");
  23. this.AudioEngine1.push("audio/meidazhong");
  24. this.AudioEngine2 = [];
  25. this.AudioEngine2.push("audio/dazhongdishu");
  26. this.AudioEngine2.push("audio/dazhongdishu");
  27. this.AudioEngine2.push("audio/dazhongdishu");
  28. this.AudioEngine2.push("audio/dishuguaixiao");
  29. this.AudioEngine2.push("audio/lianji");
  30. this.AudioEngine2.push("audio/dishuguaixiao");
  31. this.AudioEngine2.push("audio/zhadanbaozha");
  32. this.AudioEngine2.push("audio/zhadanchuxian");
  33. this.AudioEngine2.push("audio/meidazhong");
  34. },
  35. start() {
  36. },
  37. getDishuPool: function () {
  38. return this.dishuPool;
  39. },
  40. _init : function(){
  41. this.dishuPool = new cc.NodePool();
  42. this.zhadanPool = new cc.NodePool();
  43. },
  44. 生成地鼠: function () {
  45. let 地鼠 = null;
  46. //c1、当前对象池中的可用对象数量
  47. if (this.dishuPool.size > 0) {
  48. //_1、从对象池中获取对象
  49. 地鼠 = this.dishuPool.get();
  50. } else {
  51. //_2、若没有空闲的对象,也就是对象不够用时,就克隆节点
  52. 地鼠 = cc.instantiate(this.地鼠预设);
  53. }
  54. return 地鼠;
  55. },
  56. 生成教育地鼠: function () {
  57. let 地鼠 = null;
  58. //c1、当前对象池中的可用对象数量
  59. if (this.dishuPool.size > 0) {
  60. //_1、从对象池中获取对象
  61. 地鼠 = this.dishuPool.get();
  62. } else {
  63. //_2、若没有空闲的对象,也就是对象不够用时,就克隆节点
  64. 地鼠 = cc.instantiate(this.地鼠教育预设);
  65. }
  66. return 地鼠;
  67. },
  68. 生成教育炸弹: function () {
  69. let 炸弹 = null;
  70. //c1、当前对象池中的可用对象数量
  71. if (this.zhadanPool.size > 0) {
  72. //_1、从对象池中获取对象
  73. 炸弹 = this.zhadanPool.get();
  74. } else {
  75. //_2、若没有空闲的对象,也就是对象不够用时,就克隆节点
  76. 炸弹 = cc.instantiate(this.炸弹教育预设);
  77. }
  78. return 炸弹;
  79. },
  80. 地鼠回收: function (地鼠) {
  81. this.dishuPool.put(地鼠);
  82. },
  83. 生成炸弹: function () {
  84. let 炸弹 = null;
  85. //c1、当前对象池中的可用对象数量
  86. if (this.zhadanPool.size > 0) {
  87. //_1、从对象池中获取对象
  88. 炸弹 = this.zhadanPool.get();
  89. } else {
  90. //_2、若没有空闲的对象,也就是对象不够用时,就克隆节点
  91. 炸弹 = cc.instantiate(this.炸弹预设);
  92. }
  93. return 炸弹;
  94. },
  95. 炸弹回收: function (炸弹) {
  96. this.zhadanPool.put(炸弹);
  97. },
  98. playSimpleAudioEngine: function (engineType) {
  99. // 若为击打音效 则随机0-1被打音效
  100. if (engineType == 0) {
  101. var randomIndex = parseInt(Math.random() * 2, 10);
  102. engineType = randomIndex;
  103. }
  104. // cc.audioEngine.pauseAll();
  105. // cc.audioEngine.stopAll();
  106. // cc.audioEngine.stopAllEffects();
  107. if (MySetting.sound_value == 0) {
  108. return;
  109. }
  110. var temparr = [];
  111. if (OnOff) {
  112. temparr = this.AudioEngine2;
  113. } else {
  114. temparr = this.AudioEngine1;
  115. }
  116. cc.loader.loadRes(temparr[engineType], cc.AudioClip, function (err, clip) {
  117. cc.audioEngine.play(clip,false, MySetting.sound_value);
  118. });
  119. // var ling = cc.audioEngine.play(cc.url.raw(temparr[engineType]), false, MySetting.sound_value);
  120. // this.readgo.getComponent(cc.AudioSource).volume = MySetting.sound_value;
  121. // switch (engineType) {
  122. // case 0:
  123. // var ling = cc.audioEngine.play(cc.url.raw('resources/audio/dazhongdishu.mp3'), false, MySetting.sound_value);
  124. // break;
  125. // case 1:
  126. // var yi = cc.audioEngine.play(cc.url.raw('resources/audio/dishubeida.mp3'), false, MySetting.sound_value);
  127. // break;
  128. // case 2:
  129. // var er = cc.audioEngine.play(cc.url.raw("resources/audio/dishuguadiao.mp3"), false, MySetting.sound_value);
  130. // break;
  131. // case 3:
  132. // var san = cc.audioEngine.play(cc.url.raw("resources/audio/dishuguaixiao.mp3"), false, MySetting.sound_value);
  133. // break;
  134. // case 4:
  135. // var si = cc.audioEngine.play(cc.url.raw("resources/audio/lianji.mp3"), false, MySetting.sound_value);
  136. // break; //meidazhong
  137. // case 5:
  138. // var wu = cc.audioEngine.play(cc.url.raw("resources/audio/dishuguaixiao.mp3"), false, MySetting.sound_value);
  139. // break;
  140. // case 6:
  141. // var liu = cc.audioEngine.play(cc.url.raw("resources/audio/zhadanbaozha.mp3"), false, MySetting.sound_value);
  142. // break;
  143. // default:
  144. // break;
  145. // }
  146. },
  147. //出洞提示 左中右
  148. playAudioEngineDirection: function (engineType) {
  149. // 若为击打音效 则随机0-1被打音效
  150. // cc.audioEngine.pauseAll();
  151. if (!OnOff) {
  152. return;
  153. }
  154. cc.audioEngine.stopAll();
  155. cc.audioEngine.stopAllEffects();
  156. // this.readgo.getComponent(cc.AudioSource).volume = MySetting.sound_value;
  157. if (MySetting.sound_value == 0) {
  158. return;
  159. }
  160. switch (engineType) {
  161. case 0:
  162. cc.loader.loadRes("audio/zuo", cc.AudioClip, function (err, clip) {
  163. cc.audioEngine.play(clip,false, MySetting.sound_value);
  164. });
  165. // var zuo = cc.audioEngine.play(cc.url.raw('resources/audio/zuo.mp3'), false, MySetting.sound_value);
  166. break;
  167. case 1:
  168. cc.loader.loadRes("audio/zhong", cc.AudioClip, function (err, clip) {
  169. cc.audioEngine.play(clip,false, MySetting.sound_value);
  170. });
  171. // var zhong = cc.audioEngine.play(cc.url.raw('resources/audio/zhong.mp3'), false, MySetting.sound_value);
  172. break;
  173. case 2:
  174. cc.loader.loadRes("audio/you", cc.AudioClip, function (err, clip) {
  175. cc.audioEngine.play(clip,false, MySetting.sound_value);
  176. });
  177. // var you = cc.audioEngine.play(cc.url.raw("resources/audio/you.mp3"), false, MySetting.sound_value);
  178. break;
  179. default:
  180. break;
  181. }
  182. },
  183. // update (dt) {},
  184. });