WaterEffect(JP)
今年初となるflashの記事はWaterEffect、いわゆる波紋効果。bitmapで波紋を表現する方法は簡単な方法がある。もともとビットマップデータはx,y方向のマトリックス状で構成されている。波というのは平面グラフィックスの場合、時間軸を加えた3次元方向に行われるので、flashの場合frameの移行に沿ってbitmapに変化を加えればよい。bitmapの場合、waveの公式はもともと定義されていて、ある点とその上下左右の点に対して波の高さを考えればよい。大きさmaxx,maxxyのbitmapでは、新しい時間_nw、座標x,yの_waveの大きさnは、現在の時間_ctと減衰係数_dampより次のようにもとまる。
for(var y=1;y<_maxy;y++){ for(var x=1;x<_maxx;x++){ n=(_wave[_ct][y][x-1]+_wave[_ct][y][x+1]+_wave[_ct][y-1][x]+_wave[_ct][y+1][x])/2-_wave[_nw][y][x]; n=n-(n/_damp); _wave[_nw][y][x]=n; } }処理が重いのでプレビューできる方(>1GHz推奨)はどうぞ。
This text is replaced by the Flash movie.