カウントダウンについて(弾幕もあるよ)

アバター
Tatu
記事: 445
登録日時: 14年前
住所: 北海道

カウントダウンについて(弾幕もあるよ)

投稿記事 by Tatu » 14年前

最初にコメント返信

>SAIさん
私の目は二つしかありませんし、それぞれを独立に動かすことはできませんよw

>qweaさん
もう一人のルナクリア者ってラストワードをあっさり破ったと書かれていたあの人ですね。

ルナを何回の挑戦でできるようにしたのかはわかりませんがルーミアに遭遇しただけで180回以上です。
前半で結構やられているので挑戦回数は全部で300回を超えているんじゃないでしょうか。





龍神録プログラミングの館は更新がまるでない。支館のほうも同様。おそらく
龍神録プログラミングの館の内容をまとめた本を出す時に大幅な改装が予想されるためだと思われる。
単に細かい要素など今までの内容を理解していればできるから勝手に追加しろということかもしれないが。
実際に改装があるとすれば今までの龍神録プログラミングの館は
龍神録プログラミングの旧館という名前に変更され、旧シューティングの館と同様の
扱いになると思われる。次の宝探しイベントはこのページ内に反転文字がいくつか隠され、
それをならべかえて管理人にメールを送るという内容になるであろう。


そんな推測はさておき唐突ですが「龍神録プログラミングの館 追記編?章 的な何か」をお送りいたします。
興味ない方はお手数ですが下の動画まで飛ばしてください。

ボス弾幕のカウントダウン

龍神録の弾幕って制限時間が表示されていますよね。
そして耐久弾幕の時って残り時間がすごく気になりますよね。

ということで今回はそれの実装について書いてみます。

まず数字の画像が必要ですね。すでに他の章でスコアに数字画像を使っていますが
今回は別の画像を使います。

load.cppのload()に以下を追加

LoadDivGraph( "../dat/img/num/1.png" , 10 , 10 , 1 , 15 , 19 , img_num[1] ) ;

さて、ボスの弾幕の残り時間はboss.endtimeであらわしているわけですが
これはフレーム数なのでこれを60でわれば残り秒数を表すことになります。
しかし、龍神録では最後に表示されるのは1であるため、60で割った値に1を足した値を表示します。

あとは描画処理を書いていきます。
なお、残り時間が99より大きい時は100と表示することにしています。

graph.cppのgraph_board_states()に以下を追加

CODE:

	int endtime=boss.endtime/60+1;//最後に表示される数字を1にするため1を足す

	if(boss.flag == 1){//もしボスがいたら
		if(endtime > 99){//残り時間が99よりおおきい時は100と表示する
			DrawGraph(FX+FMX-15,FY+FMY,img_num[1][0],TRUE);
			DrawGraph(FX+FMX-30,FY+FMY,img_num[1][0],TRUE);
			DrawGraph(FX+FMX-45,FY+FMY,img_num[1][1],TRUE);
		}
		else{
			DrawGraph(FX+FMX-15,FY+FMY,img_num[1][endtime%10],TRUE);
			if(endtime/10 != 0){//十の位が0なら表示しない
				DrawGraph(FX+FMX-30,FY+FMY,img_num[1][endtime/10],TRUE);
			}
		}
	}
これでボスの弾幕の残り時間が表示されるようになったはずです。


しかし、これだけでは足りない!残り時間が少ないことを知らせる効果音が
特に耐久弾幕には欠かせないのである!

ということで続けて効果音をつけていくことにします。

まずは効果音のロードから

load.cppのload()に以下を追加
sound_se[12]=LoadSoundMem("../dat/se/endtime.wav");

番号は今までに使ってないものから選ぶこと。ここでは12を使っています。


さて、完成品である四聖龍神録を起動していつカウントダウンに効果音があるかを見てみましょう。
見ましたね?カウントが7になったときから一秒ごとになっているのがわかりましたね?
そして、弾幕終了時にもなっていますね?

そこで以下のように効果音のフラグを立ててやります。

boss_shot.cppのboss_shot_calc()に以下のように追加

CODE:

	endtime--;
	if(boss.endtime<=7*60 && boss.endtime%60==0){
		se_flag[12]=1;
	}
	if(boss.endtime<0)
		boss.hp=0;
これで効果音が鳴るようになりましたね。


耐久弾幕をうつときに弾幕の時間を変えたいときは
その弾幕関数においてboss_shot.cntが0のときにboss.endtimeを変えればよいでしょう。

個人的にはどの弾幕でも待機中に100と表示されるのが気になりますがそういう仕様です。

次回、「弾を得点アイテムに変える処理」

それ以降は予定なし。

勝手にこんなものかきやがってと思った方はブラウザの戻るを押して戻ってね(早口のゆっくり声)


今回の弾幕
「線断バラバラ事件」+カーブする蝶弾弾幕
[nico]http://www.nicovideo.jp/watch/sm13450676[/nico]

一つ目の弾幕は龍神録の「パーガトリーシールド」と弾幕テスターの「プレシステントチェイサー」から。
テーマは「分断境界線」。3種類のよけ方を試しています。

二つ目の弾幕は蝶弾弾幕。

弾幕関数はこちら
► スポイラーを表示

コメントはまだありません。