マルチスレッドで読み込み中の画面を作成する1 | 雨弓のゲーム製作ブログ

マルチスレッドで読み込み中の画面を作成する1

ゲーム機なんかではロード中にNow Loadingという文字とともに絵が出たりします。

コレを実装させたいなーと思っていたわけです。


1枚絵でいいならば、読み込みを始める前に1枚絵を表示させて、読み込み処理を行えばいいだけです。

しかし、文字が動いたり絵が変わったりさせたい場合があると思います。

PS2の大神なんかでは読み込み画面でボタンを押すと足跡が書かれていき、連打するとアイテムが手に入ったりしました。


PCではHDDからデータを読み込むことが殆どですので、適当に作っても大抵DVDなんかから読むより高速です。

しかし、ファイルをデコードしたりすることもあるのでそれなりに時間がかかるものです。


読み込み中の画面を表示させながら裏で読み込み処理を行う・・・。

こんな感じのシステムにする場合、どうすればいいでしょうか。

ここでマルチスレッドの出番です。

マルチタスクでなくマルチスレッドなのは、読み込んだデータを同じプロセスが使うからです。


今回タイトルに1が付いてますが、まだ試してないので本当に上手く行くか分からない為です。

後日完成したらその2を載せる予定です。


このマルチスレッドの実装方法ですが、どうやらOSによって違うみたいです。

Windowsの場合CreateThread関数を使うようです。

CreateThread関数の詳細は

http://wisdom.sakura.ne.jp/system/winapi/win32/win143.html

この辺を参考に。

WindowsAPI・・・なのかな?

処理速度はどの程度なのかちょっと気になりますが、遅く見積もっても0.1秒掛からないでしょうから、読み込み中の画面の実装という目的なら問題ないかと思います。多分。

第3引数は関数のポインタを渡すためメンバ関数を使いたい場合はスタティックにする必要があります。


今後はコレを使って読み込み画面の表示を作りたいと思います。上手く行くといいのですが。

フレームマネージャにこの機能つけて、サンプルプログラムとして公開するのもいいかな・・・?

でも欲しい人います?

あんま需要無い気も・・・。