トップページ > 過去ログ > 記事閲覧
SetDrawScreenは1回呼び出すだけでいい?
名前:TOKEI 日時: 2007/11/16 14:21

SetDrawScreenの解説を見ても、毎度呼び出すのか1回だけ呼び出すのかわかりませんでした。 呼び出すのは、1回だけでいいんですか?

Page: 1 |

Re: SetDrawScreenは1回呼び出すだけでいい? ( No.1 )
名前:キーチック 日時:2007/11/16 15:48

SetDrawScreenは今から描こうとするグラフィックデータを表画面に描くか,裏画面に描くかを指定する関数です. このため,描画関数を使う場合には,毎回(毎ループごと)指定することになりますし,描画する先を変えたいときには,また呼び出すことになります. DxLib_Init関数とは違うということですね
Re: SetDrawScreenは1回呼び出すだけでいい? ( No.2 )
名前: 日時:2007/11/16 16:58

>毎回(毎ループごと)指定することになりますし ループ毎に呼び出す必要は無いのでは? デフォルトでは表画面になっていて、 一度設定すればその値を保持するような。。。 個人的には、通常はちらつきを抑える為に バックバッファ(裏)に設定するほうが良い と思います。ただし、Flipしないと画面に 反映されません。
Re: SetDrawScreenは1回呼び出すだけでいい? ( No.3 )
名前: 日時:2007/11/16 19:48

ちょっと分かりにくいと思ったら、 リファレンスのサンプルでも多数使っているものがありました。以下はclsDx関数のサンプル。 #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,       LPSTR lpCmdLine, int nCmdShow ) {  // DXライブラリ初期化  if( DxLib_Init() == -1 ) return 0;  // 描画先画面を裏画面にする  SetDrawScreen( DX_SCREEN_BACK ) ;  // なにかキーが押されるまでループ  while( CheckHitKeyAll() == 0 )  {   // Hello C World!と表示   printfDx( "Hello C World" ) ;   // 画面を青くする   DrawBox( 0 , 0 , 640 , 480 , GetColor( 0 , 0 , 255 ) , TRUE ) ;   // 出力した文字列を表示   ScreenFlip() ;   // Windows依存処理   if( ProcessMessage() == -1 ) break ;  }  // 画面の文字達を消す  clsDx() ;  // 画面にメッセージを表示  printfDx( "消えましたか?" ) ;  // 画面を赤くする  DrawBox( 0 , 0 , 640 , 480 , GetColor( 255 , 0 , 0 ) , TRUE ) ;  // 画面の状態を更新  ScreenFlip() ;  // キーが押されるまで待つ  WaitKey() ;  // DXライブラリの使用終了  DxLib_End() ;  return 0 ; } #インデントは全角でつけています
Re: SetDrawScreenは1回呼び出すだけでいい? ( No.4 )
名前:Euris 日時:2007/11/16 19:53

簡単に言うと、メインループの前で1回だけ宣言すればOKです。 普通は SetDrawScreen( DX_SCREEN_BACK ) ; でバックバッファ(裏画面)を指定します。
Re: SetDrawScreenは1回呼び出すだけでいい? ( No.5 )
名前:キーチック 日時:2007/11/18 00:30

ああ,そう言われればそうですね. ちょっと変な使い方想定していました.
Re: SetDrawScreenは1回呼び出すだけでいい? ( No.6 )
名前:TOKEI 日時:2007/11/18 16:09

皆様ありがとうございます。 1回だけでいいのですね。 最初に1回だけ呼び出す、初期化関数に組み込むことにします。

Page: 1 |