簡單飛行 尾焰代碼_第1頁
簡單飛行 尾焰代碼_第2頁
簡單飛行 尾焰代碼_第3頁
全文預覽已結束

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、簡單飛行 尾焰代碼1.新建粒子 particle: 2.設置粒子屬性:注意打勾“自定義”,后面參數如下3.將粒子拖拽進資源管理器,做成預制體 4.創建粒子的代碼,在子彈管理器里面生成子彈后,馬上接著生成粒子,對應綁定粒子node進子彈的腳本里 /*創建玩家子彈尾焰 bulletNode: 跟隨的子彈節點 nodeID:編號用于緩存對象池 */ createParticle(bulletNode, nodeID) let newParticle = null; let self = this; /獲取到子彈控件后設置坐標和展示 function setParticle(particleNode)

2、 / console.log(newParticle:獲取到子彈控件后設置坐標和展示, this); particleNode.active = false; particleNode.getComponent(cc.ParticleSystem).resetSystem(); particleNode.setPosition(bulletNode.getPosition(); self.gameScene.fireShow(particleNode); self.particleArrnodeID = particleNode; particleNode.active = true; bul

3、letNode.getComponent(FlyBullet).setParticle(particleNode); if (this.particlePool = null) this.particlePool = new cc.NodePool(); / console.log(this-particlePool=, this.particlePool); if (this.particlePool.size() 0) / 通過 size 接口判斷對象池中是否有空閑的對象 newParticle = this.particlePool.get(); / console.log(使用空閑對象

4、,尾焰+, this.particlePool.size(); setParticle(newParticle); else / 如果沒有空閑對象,對象池中備用對象不夠時,用 cc.instantiate 重新創建 cc.loader.loadRes(prefabs/Fly/FireParticle, function (err, prefab) newParticle = cc.instantiate(prefab); / console.log(創建新對象,尾焰-); setParticle(newParticle); ); , 5.子彈腳本里,同步粒子發射器的坐標,并且在子彈碰撞死亡后,

5、停止發射并延時回收進管理器 /*子彈尾焰的粒子動畫*/ setParticle(particleNode) this.particleNode = particleNode; this.fireParticle = particleNode.getComponent(cc.ParticleSystem); this.fireParticle.duration = -1;/粒子一直發射 , /移除當前子彈 removeBullet() this.node.removeFromParent(); if (this.bulletManager = null) this.bulletManager =

6、 FlyBulletMgr.getInstance(); if (this.particleNode != null) /粒子停止發射 if (this.fireParticle) this.fireParticle.stopSystem(); /計時器結束后將本子彈/粒子前往管理器回收 this.scheduleOnce(function() this.bulletManager.recoveryBullet(this.node, this.nodeID, this.particleNode); , 0.2); this.particleNode = null; this.fireParti

7、cle = null; else this.bulletManager.recoveryBullet(this.node, this.nodeID); , movePos(newPosX, newPosY) / console.log(this.bulletID + =新坐標= +cc.winSize.height/2, newPosX + , + newPosY) let moveAct = cc.moveTo(ervalTime, Math.floor(newPosX), Math.floor(newPosY); this.node.runAction(moveAct); /同步粒子的坐標 if (this.particleNode != null) let moveAct2 = cc.moveTo(ervalTime, Math.floor(newPosX), Math.floor(newPosY); this.particleNode.run

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論