Re: DxLib_Init関数によるミリ秒の精度 ( No.1 ) |
- 名前:管理人 日時:2014/03/22 01:09
1ミリ秒かどうかはOS次第ですが、最高精度にしているのは確かです
( DxWindow.cpp の 8108行目で行っています )
http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース
|
Re: DxLib_Init関数によるミリ秒の精度 ( No.2 ) |
- 名前:mysql 日時:2014/03/22 01:26
windows7(64Bit)を使用しているのですが、最高精度を調べることってできますか?
OS次第ということはWindows7(32Bit)、Vista、XPでは多少なりのズレがあるということだと思うのでやはり、配布して様々なOSで対応できるためにtimeBeginPeriod関数を使ったほうがいいでしょうか?
|
Re: DxLib_Init関数によるミリ秒の精度 ( No.3 ) |
- 名前:管理人 日時:2014/03/22 02:40
timeGetDevCaps で最高精度を調べることができます
> OS次第ということはWindows7(32Bit)、Vista、XPでは多少なりのズレが
> あるということだと思うので
OS毎に最高精度にズレがあるかどうかはわかりません
ただ少なくとも WindowsXP あたりまでは timeBeginPeriod で最高精度にしない状態では
DXライブラリで求める精度になっていなかったので、timeBeginPeriod で最高精度に
するようにしています
> やはり、配布して様々なOSで対応できるためにtimeBeginPeriod関数を使ったほうがいいでしょうか?
DXライブラリを使用する以上はDXライブラリの中で timeBeginPerio を使用しているので、
mysqlさんのプログラムでも timeBeginPerio を使用する必要はありません
|
Re: DxLib_Init関数によるミリ秒の精度 ( No.4 ) |
- 名前:mysql 日時:2014/03/22 02:49
> DXライブラリを使用する以上はDXライブラリの中で timeBeginPerio を使用しているので
とありますが、timeBeginPeriod(1);のことでしょうか?
そのOSの最高精度に設定していて、その精度が3ミリ秒とかだったらtimeBeginPeriod(1);にして1ミリ秒にした方がよいと思うのですが・・・
(たとえtimeBeginPeriod(1);とやってもそのOSの最高精度になってしまうのでしょうか?)
|
Re: DxLib_Init関数によるミリ秒の精度 ( No.5 ) |
- 名前:管理人 日時:2014/03/22 02:51
> (たとえtimeBeginPeriod(1);とやってもそのOSの最高精度になってしまうのでしょうか?)
それはわかりません、気になるのでしたら mysqlさんの方で timeBeginPeriod(1); を
実行されるのが良いと思います
|
Re: DxLib_Init関数によるミリ秒の精度 ( No.6 ) |
- 名前:mysql 日時:2014/03/22 03:01
> それはわかりません、気になるのでしたら mysqlさんの方で timeBeginPeriod(1); を
実行されるのが良いと思います
試して実行してみました。
リズムゲームを制作しているために敏感な箇所(精度は)ではあるのですが、少しやりやすくなった気がしてなりません・・(timeBeginPeriod(1);を書いたほうが。)微妙な感覚ですが・・・
ここでDXライブラリでtimeBeginPeriodしていて、更に自分でtimeBeginPeriod(1)したら余計にバッテリーなど消費してしまうのでしょうか?
|
Re: DxLib_Init関数によるミリ秒の精度 ( No.7 ) |
- 名前:管理人 日時:2014/03/22 03:22
> リズムゲームを制作しているために敏感な箇所(精度は)ではあるのですが、
> 少しやりやすくなった気がしてなりません・・(timeBeginPeriod(1);を書いたほうが。)微妙な感覚ですが・・・
timeGetDevCaps で取得できる TIMECAPS 構造体のメンバ変数 wPeriodMin の値を確認してみてください
DXライブラリではこの値を timeBeginPerio に渡していますので、wPeriodMin の値が 1 でしたら
気のせいということになります
> ここでDXライブラリでtimeBeginPeriodしていて、更に自分でtimeBeginPeriod(1)したら余計にバッテリーなど消費してしまうのでしょうか?
個人的には timeGetDevCaps で得られる最高精度よりも小さい値を timeBeginPeriod に渡しても効果は
無いと思いますが、もし timeGetDevCaps で得られる最高精度よりも小さい値を timeBeginPeriod に
渡すことに効果がある場合はバッテリーの消費量はより多くなると思います
|
Re: DxLib_Init関数によるミリ秒の精度 ( No.8 ) |
- 名前:mysql 日時:2014/03/22 03:44
> timeGetDevCaps で取得できる TIMECAPS 構造体のメンバ変数 wPeriodMin の値を確認してみてください
DXライブラリではこの値を timeBeginPerio に渡していますので、wPeriodMin の値が 1 でしたら
気のせいということになります
気のせいでした・・・・しっかり「1」を返しました・・
お手数おかけしました。こんな遅くに返信ありがとうございます。
解決とさせていただきます。
|