太鼓の鉄人で理解できないコードがあります。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: 太鼓の鉄人で理解できないコードがあります。

Re: 太鼓の鉄人で理解できないコードがあります。

#4

by sakurasaku » 9ヶ月前

理解できました。ありがとうございます。

Re: 太鼓の鉄人で理解できないコードがあります。

#3

by Dixq (管理人) » 9ヶ月前

もう10年位前のコードなので定かではないですが、おそらく1フレームの時間かと思います。
60FPSで動作しているゲームにおいて、1フレームの時間は1/60秒、つまり16.6666....[ms]を意味します。
1/60に現在のフレーム数をかけるとあるべきゲーム時間が出てきます。
ゲームの中で計算上進んでいる時間とリアルで進んだ時間を一致させないと音ゲーが成立しないので、
その調整をしながらゲームを制御することになります。
関数名から察するにbulletつまり弾、つまりダンレボでいう矢印に相当するものが、何フレーム目に出現するかを計算して登録しているものと思います。

Re: 太鼓の鉄人で理解できないコードがあります。

#2

by sakurasaku » 9ヶ月前

すみません。途中で途切れてしまいました。コメントで指しているところの、sc0, sc1, cntが何を表す変数なのかがわかりません。解説お願いします。

太鼓の鉄人で理解できないコードがあります。

#1

by sakurasaku » 9ヶ月前

太鼓の鉄人のコードを理解しようとプログラムを読んでいるのですが、

コード:

void input_bullet(){
	int k;
	double sc0=stage.cnt*16.6666666666, sc1=(stage.cnt+1)*16.6666666666; //←
	double cnt=music.term*humen[stage.humen_cnt].cnt; //←ここです
	if(sc0<=cnt && cnt<sc1){
		if((k=serch_bullet())!=-1){
			enter_bullet(k,humen[stage.humen_cnt].knd-1,stage.spd);
		}
		stage.humen_cnt++;
	}
}
bullet.cppの

ページトップ