Re: スクロールがぎこちないです ( No.1 ) |
- 名前:X 日時:2017/10/06 19:14
どうやらDrawStringでメニュー一覧みたいなのを表示しているのが負荷が大きかったようです。
ScreenFlip()ではなくタイマのウェイトでかかる時間を計測したのですが、
DrawStringをはずしてもまだ1フレーム5ミリ秒しか余裕がなく、ギリギリです。(動きはなんとか滑らかになります。)
マップを1マスずつ描画するのがいけないのでしょうか。
|
Re: スクロールがぎこちないです ( No.2 ) |
- 名前:BayLeaf 日時:2017/10/06 19:22
描画の前にClearDrawScreen()の処理はされていますか?
こちらを行わないと画面の初期化がされないので当然ですが処理が重くなります。
|
DrawString()が重い ( No.3 ) |
- 名前:X 日時:2017/10/07 06:34
ああ、有難うございます。
書き忘れましたが、ClearDrawScreen()も先頭で使うようにしています。(背景色は変えています。)
ClearDrawScreen()を使った方が返って早いのですね、わかりませんでした。
動作テスト用のDrawString()を全部消したらマップを描画しても1ミリ秒以内に全部できる事がわかりました。
タイトルの問題は解決してしまいました。
DrawString()2,3回でもグッと負荷がかかっていたようです。
DrawString()はフォントの大きさをデフォルトのものから変更して使っています。
デフォルトのフォントサイズでも動作が遅くなります。
フォント系は 設定はSetFontSize()だけ使って後はDrawString()で描画しているだけなのですが何か設定でも悪いんでしょうか。
私の環境では、WindowsAPIのDrawText()などをフォントの大きさを変えて使うと負荷が強大になるという現象が起きます。
(関係ないけどScratchBlt()も負荷が超大きいです。)
リアルタイムで動くゲームではメニュー項目名など固定のテキストや数字(HP/最大HPなど)は画像化した方が良いでしょうか?
|
DrawString()が重い ( No.4 ) |
- 名前:X 日時:2017/10/07 06:42
× > タイトルの問題は解決してしまいました。
○ 前のタイトル(スクロールがぎこちない)の問題は解決してしまいました。
DrawString()一回だと負荷の違いはわかりませんが、2連続で使うと10ミリ秒とか かかります。
|
Re: スクロールがぎこちないです ( No.5 ) |
- 名前:管理人 日時:2017/10/07 09:10
|
Re: スクロールがぎこちないです ( No.6 ) |
- 名前:X(解決) 日時:2017/10/07 20:06
DrawStringToHandleを使ったら見違えるように早くなりました。
リスト一覧などを表示してもスクロールが滑らかになりました。
ありがとうございました。
|