看板 Flash 關於我們 聯絡資訊
用個Array記錄所有的粒子(也就是你的火苗)的資訊 包括reference, life(剩下的生命), 速度, 重力場, etc. 為了方便,我們就只討論reference跟life 這個Array叫做_particles 裡面有一系列的Object記錄著reference和life 然後重複呼叫一個step() 每次呼叫的時候都會讓每筆資料的life減少 等到life變為零之後,這個粒子就會被移除 不只是資料從_particles中移除,粒子也會被removeChild() 所以大致的code會像這樣,你可以參考看看: //新增particle (這裡的粒子就叫做fire,也就是你的火苗) addChild(fire); _particles.push({particle:fire, life:100}); //你要怎麼新增粒子都行,但是記得_particles也要新增對應的資料 //重複執行step() addEventListener(Event.ENTER_FRAME, step); function step(e:Event):void { for (var i:int = _particles.length - 1; i <= 0; i--) { //每次值型都扣除一點生命 _particles[i].life--; //當生命歸零的時候 if (_particles[i].life <= 0) { //把這個資料移掉 _particles.splice(i, 1); //也把粒子removeChild()除掉 removeChild(_particles[i].particle); } } } 要注意的是我for迴圈是 "倒著跑" 是從 _particles.length - 1 跑到 0 因為從後面開始來移除Array的element 才不會有 "漏項" 的情形發生 -- CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓 Blog http://cjcat.blogspot.com Gallery http://cjcat2266.deviantart.com ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.90.160
del680202:嗯嗯 我試試看 感謝回復 09/09 17:49