« [解剖記]敵の生成と移動アルゴリズム2 | トップページ | [解剖記]敵と自機弾の当り判定 »

[解剖記]敵の生成と移動アルゴリズム3

続いて敵3のアルゴリズムです。基本は今までの敵と全く同じです。問題はアイデアということになってきますね。「Aeolianation」で一番気に 入ってる敵は、3面で出てくる目の前に貼りつく奴だったりします。それ自体に攻撃力は無いものの、まるで盾のように自機の攻撃を防いでしまうという滅私奉 公ぶりが何とも言えませんね^^


■ 敵3
*enemy3
pos ex.cnt,ey.cnt : gcopy 2,350,0,50,50
dx=mx-ex.cnt
if et.cnt<2 {
if dx<0 {
exv.cnt=-3
}
else {
exv.cnt=3
}
}
if ey.cnt>200 : eyv.cnt--
if et.cnt>20 : if ey.cnt<50 : eyv.cnt++
if ey.cnt>200 : gosub *tamaborn
if et.cnt>20 : if ey.cnt<50 : gosub *tamaborn
ex.cnt=ex.cnt+exv.cnt
ey.cnt=ey.cnt+eyv.cnt
if ex.cnt<-50 : ef.cnt=0
if ex.cnt>640 : ef.cnt=0
if ey.cnt<-50 : ef.cnt=0
if ey.cnt>480 : ef.cnt=0
return

左右の移動方向は敵2と同じように、生成直後に決まります。後は、上下にサインカーブを描いて飛んでいくだけです。カーブの頂点付近で弾を乱射するのも敵 2と同じです。敵2の場合はUカーブを描いてそのまま画面の上に消えてしまいますが、こいつの場合いつまでも画面に残ってるため、撃ちもらすとやっかいな ことになるのです。実は「Aeolianation」の1面のボスとほぼ同じ動きだったりします(画像も同じだけど)。「Aeolianation」の1 面のボスの場合、画面の左右の端にきたら、左右の運動量を反転させ、あたかも画面端でバウンドするような動きになっています。

ここまで3種類の敵のアルゴリズムを解説しましたが、いかがでしょう?生成されてからの時間であったり、自機との距離であったり、実際の座標であったりと、いろんな条件を使って動きを制御しているのがわかると思います。それほど難しくはないですよね?問題はアイデアです。

« [解剖記]敵の生成と移動アルゴリズム2 | トップページ | [解剖記]敵と自機弾の当り判定 »

2.解剖記」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/67538/57445609

この記事へのトラックバック一覧です: [解剖記]敵の生成と移動アルゴリズム3:

« [解剖記]敵の生成と移動アルゴリズム2 | トップページ | [解剖記]敵と自機弾の当り判定 »