Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var particle:Array;
- var frame:Number;
- for(var i:int=0;i<particles.length;i++) {
- particle=particles[i];
- //particle[4]-=0.05;
- frame=particle[4];
- //проиграли все кадры, удаляем частицу
- if(frame>=16) {
- particles.splice(i--,1);
- continue;
- }
- //передвигаем на следующий кадр
- particle[4]+=1;
- //смещаем координаты частицы
- particle[0]+=particle[5];
- particle[1]+=particle[6];
- //копируем спрайт на сцену
- drawSprite(BD,particleSprites,particle[0],particle[1],particle[2],particle[3],frame);
- }
- BD.unlock();
- if (pucks == null) return;
- var p:Puck;
- var sp:Number;
- var prob:Number;
- var k:int;
- for (var z:int = 0; z < pucks.length; z++) {
- p = pucks[z] as Puck;
- if (p == null) continue;
- sX = p.dx*20/5000; sY = p.dy*20/5000;
- if(sX==0 && sY==0) continue;
- if(sX>20) sX=20; else if(sX<-20) sX=-20;
- if(sY>20) sY=20; else if(sY<-20) sY=-20;
- //вероятность появления новой частицы зависит от скорости
- sp=Math.sqrt(sX*sX+sY*sY);
- prob=sp/20;
- if(Math.random()<prob) {
- // вычисляем цвет частицы
- var n:int = getUser(p.user_id);
- // создаем сразу 6 частиц, с разными скоростями
- for(k=0;k<1;k++) { //цикл для экспериментов
- particles.push([p.x+Math.random()*60-30, p.y+Math.random()*60-30, Math.round(Math.random()*particleSprites[n].length-1),n, 0,sX/5,sY/5]);
- particles.push([p.x+Math.random()*40-20, p.y+Math.random()*40-20, Math.round(Math.random()*particleSprites[n].length-1),n, 0,sX/4,sY/4]);
- particles.push([p.x+Math.random()*20-10, p.y+Math.random()*20-10, Math.round(Math.random()*particleSprites[n].length-1),n, 0,sX/3,sY/3]);
- particles.push([p.x+Math.random()*40-20, p.y+Math.random()*40-20, Math.round(Math.random()*particleSprites[n].length-1),n, 0,sX/2,sY/2]);
- particles.push([p.x+Math.random()*20-10, p.y+Math.random()*20-10, Math.round(Math.random()*particleSprites[n].length-1),n, 0,sX,sY]);
- }
- }
- }
Add Comment
Please, Sign In to add comment