ブロックを作る
いよいよブロックを作ります。
ペイントツールを使ってブロックを描きます。
ブロックを選択している状態にして、情報パネルから幅を40 高さを15にします。
ブロックを選択ている状態にして、F8キーを押してブロックをムービークリップにします。
Flash5なら、メニューから→挿入→シンボルに変換
MX、MX2004なら、メニューから→修正→シンボルに変換
ムービークリップの中に入って、ブロックの中心をムービークリップの原点に来るように整列パネルで調整します。
ブロックを配置する
ここでは、ブロックをFlash上にあらかじめ配置しておく静的に配置する方法と、ゲームが始まってからアクションスクリプトでブロックを配置する動的に配置する方法の2通りがあります。
とりあえず難しいのは嫌だという方は先に解説する方法でブロックを配置してください。後に解説する方法は少し難しいですが、無駄が無いため慣れてくるとよく使うテクニックですので
ぜひ挑戦してみましょう。
ブロックをあらかじめ配置する
ブロックをFlash上にあらかじめ配置しておきます。この方法は非常に手間がかかりますが簡単にできます。
とりあえずブロックのムービークリップをライブラリから何度もドラッグしてきて下のように配置します。
配置し終わったらこのムービークリップにインスタンス名を付けていきます。
左上から右方向に、block0、block1、block2…という順番で
brock"数値"という名前を付けていきます。
Flash5の場合、メニューから→ウインドウ→パネル→インスタンス
FlashMX、FlashMX2004の場合
下の図のような順番で31番までインスタンス名を付けていきます。
数値を付ける時に10より小さい数値を block00, block01, block02 … としないように注意してください。また数値は必ず 0 から 1 ずつ増やして順番に割り当ててください。
ブロックを動的に配置する
ActionScriptを使ってブロックを配置する方法です。まず、ライブラリにあるブロックのムービークリップにカーソルを合わせて右クリックで
リンケージプロパティを選択します。
ダイアログが開いたら、以下のように設定します。識別子に block と名前を付けます。
Flash5の場合
FlashMX、FlashMX2004の場合
このフレームのタイムラインに以下のアクションスクリプトを記述します。(玉のムービークリップに記述した onClipEvent (load) {} の続きに書いてもかまいません)
玉とバーとの当たり判定
|
for(i=0;i<32;i++){
_root.attachMovie( "block", "block"+i, i );
eval("_root.block"+i)._x = i % 4 * 40 + 40;
eval("_root.block"+i)._y =Math.floor( i / 4 ) * 15 + 25;
}
|
ムービークリップのターゲット.attachMovie()
- ライブラリにあるリンケージプロパティで名前を付けたムービークリップを flash にコピーします。
1番目の引数にリンケージプロパティで付けた識別子名を指定、 2 番目の引数にflashにコピーしてきたときのインスタンス名、3 番目の引数に
深度を指定します。同じ深度に2つのインスタンスを配置する事はできません。
eval()
- 引数内で作った文字で、変数や配列、ムービークリップ、関数などを指定する事ができます。ただしFlashMX以降では、
この関数を利用して変数を作成する事はできません。
数値 % 数値
-
割ったときに出るあまりを求めます。例えば 36 % 10 だと 6 が求まります。
i % 4 の場合 i にランダムな整数値がくるなら、解は 0, 1, 2, 3のどれかになります。
Math.floor()
- 引数内の小数点を切り捨て、整数値を返します。
これでムービーを書き出すとブロックが配置されることが確認できます。
|