2023年06月14日
Laboratoryテーマ6「自機に向かって飛んでくる敵弾」そのA
Laboratoryテーマ6「自機に向かって飛んでくる敵弾」そのAです。
前回は、考え方と計算式をやりました。
ただ、いざゲームに組み込むとなると、もう一つ考える必要があります。
前回の例は自機と敵の位置関係がX方向にも、Y方向にも+(プラス)位置でした。
しかし実際には、自機と敵の位置関係が逆だったりと、長さの計算結果がー(マイナス)の場合もあります。
ロジックを組む際には、「三平方の定理」を正の整数で計算するためにー(マイナス)をなくす必要があります。
そのため、エリアを4分割して考えます。
通常、エリアbヘ「0」。
Y軸長さ計算でー(マイナス)が出た場合は、ー(マイナス)を消しエリアbノ「1」を加える。
X軸長さ計算でー(マイナス)が出た場合は、ー(マイナス)を消しエリアbノ「2」を加える。
これで、計算結果の正の整数化とエリア分けができました。
その正の整数で「三平方の定理」を計算し、弾を移動する時にそれぞれのエリアに設定された符号を付け、弾を移動させます。
BASICで組むと、こうなります。
マシン語に変換しやすいように、あえて整数で組んでいます。
配列変数や、ONGOSUBも使っていません。
速度的にはBASICだとこんなもんですね。
弾発射時に、計算で一瞬止まってしまいます。
…これだけ時間かかっては駄目ですね…。
「L6SMPL.BAS」【ダウンロード】
以上、前回言った通り、テーマ2〜4が終わるまで、テーマ6「自機に向かって飛んでくる敵弾」は一旦保留します。
次回は、テーマ1から順次進めていきます。