wonderfl CHECKMATE 第2回目 (3) -実装2(頂点)-
2009/08/25 19:49 - AS3.0
イメージの複数三角形分割周りの次は、頂点についての話です。
頂点の挙動で実装しなければならないのは以下の3点。
- ドラッグできる
- 落下する
- 隣接する他頂点との間隔を一定に保つ
1. はひとまずおいて、2. と 3. に注目します。 これらには物理計算が必要になりますね。 ではここで神様のお力にすがりましょう。
取り出したるバイブルは "Foundation Actionscript 3.0 Animation: Making Things Move!"。
私は持ってませんけど、お持ちの方は翻訳版の「ActionScript 3.0 アニメーション」をご覧ください(以下、章題やページ数などは原書のものを示します)。
さて、バイブルを読んでも、上記二つを同時に満たすサンプルコードは記述されていません。 が、それぞれ単独ならば使えそうなサンプルコードがありますよ。それらを組み合わせれば目的の実装ができそうです。 さすが神様。ありがたやありがたや。
まずは重力落下の方。
Chapter 6 BOUNDARIES AND FRICTION の Bouncing(P159~)に関連して、出版元からダウンロードできるサンプルファイルの中に重力落下のコードがあります(ch06 フォルダ内の Bouncing2.as)。
これで落下が実装できますよ。
そのままもう少し本を読み進めてみましょう。
Chapter 7 USER INTERACTIVE: MOVING OBJECTS AROUND の Combineing dragging with motion code(P179~) に DragAndMove1.as というのが出ています。落下するボールを持ち上げられるようにするコードです。 ただし、このコードは見落としやすい点を、意図的に書いていない間違えたコードになっているので注意が必要。 完成版はサンプルファイルの ch07 フォルダの DragAndMove2.as です。
さらにちょっと読み進むと、持ち上げるだけでなく、投げることもできるようにしたコードが記載されています。 Throwing(P182~)にある Throwing.as です。
今回の Elastic Rectangle で使用する頂点のコードとしては、この Throwing.as を使ってみます。
それにより、頂点が具備すべき三つの仕様のうち「ドラッグできる」「落下する」の二つを備えることができました。
続く。