ページ 1 / 1
メイン関数の書き方
Posted: 2012年11月21日(水) 18:43
by cardinal
http://dixq.net/g/d_01.html
上記ページのwhile文はScreenFlip等はループで上に戻る時に機能しますが、
初めてループに入った瞬間にScreenFlip等が機能するように、少ない手間で改良する方法はありませんか?
Re: メイン関数の書き方
Posted: 2012年11月21日(水) 18:53
by ホヅミ
初めてループに入った時だと、サンプルのままでも問題ないと思いますが。
つまりは
コード:
while( ProcessMessage()==0 && ClearDrawScreen()==0 ){
ScreenFlip();
・
・
・
}
こういうことを言いたいのですか?
Re: メイン関数の書き方
Posted: 2012年11月21日(水) 19:00
by softya(ソフト屋)
たぶん、それを必要とするのはプログラム構造的にまずい事になっているんだと思います。
本当のプログラム全体でScreenFlip();は一個だけですか?
後々のことを考えれば、今のうちに直すべきです。
Re: メイン関数の書き方
Posted: 2012年11月21日(水) 19:46
by cardinal
返信ありがとうございます。
例えば極端な話、
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){
DrawGraph( 0, 0,img, false );
WaitKey();
}
となっている場合、1回目のループのWaitKey()で止まった場合、
画像が反映される前の状態になります。
こういったのが自分的に好ましくなかったので今回の質問をさせていただきました。
Re: メイン関数の書き方
Posted: 2012年11月21日(水) 20:12
by nil
メインループ内でWaitKeyを使う設計が好ましくないです。
Re: メイン関数の書き方
Posted: 2012年11月21日(水) 20:34
by softya(ソフト屋)
前に紹介した好ましくない設計に書かれている通りWaitKey();も良くないです。
表面的な意味ではなく、なぜいけないのかを考えてみましょう。
Re: メイン関数の書き方
Posted: 2012年11月21日(水) 21:26
by cardinal
いや、本当に極端な話をしただけで、実際組んでいるものには入っていませんよ…(;--)
とりあえず、ループが終わるタイミングでScreenFlip等が機能するんじゃなく、ループに入った時にScreenFlip等が機能するようにしたいだけなんです…
Re: メイン関数の書き方
Posted: 2012年11月21日(水) 21:29
by softya(ソフト屋)
cardinal さんが書きました:いや、本当に極端な話をしただけで、実際組んでいるものには入っていませんよ…(;--)
とりあえず、ループが終わるタイミングでScreenFlip等が機能するんじゃなく、ループに入った時にScreenFlip等が機能するようにしたいだけなんです…
これまでの話から分かるように「ループに入った時にScreenFlip」する必要性を作ってはいけません。
なので、その仮定自体が意味がないのです。
必要のないものは作らなくて良いですよね?
Re: メイン関数の書き方
Posted: 2012年11月21日(水) 22:08
by cardinal
あー、やっと会話の流れが分かった(?)と思います。
良いプログラムに変更してきます
皆さん返信ありがとうございました