DXライブラリでいろいろ操作しているうちに気になったことがあったため、投稿させて頂きました。
ゲームをある程度作って楽しんでいたのですが、画像を読み込んでいる間、ずっと画面が何も表示されないままというのが気になり、
読み込み中は先に読み込んだ画像を、読み込みが終わるまで回転させるようなプログラムを作ろうとしたのですが、うまくいきません。
いろいろ作ってはいるのですが、回転が途中で止まったり、急に早くなったりを繰り替えしています。
理想は、画面上では常に一定の速度で画像が回転し、その間、ゲームに必要な画像や音楽を読み込んでいる、という状態です。
データのロードとアニメーションの表示について
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: データのロードとアニメーションの表示について
過去ログで何度か話題になってますね。
「DxLibでロード画面を作るには? • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=3846
スレッドを使わなくても、カクカクはある程度に抑えるとが出来ます。
「DxLibでロード画面を作るには? • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=3846
スレッドを使わなくても、カクカクはある程度に抑えるとが出来ます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
みーしぇ
Re: データのロードとアニメーションの表示について
素早いお返事、ありがとうございます。softya(ソフト屋) さんが書きました:過去ログで何度か話題になってますね。
「DxLibでロード画面を作るには? • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=3846
スレッドを使わなくても、カクカクはある程度に抑えるとが出来ます。
過去ログのは見てみたのですが、自分には一枚の画像を配列に入れてるように見えました。
実装したいものでは複数の画像に対応させたいので、どう応用していいのかわかりませんでした。
簡単な書き方で申し訳ないのですが、下記の様に、ENDキーが押されるまでアニメーションを実行し、
アニメーションを実行しつつ、graph_loadingを行わせることは可能でしょうか?
int load_end = 0;
void graph_loading(){
if( load_end == 0){
画像1を読み込む
画像2を読み込む
...
最後の画像を読み込む
load_end = 1;
}
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){
ChangeWindowMode(true);
SetAlwaysRunFlag(true);
if(DxLib_Init() == -1) return -1;
SetDrawScreen(DX_SCREEN_BACK);
while(!CheckHitKey(KEY_INPUT_ESCAPE)){
ClearDrawScreen();
/* ここにアニメーション処理を記述 */
ScreenFlip();
if(ProcessMessage() != 0) break;
}
DxLib_End();
return 0;
}
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: データのロードとアニメーションの表示について
やはり、読み込みリストを作って何個か読んだら表示に戻るようにしないとカクカクしますので、1つ読む度にtimeGetTimeなどで経過時間を計測してトータルで13ms~15ms辺りで描画処理に戻るように設計すべきでしょうね。
どう読み込みリスト(たぶん構造体配列)を作るかは工夫すべきところでしょう。
どう読み込みリスト(たぶん構造体配列)を作るかは工夫すべきところでしょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
みーしぇ
Re: データのロードとアニメーションの表示について
やはり、マルチスレッドは難しいですね・・・。softya(ソフト屋) さんが書きました:やはり、読み込みリストを作って何個か読んだら表示に戻るようにしないとカクカクしますので、1つ読む度にtimeGetTimeなどで経過時間を計測してトータルで13ms~15ms辺りで描画処理に戻るように設計すべきでしょうね。
どう読み込みリスト(たぶん構造体配列)を作るかは工夫すべきところでしょう。
これからも、色々調べていくことにします。
最後に、早々とした返信、ありがとうございました。
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: データのロードとアニメーションの表示について
DXLIBはライブラリの制約でマルチスレッドで読め込めませんので、私のは関数呼び出しでの読み込み方法です。
注意してください。
注意してください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。