描画間隔について

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

描画間隔について

#1

投稿記事 by チルチル » 16年前

東方とかだと描画間隔の変更ができるようなんですが

この場合の「描画間隔」とはどういう意味なんでしょうか?

私が思い付くのは移動処理などの関数と描画処理の関数に別れていて
通常は両方とも毎フレーム実行するけど、描画間隔を2分の1とか3分の1にすると
描画関数と画面更新とFPS処理(ゲームプログラミングの館fps,wait_fanc関数など)の方は
2周に1回とか3周に1回だけ実行する事ですが

毎フレーム、ウェイトをかけないと実行速度が上がってしまうし
ゲームプログラミングの館のコードを使用させていただいてるので
FPSも実行しないとうまく動かないんですよね・・

描画はしていないけど描画回数にはカウントした方が良いのでしょうか・・?

dic

Re:描画間隔について

#2

投稿記事 by dic » 16年前

管理人さんのサンプルを見てませんので、私なりの回答になりますが
以下のソースのようなことではないでしょうか?
#include <stdio.h>

void	hoge(int i)
{
	static	bool	b = true;

	if( b )
		printf( "%d\n", i );

	if( b )	b = false;
	else	b = true;
}
void	main()
{
	int	i;
	for( i=0; i<10; i++ )
		hoge(i);
}

チルチル

Re:描画間隔について

#3

投稿記事 by チルチル » 16年前

見たところ呼ばれるたびに実効、非実行が切り替わる見たいですね
う~んちょっと違いますね・・

具体的に言うと描画間隔を2分の1にした時に実行頻度を2分の1にしなくてはいけない処理は何かって事です

とりあえず描画処理と画面更新は2分の1にしないといけないと思うんですが
他にも2分の1にしなくてはいけない処理があるかどうかがよくわからないんです・・

ねこ

Re:描画間隔について

#4

投稿記事 by ねこ » 16年前

if( Time % 2 == 0 ) {
	DrawFlg = true;
	ClearDrawScreen();
} else {
	DrawFlg = false;
}

// 計算処理処理

// 画面へ反映
ScreenFlip();
でいいんだと思うんだけど。
偶数フレームの時に描画して、奇数フレームの時は偶数フレームの表示に対してクリアもしないし描画もしない。
処理終了と共にディスプレイに偶数フレームの時と同じ画面を出力する。
こうすると描画は30FPS、処理は60FPSになる。

DrawFlgってのは各描画関数の頭でこのフラグが立って居たら関数を抜けるようにするためのフラグという認識で。

チルチル

Re:描画間隔について

#5

投稿記事 by チルチル » 16年前

あ~なるほど

と言う事は描画処理と画面クリア処理だけをスキップすれば良いんでしょうか?

御津凪

Re:描画間隔について

#6

投稿記事 by 御津凪 » 16年前

> と言う事は描画処理と画面クリア処理だけをスキップすれば良いんでしょうか?

基本それで問題ないと思います。
ただ、スキップするということは、一切処理をしないということなので、
スキップする箇所(描画処理)に移動処理に影響する処理(乱数生成やカウンタなど)を入れると、
スキップした時としない時とで動作が変わってしまうので気をつけてください。
(普通は描画処理にそのようなコードは入らないので余り気にする点ではないかもしれませんが)

チルチル

Re:描画間隔について

#7

投稿記事 by チルチル » 16年前

よくわかりました
描画部分には余計な処理を入れないようにやってみます
どうもありがとうございました

閉鎖

“C言語何でも質問掲示板” へ戻る