- 2007年12月28日 00:32
- flash
久々に as3 触りました 。で、その成果が下にあるGravity です。
今回は『封神演義』に登場する宝貝、重力を操る盤古旛をモデルにして何かできないかなーと思って勢いで作ってみました。結果は、見ての通り盤古旛とは似ても似つかないモノになってしまいました(-_-;)
重力と全く関係ない代物ですが、作成当初のProject名・Class名を変更するのが面倒だったのでそのままにしています。
Gravity の遊び方は簡単です。白い領域を適当にクリックすれば、じわじわと模様が浮かび上がってきます。それから、上に見え隠れしているメニューから設定の変更もできます。左から、画面消去用のClearボタン、点同士の線分の表示・非表示切り替えボタン、色選択ボタン(ブラック、シアン、イエロー、マゼンタの計4つ)となっています。
メインの処理は Edge をOn にすれば分かると思いますが、一応簡単に説明しておきます。
- クリックした座標を原点とし、点を中心に円を描画。
- 1 で描かれた円のアルファを1.0とする
- 点からランダムで数本の枝を伸ばし、1同様に円を描画。
- 3 で描かれた円のアルファを、ワンステップ前より小さくする。
- 3, 4 を規定深度に到達するまで繰り返す(今回は深度を4とした)。
以上の処理をクリックされた座標ごとに行っています。
たったこれだけの処理でうまい具合に分散してくれるので、意外と使えるかもしれませんね。僕は試していませんが、任意の2点間の距離や円の半径、線分の交点を考慮してやれば重ならないグラフができると思います。
汚いコードなんですが、一応関連ソースやプロジェクトを置いておきます。
gravity.zip(FlashDevelop用プロジェクト&as3ソース)
- Newer: heteml についての雑感
- Older: 自分だけの町
