データのロードとアニメーションの表示について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
みーしぇ

データのロードとアニメーションの表示について

#1

投稿記事 by みーしぇ » 14年前

DXライブラリでいろいろ操作しているうちに気になったことがあったため、投稿させて頂きました。

ゲームをある程度作って楽しんでいたのですが、画像を読み込んでいる間、ずっと画面が何も表示されないままというのが気になり、
読み込み中は先に読み込んだ画像を、読み込みが終わるまで回転させるようなプログラムを作ろうとしたのですが、うまくいきません。
いろいろ作ってはいるのですが、回転が途中で止まったり、急に早くなったりを繰り替えしています。

理想は、画面上では常に一定の速度で画像が回転し、その間、ゲームに必要な画像や音楽を読み込んでいる、という状態です。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: データのロードとアニメーションの表示について

#2

投稿記事 by softya(ソフト屋) » 14年前

過去ログで何度か話題になってますね。

「DxLibでロード画面を作るには? • C言語交流フォーラム ~ mixC++ ~」
http://dixq.net/forum/viewtopic.php?f=3&t=3846

スレッドを使わなくても、カクカクはある程度に抑えるとが出来ます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

みーしぇ

Re: データのロードとアニメーションの表示について

#3

投稿記事 by みーしぇ » 14年前

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: データのロードとアニメーションの表示について

#4

投稿記事 by softya(ソフト屋) » 14年前

やはり、読み込みリストを作って何個か読んだら表示に戻るようにしないとカクカクしますので、1つ読む度にtimeGetTimeなどで経過時間を計測してトータルで13ms~15ms辺りで描画処理に戻るように設計すべきでしょうね。
どう読み込みリスト(たぶん構造体配列)を作るかは工夫すべきところでしょう。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

みーしぇ

Re: データのロードとアニメーションの表示について

#5

投稿記事 by みーしぇ » 14年前

softya(ソフト屋) さんが書きました:やはり、読み込みリストを作って何個か読んだら表示に戻るようにしないとカクカクしますので、1つ読む度にtimeGetTimeなどで経過時間を計測してトータルで13ms~15ms辺りで描画処理に戻るように設計すべきでしょうね。
どう読み込みリスト(たぶん構造体配列)を作るかは工夫すべきところでしょう。
やはり、マルチスレッドは難しいですね・・・。
これからも、色々調べていくことにします。
最後に、早々とした返信、ありがとうございました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: データのロードとアニメーションの表示について

#6

投稿記事 by softya(ソフト屋) » 14年前

DXLIBはライブラリの制約でマルチスレッドで読め込めませんので、私のは関数呼び出しでの読み込み方法です。
注意してください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る