縦スクロールシューティング24:高速ループ番外編

高速ループ番外編

ここでは「高速ループに挑戦#2」からの続き「例題7/8/9」を扱います。ただし今回個別の例題にブログ上で解説は付きません。テーマを与えるので例を見て自由に作って、こりゃ無理だと思ったらサンプルをダウンロードして細かいイベントを見てくださいネという趣旨になります。今回の例題には基本として共通の課題があります。


例えばフレームエディタ上で100個のオブジェクトをコピーして作ったとします。この100個のオブジェクトの中の「特別な一個」をあなたは瞬時に見分けて区別し、そのオブジェクトだけに的確に命令を出すことができますか?

オブジェクトはMMF2の内部的には固定値を持っているし変数も独自の値を持たせることができる。だけどそれは人間の目には見えねーから、見えるような仕組みを作ってやらないといけません。そして100個のオブジェクトの中に特別な数値を持っているものがあるとして、その中の一個をあるいは特別な数字を持っている全部を抽出したいのだけどこれはMMF2でどうしたら良いか。今回その答えが「高速ループを使え」ってわけです。

この例題をこなすためには、まず変数への代入の仕組みを覚えることと、ループ処理の中で常に「特定の一個」に対してだけ命令を出すための仕組みとコツとを覚えることです。100個あるオブジェクトから特定の一個に対してだけ命令を出すためには「高速ループ」と「高速ループのループインデックス」を利用します。

ちなみに高速ループだけが常に唯一の解決法ではなく、使用するビルド種類と目的に応じて別のエクステンションの助けを借りることもできます。日本語版ではまだ使えないけど「ForEach」とか、今回一部サンプルに使っている「Selcect Object」なんかも問題解決の一助になるはずです。しかし基本的にそれらが無くてもなんとかしちゃうのが「高速ループ」で、どんなビルド種類に持っていっても動かせる保証があるのは「高速ループ」だけ。だから「高速ループ」で解決できることはなるべくこいつにやらせたいってわけです。

例題#7

サンプルをダウンロード:サンプルにはSelect Objectを使った方法も含まれています

例題#8

サンプルをダウンロード:キーボード[1]=表示/[2]=非表示/[画面上をクリック]=オブジェクトの追加

例題#9

サンプルをダウンロード:オートデモ/コウモリが接近してくるスライムを退治します