ページ 11

画面のチカチカをどうにかしたい

Posted: 2014年10月21日(火) 17:50
by sadora3
画面がチカチカするのが嫌で、これをどうにかしたいです。
C言語でコンソールアプリケーションなのですが、出来ますでしょうか?

DXライブラリを使えば、SetDrawScreen関数とScreenFlip関数を使ってダブルバッファリングという方法で対処できましたよね。
このダブルバッファリングというのはコンソールアプリケーションでは出来ますでしょうか?

OS:Windows7
コンパイラ:Microsoft Visual Studio 2010

コード:

#include <stdio.h>
#include<stdlib.h>

void DrawBox();

void main(){
	while(1){
		DrawBox();
		system("cls");
	}
}

void DrawBox(){
	for(int y = 0; y < 20; y++){
		for(int x = 0; x < 20; x++){
			printf("□");
		}
		printf("\n");
	}
}

Re: 画面のチカチカをどうにかしたい

Posted: 2014年10月21日(火) 18:57
by ISLe()
コンソールのチラツキを抑えるには、必要な部分のみ書きかえます。

コンソールAPIというものを使えば、画面の特定の位置のキャラクタ(文字)を書きかえることができます。

Re: 画面のチカチカをどうにかしたい

Posted: 2014年10月21日(火) 20:49
by sadora3
なるほどです。そんなことが可能なのですか。ということは画面の文字を全部消すという処理は不要になるのですね。
しかし、コンソールAPIで検索したところ、コンソールアプリケーションについてしか出てこなかったのですが、コンソールAPIとは一体なんでしょうか?
ライブラリですか?

Re: 画面のチカチカをどうにかしたい

Posted: 2014年10月23日(木) 00:18
by ISLe()
コンソールAPIというのは、コンソール操作に関するWin32 APIです。
コンソールAPIはコンソールに対して使うものなので、コンソールアプリケーションについてしか出てこなくても当然だと思います。

Re: 画面のチカチカをどうにかしたい

Posted: 2014年10月23日(木) 18:44
by sadora3
Win32 APIですか・・・。
私の知識では、まだその領域へ足を運ぶのは困難ですね・・・。
質問に回答していたただき、ありがとうございました。

Re: 画面のチカチカをどうにかしたい

Posted: 2014年10月24日(金) 18:05
by ISLe()
検索すれば、コンソールAPIをコンソール操作に便利なふうに関数にまとめたページとか見付かりますが。

最低限必要なのは、範囲を指定文字で埋める(画面クリア)のと指定した位置にカーソルを移動する機能くらいですし。

ncursesライブラリを使う方法とかもありますよ。
こちらを使うとLinuxとかとソースコードを共通にできるメリットもあります。