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

前のページへ戻る 解剖記のメニューへ戻る 次のページへ進む