| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | 
							- import { _decorator, Component, instantiate, Node, NodePool, Pool, Prefab } from 'cc';
 
- import { resMgr } from '../../../Frames/ResourcesMgr';
 
- const { ccclass, property } = _decorator;
 
- @ccclass('BulletPool')
 
- export class BulletPool extends Component{
 
-     private _bulletPrefab: Prefab = null;
 
-     private _enemyBulletPrefab: Prefab = null;
 
-     private _bulletPool: NodePool = new NodePool();
 
-     private _enemyBulletPool: NodePool = new NodePool();
 
-     init() {
 
-         this._bulletPrefab = resMgr.getPrefab("Bullet");
 
-         this._enemyBulletPrefab = resMgr.getPrefab("BulletEnemy");
 
-         this._initPool(this._bulletPool, this._bulletPrefab, 10);
 
-         this._initPool(this._enemyBulletPool, this._enemyBulletPrefab, 10);
 
-     }
 
-     private _initPool(pool: NodePool, prefab: Prefab, count: number) {
 
-         for (let i = 0; i < count; i++) {
 
-             const node = instantiate(prefab);
 
-             pool.put(node);
 
-         }
 
-     }
 
-     getBullet(isEnemy: boolean): Node {
 
-         const pool = isEnemy ? this._enemyBulletPool : this._bulletPool;
 
-         if(pool.size()>0){
 
-             return pool.get()!;
 
-         }else{
 
-             //动态扩容
 
-             const prefab = isEnemy ? this._enemyBulletPrefab: this._bulletPrefab;
 
-             return instantiate(prefab);
 
-         }
 
-     }
 
-     recycle(bullet: Node, isEnemy: boolean) {
 
-         const pool = isEnemy ? this._enemyBulletPool : this._bulletPool;
 
-         if(!pool) return;
 
-         pool.put(bullet);
 
-     }
 
- }
 
 
  |