Re: GetMouseWheelRotVol関数の不具合 ( No.1 ) |
- 名前:管理人 日時:2016/01/31 23:08
手元の環境で GetMouseWheelRotVol のサンプルコードで試してみましたが、
ご指摘のような現象は発生しませんでした
GetMouseWheelRotVol で返ってくる値はほぼ OS から得られる情報そのままなので、
DXライブラリのプログラムがバグっている可能性は低く、OSの仕様であったり、
マウス自身が原因である可能性が高いと思います
一応 int 型ではなく float 型で回転値を得る関数を使ったテストコードを作成して
みましたので、よろしければこちらでも同様の結果になるかお試しになってみてください m(_ _)m
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
float Rot ;
ChangeWindowMode( TRUE ) ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
return -1; // エラーが起きたら直ちに終了
// 裏画面を使用
SetDrawScreen( DX_SCREEN_BACK ) ;
// 合計値を初期化
Rot = 0 ;
// 何かキーが押されるまでループ
while( CheckHitKeyAll() == 0 )
{
// メッセージ処理
if( ProcessMessage() == -1 ) break ; // エラーが起きたらループから抜ける
// 前回 GetMouseWheelRotVol が呼ばれてから今回までの回転量を足す
Rot += GetMouseWheelRotVolF() ;
// 画面を初期化
ClearDrawScreen() ;
// 画面に回転量を描画
DrawFormatString( 0, 0, GetColor( 255,255,255 ), "%f", Rot ) ;
// 裏画面の内容を表画面に表示
ScreenFlip() ;
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
|
Re: GetMouseWheelRotVol関数の不具合 ( No.2 ) |
- 名前:てきやく 日時:2016/02/01 21:01
テストコードのご用意ありがとうございます。
結果としましては、GetMouseWheelRotVolF関数では同様の現象は発生しませんでした。
ためしにRotをint型変数に戻し
Rot += (int)GetMouseWheelRotVolF();
としてみましたが、やはり発生しませんでした。
|
Re: GetMouseWheelRotVol関数の不具合 ( No.3 ) |
- 名前:管理人 日時:2016/02/02 02:57
|
Re: GetMouseWheelRotVol関数の不具合 ( No.4 ) |
- 名前:てきやく(解決) 日時:2016/02/02 19:43
正常に動作することが確認できました。
ご対応ありがとうございます。
また、解決としましたがちょっとした報告です。
最近のアップデートからだったと思うのですが、
SetOutApplicationLogValidFlag(FALSE);
としていても内容の短いLog.txtが自動でできてしまうようです。
|
Re: GetMouseWheelRotVol関数の不具合 ( No.5 ) |
- 名前:管理人(解決) 日時:2016/02/03 00:21
> SetOutApplicationLogValidFlag(FALSE);
> としていても内容の短いLog.txtが自動でできてしまうようです。
最近 DxLib_Init 呼び出し前の情報を取得する為に、ChangeWindowMode などが
呼ばれた時点で Log.txt が作成されるようになりました
なので、Log.txt を作成しないようにする為には他の全てのDXライブラリの関数より
先に SetOutApplicationLogValidFlag(FALSE); を実行する必要があります
SetOutApplicationLogValidFlag の説明も修正しておきました
ご指摘ありがとうございます m(_ _;m
|