「PhysicalPointクラス」を利用して、波を表現してみた。
【制作課程】
ステージサイズは300x100。背景は黒。
5x100の矩形(色:0x6699FF)を「wave」という名前でMC化。ステージから外し、ライブラリでリンケージ設定(識別子:wave)。
以下のコードをタイムライン第1フレームに記述。
//波の数
var wave_num:Number=50;
var pt=new Array();
for(var i:Number=0;i<wave_num+1;i++){
pt[i]=new PhysicalPoint(Stage.width/2,Stage.height/2,0.9);
}
function loop():Void{
clear();
for(var i:Number=0;i<wave_num;i++){
if(i==0){
pt[i].setKasokudo(0,(_root._ymouse-pt[i].y)*10);
}else{
pt[i].setKasokudo(0,(pt[i-1].y-pt[i].y)*10);
}
if(pt[i].y<0){pt[i].y=0};//上制限
if(pt[i].y>100){pt[i].y=100};//下制限
var syoki:Object={_x:Stage.width/wave_num*i,_y:pt[i].y};
var wave:MovieClip=_root.attachMovie("wave","wave"+i,i,syoki);
}
_root.lineStyle(3,0x6699FF);
_root.moveTo(0,pt[0].y);
for(var i:Number=1;i<wave_num+1;i++){
_root.lineTo(Stage.width/wave_num*i,pt[i].y);
}
}
setInterval(loop,33);

コメントする