ObjectPool.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. cc.Class({
  2. extends: cc.Component,
  3. properties: {
  4. 地鼠预设: cc.Prefab,
  5. 炸弹预设: cc.Prefab,
  6. },
  7. // LIFE-CYCLE CALLBACKS:
  8. onLoad() {
  9. ObjectPools = this;
  10. this.dishuPool = new cc.NodePool();
  11. this.zhadanPool = new cc.NodePool();
  12. },
  13. start() {
  14. },
  15. 生成地鼠: function () {
  16. let 地鼠 = null;
  17. //c1、当前对象池中的可用对象数量
  18. if (this.dishuPool.size > 0) {
  19. //_1、从对象池中获取对象
  20. 地鼠 = this.dishuPool.get();
  21. } else {
  22. //_2、若没有空闲的对象,也就是对象不够用时,就克隆节点
  23. 地鼠 = cc.instantiate(this.地鼠预设);
  24. }
  25. return 地鼠;
  26. },
  27. 地鼠回收: function (地鼠) {
  28. this.dishuPool.put(地鼠);
  29. },
  30. 生成炸弹: function () {
  31. let 炸弹 = null;
  32. //c1、当前对象池中的可用对象数量
  33. if (this.zhadanPool.size > 0) {
  34. //_1、从对象池中获取对象
  35. 炸弹 = this.zhadanPool.get();
  36. } else {
  37. //_2、若没有空闲的对象,也就是对象不够用时,就克隆节点
  38. 炸弹 = cc.instantiate(this.炸弹预设);
  39. }
  40. return 炸弹;
  41. },
  42. 炸弹回收: function (炸弹) {
  43. this.zhadanPool.put(炸弹);
  44. },
  45. playSimpleAudioEngine: function (engineType) {
  46. // 若为击打音效 则随机0-1被打音效
  47. if (engineType == 0) {
  48. var randomIndex = parseInt(Math.random() * 2, 10);
  49. engineType = randomIndex;
  50. }
  51. cc.audioEngine.stopAll();
  52. switch (engineType) {
  53. case 0:
  54. var ling = cc.audioEngine.play(cc.url.raw('resources/audio/dazhongdishu.mp3'), false, 1);
  55. break;
  56. case 1:
  57. var yi = cc.audioEngine.play(cc.url.raw('resources/audio/dishubeida.mp3'), false, 1);
  58. break;
  59. case 2:
  60. var er = cc.audioEngine.play(cc.url.raw("resources/audio/dishuguadiao.mp3"), false, 1);
  61. break;
  62. case 3:
  63. var san = cc.audioEngine.play(cc.url.raw("resources/audio/dishuguaixiao.mp3"), false, 1);
  64. break;
  65. case 4:
  66. var si = cc.audioEngine.play(cc.url.raw("resources/audio/lianji.mp3"), false, 1);
  67. break;
  68. case 5:
  69. var wu = cc.audioEngine.play(cc.url.raw("resources/audio/meidazhong.mp3"), false, 1);
  70. break;
  71. case 6:
  72. var liu = cc.audioEngine.play(cc.url.raw("resources/audio/zhadanbaozha.mp3"), false, 1);
  73. break;
  74. default:
  75. break;
  76. }
  77. },
  78. // update (dt) {},
  79. });