FC2ブログ
汎用ヒト型決戦遊具はじめました。
【集中砲火スイッチ】
2008年10月30日 (木) | 編集 |

統合整備計画。今回はグリズグース(ラスティネール)などにも実装した集中砲火スイッチです。

滅多にカノンが当たらない二脚やホバーなどの転倒のチャンスを見逃さず、
全員で一気にカノンを集中したい場合などに有効です。
以前書いたものを若干シェイプアップしております。所要約10チップ。



【集中砲火スイッチ】

A:機体認識番号&集中砲火発動スイッチ
B:現在のTG認識番号キープ用カウンタ
Ch1:機体認識番号&集中砲火発動スイッチ

[00]カウンタA:Ch1(発動スイッチ)を受信

[01]カウンタA=0か?Y→[08]へ
↓N           (--集中砲火モードオン!--)
[02]カウンタB:TG認識番号(--現在のTGをキープ--)

[03]ターゲットBが被弾中か?N→[05]へ
↓Y
[04]射撃→[08]へ

[05]カウンタA←0(--集中停止信号をAに代入--)

[06]カウンタA:Ch1に送信

[07]カウンタBをTGロック


[08]TGが被弾中か?N→(外へ)
↓Y           (--集中砲火モード発令!--)
[09]カウンタA:TG認識番号

[10]カウンタA:Ch1に送信

(その他、状況判断の後、再度[00]を踏む)

※TGの被弾を検知次第、Ch1に信号を送ります。
 僚機は常にCh1を受信し、信号が1以上なら敵機が被弾と判断し、
 その信号を認識番号とするTGを狙います。
 TGの被弾が終了次第、Ch1に0を送信し、
 各自、対応すべきターゲットへと戻ります。



モンハンですが、ウカムを4人で閃光玉で羽目倒し、一応の目標をクリアできました。
CHPに戻りつつありますが、対空があいかわらず厳しいですね!
ライさんの対空PGをより省略したカタチで搭載できないかと悪戦苦闘中であります。

スポンサーサイト



【仰角判断射撃】
2008年10月29日 (水) | 編集 |

今回はながらくお世話になっております「cos仰角判断射撃」であります。
ChipCodexの方にもまとめてありますが、改めてモジュールとして最小限のカタチにしてみました。
改めて見てみると、4チップとこれまたコンパクトです。
もちろん、このような細かいチップの積み重ねが、重鈍なプログラムを生んでしまうわけですが・・・。



【仰角判断射撃】

[00]一番近い飛行型をターゲット

[01]カウンタA=TGまでの距離(直線距離)

[02]カウンタB=TGまでのXY距離

[03]カウンタB=B×1.4(--1.4はアラクネ用の定数--)

[04]カウンタA<=カウンタBならば N→(外へ)
↓Y     ↓N
[05]射撃



PSP3000ですが、画面の色がメチャメチャで心配しましたが、元のPSPの画面に近い色の設定にも出来ました。それでもまだ色がちょっと変な感じですが、なかなかに満足であります。

【チーム連携定期ミサイル】
2008年10月28日 (火) | 編集 |

今回は、チーム連携定期ミサイルです。
これはnas_B氏にアドバイスを頂いたものです。
普通の定期ミサイルも念のため書きました。



【チーム連携定期ミサイル】

D:次の発射時刻
Ch1:次の発射時刻(チームで共有)

[00]ミサイルの残弾があるか?N→(外へ)
↓Y
[01]カウンタA=現在時刻

[02]STOP 1/30(--※03~06を1フレーム内で実行させるため--)

[03]カウンタD:Ch1(次の発射時刻)を受信

[04]カウンタA>カウンタDか? N→(外へ)
↓Y
[05]カウンタA=A+[発射インターバル時間]

[06]カウンタA:Ch1に送信

(ミサイル発射へ)

※チーム内で定期ミサイルの時間を共有し、
 一度に1機だけにミサイルを発射させます。
 集中ロックでECMを消耗させる場合などに。



【定期ミサイル】

D:次の発射時刻

[00]ミサイルの残弾があるか?N→(外へ)
↓Y
[01]カウンタA=現在時刻

[02]カウンタA>カウンタDか? N→(外へ)
↓Y
[03]カウンタD=現在時刻(--※この行は無くても動作--)

[04]カウンタD=D+[発射インターバル時間]

(ミサイル発射へ)

※ミサイル発射を一定の間隔で行うようにします。
 ECM中の相手に連射するのを防ぎます。

【シンクロ射撃】
2008年10月28日 (火) | 編集 |

新連載のモジュールシリーズ。
シンクロ射撃は改めて見ると制御部分が3チップと我ながらコンパクトです。
連射速度を抑えるギミックとしても重宝しそうです。



【シンクロ射撃】

[01]カウンタAに経過時間を取得

[02]カウンタA=mod 1 (この数字が射撃間隔)

[03]カウンタA=0? N→(外へ)
↓Y 
[04]射撃(狙撃1発) 

(外へ)

※味方同士の射撃タイミングを同調させます。
 また、射撃間隔を長くし、連射を抑えます。

【先回り旋回】
2008年10月27日 (月) | 編集 |

「(脳内)統合整備計画」を本格始動します。
マングレオンをゼータ世代にステップアップさせるには欠かせない計画であります。



これまた自分用のメモであります。
CHPのPG作成でよく使うマクロというかモジュールを、
最小限かつ分かりやすい形で保管してみようと思いました。

表記形式は、このブログ内でもよく使っていたこの昔なつかしのBASIC風味です。
チップ配列の画像で保存すると、カタチにとらわれやすくなりますし、
CHPプログラムの表記にはなかなか向いていると思います。
というのは、後付の理屈で、この形式になる最大の理由は、
自分が使ったことのある唯一のPG言語が、MSX時代のBASICだからです。
(ちなみに、「MSX」というのは見栄で、持ってたのはSC3000でした。)



さらに本音を言えば、モンハンのやりすぎで自分のプログラムが読めなくなってしまったというのがあります。
マングレオンの機能を理解するためにも、この作業が必要になってしまったわけであります。
次の大会には是非最新機体で参加したいものです。



大事なのは、マクロのタイトル、そして機能が文章で直感的に書いてあることです。
第一弾は先回り旋回。
こんな形式を雛形に保存していこうと思います。

--



【先回り旋回】

[00]一番近い敵(車両など)をターゲット

[01]TG位置=背後120度角内?N→(外へ)
↓Y
[02]発射物接近中?Y→(外へ:回避ルーチンへ)
↓N
[03]TGからの自機位置=右半円内?
↓Y     ↓N
[04]左旋回/[05]右旋回
↓      ↓
(その他、状況判断の後、再度[01]を踏む)

※自機の周囲を高速旋回するTGを捉えるため、
 逆方向に旋回し、TGを捉える。