マルチメディア技術
- 第1回 Flash概要(4月14日)
- 第2回 アニメーション基礎(4月21日)
- 第3回 アニメーション応用(4月28日)
- 第4回 シンボルとインスタンス基礎(5月12日)
- 第5回 シンボルとインスタンス応用(5月19日)
- 第6回 もぐらたたきゲーム1[タイムラインの制御](5月26日)
- 第7回 もぐらたたきゲーム2[プロパティの制御](6月2日)
- 第8回 りんごひろいゲームを作る1[関数とイベントハンドラ](6月9日)
- 第9回 りんごひろいゲームを作る2[インスタンスの指定と衝突判定](6月16日)
- 第10回 インベーダーゲームを作る1[インターバルとフラグ](6月23日)
- 第11回 インベーダーゲームを作る2[サウンドの使用1](6月30日)
- 第12回 MP3プレイヤーの作成[サウンドの使用2](7月7日)
第4回 ドラッグと衝突判定(10月20日)
本日の課題
- インスタンスのドラッグと衝突判定を使ったムービーを作成する
- サンプル:
- サンプルソースのダウンロード:081020_f.zip
インスタンスのドラッグ
- インスタンスのドラッグはstartDragメソッドを使う
- ドラッグの終了はstopDragメソッドを使う
- 例:
my_mc.onPress = function() { this.startDrag(); } my_mc.onRelease = function() { this.stopDrag(); } my_mc.onReleaseOutside = function() { this.stopDrag(); } - オプションでドラッグできる領域を指定できる
- 例:
my_mc.onPress = function() { this.startDrag(false, 0, 0, 100, 200); } - 同時に2つ以上のインスタンスをドラッグすることはできない
衝突判定
- インスタンスの衝突判定はhitTestを使うことで簡単に判定できる
- 例1:インスタンス同士が接触しているか判定する
if (target_mc.hitTest(my_mc)) { trace("hit!"); } - 例1ではhitTestの有効領域がインスタンスを囲む矩形であることに注意
- 例2:あるインスタンスの中心点が他のインスタンスの中に入っているか判定する
if (target_mc.hitTest(my_mc._x, my_mc._y, true)) { trace("hit!"); } - 例2では3番目の引数をtrueにすることでインスタンスのシェイプを有効領域とすることが可能
- 引数に使える座標はグローバル座標である点に注意
課題評価ポイント
- クラス定義ファイルが正しく作成できているか?(20点)
- クラス内でのイベントハンドラが正しく定義できているか?(20点)
- インスタンスのドラッグが正しく設定できているか?(20点)
- インスタンスの衝突判定が正しくできているか?(20点)
- 効果的なムービーが作成できたか?(20点)
ファイル名に全角文字や記号を使わないこと
Flashファイル(*.fla)とASファイル(*.as)を提出する
提出期限は授業日の週の水曜日の午後9時
ブログパーツ