トップページ > 過去ログ > 記事閲覧
v2.22fについて
名前:ごんだぬき 日時: 2007/02/24 01:03

どうもこんにちは、いつもDxLibを楽しく使っているものです。 次のプログラムをビルドしますと、たまに画面の更新されるタイミングがScreenFlipでなくWaitKeyでキーを押した後になることがあります。 > ここから #include "DxLib.h" #include <sstream> #include <string> using namespace std; int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode(true); // ウィンドウモードで起動 if (DxLib_Init() == -1) { // DXライブラリ初期化処理 return -1; // エラーが起きたら直ちに終了 } // 描画先画面を裏にする SetDrawScreen(DX_SCREEN_BACK); for (int i = 0; i < 100; ++i) { ostringstream Message; Message << "今まで" << i << "回キーが押されています"; ClearDrawScreen(); DrawString(64, 64, Message.str().c_str(), GetColor(255, 255, 255)); ScreenFlip(); WaitKey(); } DxLib_End(); // DXライブラリ使用の終了処理 return 0; // ソフトの終了 } > ここまで v2.22dでは、上記のような現象は起きていませんでした。どのように解決すればよろしいでしょうか。ご教示のほどよろしくお願いいたします。ちなみにVC.net2005ExpressEditionでもBCCでも同様の現象が起こります。OSはWinXPです。

Page: 1 |

Re: v2.22fについて ( No.1 )
名前:管理人 日時:2007/02/24 19:50

 ごんだぬきさん始めまして、DXライブラリの管理人です。 > たまに画面の更新されるタイミングがScreenFlipでなくWaitKeyでキーを押した後になることがあります。  私の環境で書き込んで頂いたプログラムを実行してみましたが、 特に問題は発生しませんでした。 <実行結果> (右の数字は画面に表示されている数字です)  起動時    0  ↓  キーを押す  0  ↓  キーを離す  1  ↓  キーを押す  1  ↓  キーを離す  2  WaitKey は押されたキーが離されるまで待ちつづけますので、上記の様な 動作結果になります。(ver2.22dでもこの部分に特に変更はありません)  ただ、考えてみればキーが押された瞬間に関数から出てくる方が直感的 なので、キーが押された瞬間に関数から出てくるように処理を変更してみました。  ごんだぬきさんの環境ではそもそも私の環境での動作結果と異なる挙動を したのかもしませんが、とりあえず、今回の変更を加えたバージョンを お試しになってみて下さい。m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: v2.22fについて ( No.2 )
名前:ごんだぬき 日時:2007/02/24 22:34

管理人さま さっそくのご返答、ありがとうございます。 いただいたライブラリで再構築してみましたが、 やはり同じ現象が現れます。DXLib以外のところ に原因があるのかもしれません。 ノートパソコン(セレロン1.0GHz)なのも関係して いるのでしょうか? とりあえず別の手段を考えてみます。 このたびはどうもありがとうございました。
Re: v2.22fについて ( No.3 )
名前:管理人 日時:2007/02/27 13:32

 ごんだぬきさんどうも、DXライブラリの管理人です。 > ノートパソコン(セレロン1.0GHz)なのも関係して > いるのでしょうか?  うーん、恐らくCPUは関係ないと思いますが・・・何が 原因なのかは現時点では分かりません。  グラフィックチップ関係が原因の場合は DxLib_Init の前に SetUseDirectDrawFlag( FALSE );  と書いて DirectX の描画機能をOFF(グラフィックチップの 機能を使わない)にすると正常に動作するかもしれません。 (「SetUseDirectDrawFlag が無い」というコンパイルエラーが 出た場合は、以下の最新版をお使いになってみてください) http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの
Re: v2.22fについて ( No.4 )
名前:ごんだぬき 日時:2007/02/28 01:15

SetUseDirectDrawFlag( FALSE ); としますとうまくいきました。どうやら グラフィックチップ関連のようですね。 どうもありがとうございました。
もう1つ質問させてください ( No.5 )
名前:ごんだぬき 日時:2007/03/11 08:18

すみません、ウィンドウモードで SetUseDirectDrawFlag( FALSE ); if( DxLib_Init() == -1) { // DXライブラリ初期化処理 return -1; // エラーが起きたら直ちに終了 } SetDrawScreen(DX_SCREEN_BACK); // 裏画面に描画 とした上で背景を描いてから KeyInputSingleCharStringを実行しますと、 入力中は入力文字とカーソル以外が真っ黒になって しまいます。この現象は管理人さまの環境でも 再現されますでしょうか。また、解決策は ありますでしょうか。たびたびの質問で すみませんが、よろしくお願いいたします。
Re: v2.22fについて ( No.6 )
名前:管理人 日時:2007/03/12 15:03

 ごんだぬきさんどうも、DXライブラリの管理人です。  ご報告頂いた現象は私の環境でも発生しました。  修正バージョンをアップしましたので、宜しければお試しに なってみて下さい。m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe //VC用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe //BCC用 (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』、VCをお使いの場合は『リビルド』をして下さい)
Re: v2.22fについて ( No.7 )
名前:ごんだぬき 日時:2007/03/12 18:41

いただいたファイルでリビルドしますと、うまくいきました。 度重なる質問にお答えいただき、本当にありがとうございます。

Page: 1 |