流体力学ソース
昨日の流体力学のプログラム解説
起動:Aroe から「wing」をたどると見られる
基本事項
- onAppear 出現時に1回だけ行う動作(なくてもよい)
- onUpdate 毎フレームに行う動作
Wing.yb: 翼の部分.ついでに空気の出現(50粒)をしてもらっている.
- appear(オブジェクト) は,オブジェクトを出現させる.
- オブジェクトはXMLぽく書く.
- <クラス名 変数=初期値.../>
extends Actor; onUpdate { // フレームごとの処理 if(cnt<50) appear(); cnt++; } // 変数宣言 cnt=0;
Air.yb 空気の部分.えーと,跳ね返りの部分の説明は省略.
- %w=Root.wing は,ローカル変数 w に 翼を代入する
- Root は,画面上のオブジェクトを格納するオブジェクト
- %w の % は「ローカル変数を宣言します」という意味.
- w.getColorAt(x,y) は, wの色情報を読み出す.(x,y)は画面上の座標
extends Actor; onUpdate { // フレームごとの処理 x+=vx+spd; y+=vy; %w=Root.wing; if (w.getColorAt(x,y)>0) { bounce(); } if (y>w.y+40) y-=80; if (y<=w.y-40) y+=80; if (x>350) x-=250; if (x<100) vx=0; } bounce { %w=Root.wing; %sx=x-vx-spd; %sy=y-vy; for (%i=0 ; i<360 ; i+=45) { if (w.getColorAt(x+cos(i)*5,y+sin(i)*5)>0) { vx-=cos(i);vy-=sin(i); } } x=sx;y=sy; } spd=5; // 変数宣言 onAppear { vy=rnd(5)/5; vx=rnd(5)/5; } int vx; int vy;