カウンタ講座


カウンタとは任意の数値を保存しておく場所のことです。保存した後はその数値を元にカウンタ判断チップで様々な判断を行ったり、カウンタ指定TGロックや、カウンタ指定ガンサイト移動に使用することができます。
いずれにしろ効果的に利用することができれば、様々な場面で役立ちあなたのPGを強化してくれるでしょう。

定期ミサイル

定期ミサイルとは、については用語集を参照いただくとして、ミサイルに限らず、動き回りながら広範囲に地雷や機雷をばらまきたい、とか、ジャミングフォグの効果をできるだけ長く持続させたい、など、一定時間ごとに特定の行動をさせたい、なんてことはよくあります。

そこで、必要になるのがカウンタです。一般的には定期ミサイルを実装するためにはカウンタを二つ使います。以下が約5秒おきにミサイルを発射する場合の具体的なやり方。

  1. カウンタAに経過時間を取得
  2. (判定)カウンタAはカウンタB以上か?
    1. YES→ミサイルを発射→カウンタBに経過時間を取得→カウンタBに5を加算→次の処理へ
    2. NO→次の処理へ

カウンタAに入るのは「今の時間」
カウンタBに入るのは「ミサイルを撃った時間」
5加算されたカウンタBは「次に撃っていい時間」で、この場合は「ミサイルを撃った時間から5秒後」
「今の時間」と「ミサイルを撃った時間から5秒後」を比べて撃つか否かを決めている。

このルーチンをプログラムのどこでもいいので必ず通過するであろう場所に組み込みます。これで、約5秒おきにミサイルを発射するOKEの完成です。これは単独での実装例ですが、このカウンタBの値をチャンネルで送信し、味方と共有することで、チームで連携しての定期○○を実現することもできます。

集中ロック


敵チームのどれか一つの機体に対して、自チームの全ての機体のターゲットロックを集中すること。集中ロックの効果としては、敵の1機に対して多方向からの攻撃を浴びせて対応を難しくさせること。そうして早いうちに1機撃墜することが出来れば、数的優位を作り出せるので、戦いをさらに有利に進めることができるようになる。

集中ロックにはカウンタ以外にチャンネルを使用する必要があるため、「カウンタ」講座というテーマからは若干外れるが、使用頻度も高いためあえて紹介したい思います。

以下が具体的なやり方の一例。



  1. (判定)カウンタAは0か?YESなら2へ。Noなら5へ
  2. 最大範囲でターゲットロックして3へ
  3. カウンタAにターゲットの識別番号を代入して4へ
  4. チャンネル1にカウンタAの値を送信して8へ
  5. カウンタAにチャンネル1の値を受信して6へ
  6. カウンタAの値でカウンタ指定ターゲットロックして7へ
  7. (判定)ターゲットコードは0か?YES(ロックできてない)なら2へ。Noなら8へ
  8. メインの処理へ

ちょっと文字だけでは分かりにくいので、chpでの作例ですがご紹介します。イメージとしては http://dovecoo.seesaa.net/article/22447506.html こんな感じ。

基本的にはチャンネル1からカウンタAに受信した番号の機体をターゲットロックしますが、それができないときは自分で敵を探して、ロックできたらその番号をチャンネルに送信する、という感じです。

分散ロック

上記の集中ロックとは逆に自機のロックが被らないようにするプログラムです。
フリー状態の敵機を作りたくない場合や、敵機の情報収集を素早く行いたい場合等に使用します。
分散ロックには様々な実装方法が存在しますがここでは最も簡単な例を紹介します。


以上5チップです。
戦闘中の機体には1から6の識別番号が各機体に当てはめられます。

HOME
一番機(1)、二番機(2)、三番機(3)

AWAY
一番機(4)、二番機(5)、三番機(6)

home一番機を例にすると、

1:CNT-Aに1が入ります。
2:4以下なので+3します。
3:CNT-Aには4が入っているので敵機の一番機をTGロックします。

同様に他の機体でもそれぞれの値を採りロックするのでロックが被らない、というしくみになっています。

ただし、前提として
1.敵味方合わせ6機揃っていること。ハデス等がいる場合やどちらかの機体が撃墜されていると不具合が起こる可能性があります。
2.この方法は識別番号をもとにロックするので、フォーメーションによっては不利な位置取りになる恐れがあります。

スイッチ


スイッチとは切り替えるという意味です。onとoffです。例えば右にジャンプをし続けるといずれ壁にぶつかります。その位置では逃げられる方向が限られる他、そのまま壁に沿ってフィールドの隅に追いやられるかもしれません。
じゃあ壁が近づいたらエリア判断すればいいんじゃないか、とも考えられますが、それだけだと判定範囲から抜けたあとにまた壁側にジャンプすることになります。
これを解消するのが壁スイッチと呼ばれるものです。


上記画像が壁スイッチです。
ジャンプした後に壁があるかどうかを確認、壁があれば0または1を代入し次のジャンプする方向を切り替えます。

このプログラムは壁のみを見てスイッチするプログラムですが、実際に使用するならば壁はもちろん味方の位置、敵の位置、地雷、機雷etc...を見ながらジャンプする方向を切り替えることで散開したり、敵を囲んだり、地雷原から退避したりと様々な使い方が出来ます。
また、判断基準を増やすことで(チップは嵩みますが)一つの数字に二つ以上の意味を持たせることも可能です。
  • x以上or以下
  • 奇数or偶数
  • 3で割り切れるかどうか
  • etc...

その他



以下、続きます。続けてください。