forked from: forked from: forked from: 重力+パーティクル 円盤状

by hacker_zfj219fz forked from forked from: forked from: 重力+パーティクル 円盤状 (diff: 1)
♥0 | Line 1 | Modified 2009-09-28 19:54:20 | MIT License
play

ActionScript3 source code

/**
 * Copyright hacker_zfj219fz ( http://wonderfl.net/user/hacker_zfj219fz )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/g1Dn
 */

// forked from hacker_zfj219fz's forked from: forked from: 重力+パーティクル 円盤状
%2F%2F%20forked%20from%20keno42's%20forked%20from%3A%20%E9%87%8D%E5%8A%9B%EF%BC%8B%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%AF%E3%83%AB%20%E5%86%86%E7%9B%A4%E7%8A%B6%0D%2F%2F%20forked%20from%20keno42's%20%E9%87%8D%E5%8A%9B%EF%BC%8B%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%AF%E3%83%AB%0Dpackage%20%20%0D%7B%0D%09import%20flash.display.Sprite%3B%0D%09import%20flash.events.Event%3B%0D%09import%20flash.display.Bitmap%3B%0D%09import%20flash.display.BitmapData%3B%0D%09import%20flash.events.MouseEvent%3B%0D%09import%20flash.filters.BlurFilter%3B%20%0D%09import%20flash.filters.ColorMatrixFilter%3B%0D%09import%20flash.filters.GlowFilter%3B%0D%09import%20flash.geom.Matrix%3B%0D%09import%20flash.geom.Point%3B%0D%20%20%20%20%20%20%20%20%5BSWF(width%20%3D%20%22465%22%2C%20height%20%3D%20%22465%22%2C%20backgroundColor%20%3D%20%220%22%2C%20fps%20%3D%20%2230%22)%5D%0D%09public%20class%20Particles%20extends%20Sprite%0D%09%7B%20%0D%09%09private%20var%20NUM%3Aint%20%3D%20300%3B%0D%09%09private%20var%20p%3AParticle%20%3D%20new%20Particle()%3B%0D%09%09private%20var%20bd%3ABitmapData%20%3D%20new%20BitmapData(465%2C%20465%2Ctrue%2C0)%3B%0D%09%09private%20var%20m%3AMatrix%20%3D%20new%20Matrix(1%2C%200%2C%200%2C%201%2C0%2C0)%3B%0D%09%09public%20function%20Particles()%20%0D%09%09%7B%0D%20%20%20%20%20%20%20%20%20%20%20%20%2F%2F%20take%20a%20capture%20after%2010%20sec%0D%20%20%20%20%20%20%20%20%20%20%20%20Wonderfl.capture_delay(%2010%20)%3B%0D%09%09%09var%20bmp%3ABitmap%20%3D%20new%20Bitmap(bd)%3B%0D%09%09%09bd.fillRect(bd.rect%2C%200)%3B%0D%09%09%09addChild(bmp)%3B%0D%09%09%09for%20(%20var%20i%3Aint%20%3D%200%3B%20i%20%3C%20NUM%3B%20i%2B%2B%20)%20%7B%0D%09%09%09%09var%20next%3AParticle%20%3D%20p%3B%0D%09%09%09%09p%20%3D%20new%20Particle()%3B%0D%09%09%09%09p.next%20%3D%20next%3B%0D%09%09%09%09addChild(%20p%20)%3B%0D%09%09%09%7D%0D%09%09%09addEventListener(Event.ENTER_FRAME%2C%20onEnterFrame)%3B%0D%09%09%09stage.addEventListener(MouseEvent.MOUSE_DOWN%2C%20onDown)%3B%0D%09%09%09stage.addEventListener(MouseEvent.MOUSE_UP%2C%20onUp)%3B%0D%09%09%09stage.addEventListener(Event.MOUSE_LEAVE%2C%20onUp)%3B%0D%09%09%7D%0D%09%09private%20var%20isDown%3ABoolean%20%3D%20false%3B%0D%09%09private%20function%20onDown(e%3AMouseEvent)%3Avoid%20%7B%0D%09%09%09isDown%20%3D%20true%3B%0D%09%09%7D%0D%09%09private%20function%20onUp(e%3AEvent)%3Avoid%20%7B%0D%09%09%09isDown%20%3D%20false%3B%0D%09%09%7D%0D%09%09private%20function%20onEnterFrame(e%3AEvent)%3Avoid%20%7B%0D%09%09%09if%20(%20!stage%20)%20return%3B%0D%09%09%09var%20current%3AParticle%20%3D%20this.p%3B%0D%09%09%09var%20p%3APoint%20%3D%20isDown%3Fnew%20Point(stage.mouseX%2C%20stage.mouseY)%3Anull%3B%0D%09%09%09do%7B%0D%09%09%09%09current.update(p)%3B%0D%09%09%09%7D%20while%20(%20current%20%3D%20current.next%20)%0D%09%09%09bd.lock()%3B%0D%09%09%09bd.applyFilter(bd%2C%20bd.rect%2C%20new%20Point()%2C%20new%20ColorMatrixFilter(%5B%0D%09%09%09%090.1994%2C%200%2C%200%2C%200%2C%200%2C%0D%09%09%09%090%2C%200.9994%2C%200%2C%200%2C%200%2C%0D%09%09%09%090%2C%200%2C%200.9994%2C%200%2C%200%2C%0D%09%09%09%090%2C%200%2C%200%2C%200.9994%2C%200%2C%0D%09%09%09%5D))%3B%0D%09%09%09bd.draw(stage)%3B%0D%09%09%09bd.applyFilter(bd%2C%20bd.rect%2C%20new%20Point()%2C%20new%20BlurFilter(4%2C%204%2C%202))%3B%0D%09%09%09bd.unlock()%3B%0D%09%09%7D%0D%09%09%0D%09%7D%0D%09%0D%7D%0Dimport%20flash.display.*%3B%0Dimport%20flash.geom.Point%3B%0D%0Dclass%20Particle%20extends%20Sprite%20%7B%0D%09public%20var%20next%3AParticle%3B%0D%09private%20var%20vx%3ANumber%3B%0D%09private%20var%20vy%3ANumber%3B%0D%09private%20var%20vz%3ANumber%3B%0D%09public%20function%20Particle()%20%7B%0D%09%09graphics.beginFill(0x8888%7C%200xFFFFFF%20*%20Math.random()%2C%201)%3B%0D%09%09graphics.drawRect(-1%2C%20-1%2C%202%2C%202)%3B%0D%09%09init()%3B%0D%09%7D%0D%09private%20function%20init()%3Avoid%7B%0D%09%09var%20theta%3ANumber%20%3D%20Math.random()%20*%20Math.PI%20*%202%3B%0D%09%09var%20phi%3ANumber%20%3D%20Math.random()%20*%20Math.PI%3B%20phi%20%3D%20-%20Math.PI%20*%200.35%3B%0D%09%09%2F%2F%20x%2Cy%2Cz%3A%20%E5%88%9D%E6%9C%9F%E4%BD%8D%E7%BD%AE%E3%81%AE%E5%8D%98%E4%BD%8D%E3%83%99%E3%82%AF%E3%83%88%E3%83%AB%0D%09%09var%20x%3ANumber%20%3D%20Math.cos(theta)%3B%20%2F%2F%20%E6%9C%80%E5%88%9D%E3%81%8B%E3%82%89%20x%20%E3%82%92%E4%BD%BF%E3%81%86%E3%81%A8%E3%81%AA%E3%81%AB%E3%81%8B%E3%81%8A%E3%81%8B%E3%81%97%E3%81%84%0D%09%09var%20y%3ANumber%20%3D%20Math.sin(theta)%20*%20Math.cos(phi)%3B%0D%09%09var%20z%3ANumber%20%3D%20Math.sin(theta)%20*%20Math.sin(phi)%3B%0D%09%09%2F%2F%20px%2C%20py%2C%20pz%3A%20%E3%83%A9%E3%83%B3%E3%83%80%E3%83%A0%E9%80%9F%E5%BA%A6%0D%09%09var%20px%3ANumber%20%3D%20Math.random()%20-%200.5%3B%0D%09%09var%20py%3ANumber%20%3D%20Math.random()%20-%200.5%3B%0D%09%09var%20pz%3ANumber%20%3D%20Math.random()%20-%200.5%3B%0D%09%09%2F%2F%20i%3A%20%E9%80%9F%E5%BA%A6%E3%81%AE%E5%8E%9F%E7%82%B9%E6%96%B9%E5%90%91%E3%81%AE%E6%88%90%E5%88%86%E3%81%AE%E5%A4%A7%E3%81%8D%E3%81%95%0D%09%09var%20i%3ANumber%20%3D%20px%20*%20x%20%2B%20py%20*%20y%20%2B%20pz%20*%20z%3B%0D%09%09px%20-%3D%20i%20*%20x%3B%0D%09%09py%20-%3D%20i%20*%20y%3B%0D%09%09pz%20-%3D%20i%20*%20z%3B%0D%09%09%0D%09%09%2F%2F%20i%3A%20%E3%82%B8%E3%83%A3%E3%82%A4%E3%83%AD%E3%81%AE%E8%BB%B8%E6%96%B9%E5%90%91%E3%81%AE%E6%88%90%E5%88%86%E3%81%AE%E5%A4%A7%E3%81%8D%E3%81%95%0D%09%09i%20%3D%20py%20*%20Math.sin(phi)%20-%20pz%20*%20Math.cos(phi)%3B%0D%09%09py%20-%3D%20i%20*%20Math.sin(phi)%3B%0D%09%09pz%20%2B%3D%20i%20*%20Math.cos(phi)%3B%0D%09%09%0D%09%09var%20p%3ANumber%20%3D%201%20%2F%20Math.sqrt(px%20*%20px%20%2B%20py%20*%20py%20%2B%20pz%20*%20pz)%3B%0D%09%09px%20*%3D%20p%3B%0D%09%09py%20*%3D%20p%3B%0D%09%09pz%20*%3D%20p%3B%0D%09%09%2F%2F%20px%2C%20py%2C%20pz%3A%20%E6%AD%A3%E8%A6%8F%E5%8C%96%E5%AE%8C%E4%BA%86%0D%09%09%0D%09%09if%20(%20(x%20*%20py%20-%20y%20*%20px)%20%3E%200%20)%20%7B%20%2F%2F%20%E5%BA%A7%E6%A8%99%E3%81%A8%E9%80%B2%E8%A1%8C%E6%96%B9%E5%90%91%E3%81%AE%E5%A4%96%E7%A9%8D%E3%81%AEz%E5%BA%A7%E6%A8%99%0D%09%09%09px%20*%3D%20-1%3B%0D%09%09%09py%20*%3D%20-1%3B%0D%09%09%09pz%20*%3D%20-1%3B%0D%09%09%7D%0D%09%09%2F%2F%20%E5%90%91%E3%81%8D%E3%82%92%E6%8F%83%E3%81%88%E3%81%9F%0D%09%09%0D%09%09var%20r%3ANumber%20%3D%20130%2BMath.random()%20*%20Math.random()*130%3B%20%2F%2F%20%E5%88%9D%E6%9C%9F%E5%8D%8A%E5%BE%84%0D%09%09var%20v%3ANumber%20%3D%20Math.sqrt(r)*0.185%3B%20%2F%2F%20%E5%88%9D%E6%9C%9F%E9%80%9F%E5%BA%A6%0D%09%09this.x%20%3D%20232%20%2B%20r%20*%20x%3B%20%2F%2F%20232%3Awonderfl%E7%9A%84%E4%B8%AD%E5%BF%83%E5%BA%A7%E6%A8%99%0D%09%09this.y%20%3D%20200%20%2B%20r%20*%20y%3B%0D%09%09this.z%20%3D%20r%20*%20z%3B%0D%09%09vx%20%3D%20px%20*%20v%3B%0D%09%09vy%20%3D%20py%20*%20v%3B%0D%09%09vz%20%3D%20pz%20*%20v%3B%0D%09%09this.blendMode%20%3D%20%22add%22%3B%0D%09%7D%0D%09public%20function%20update(p%3APoint)%3Avoid%20%7B%0D%09%09x%20%2B%3D%20vx%3B%0D%09%09y%20%2B%3D%20vy%3B%0D%09%09z%20%2B%3D%20vz%3B%0D%09%09if%20(%20!p%20)%20p%20%3D%20new%20Point(232%2C%20200)%3B%0D%09%09var%20px%3ANumber%20%3D%20x%20-%20p.x%3B%0D%09%09var%20py%3ANumber%20%3D%20y%20-%20p.y%3B%0D%09%09var%20r%3ANumber%20%3D%201000%20%2F%20Math.pow(px*px%2Bpy*py%2Bz*z%2C1.5)%3B%0D%09%09vx%20-%3D%20px%20*%20r%3B%0D%09%09vy%20-%3D%20py%20*%20r%3B%0D%09%09vz%20-%3D%20z%20*%20r%3B%0D%09%09%0D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if(%20x%20%3E%201465%20%7C%7C%20x%20%3C%20-1000%20)%7B%0D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20init()%3B%0D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0D%09%7D%0D%7D