Re: マルチスレッドを使うべきか否か ( No.1 ) |
- 名前:Will 日時:2011/12/27 09:52
その考えはダメです。
DXライブラリは複数のスレッドから描画関数(DrawGraphとか)をコールしても良いつくりにはなっていないので、描画処理は一スレッドにまとめる必要があります。
そもそも、一つのウィンドウに対する描画を複数スレッドで処理しようとすることはシステム設計的におかしいです。
プレイヤーの入力処理中にCOMの思考ルーチンを別スレッドで走らせるためにマルチスレッド化するとかならわかりますけど。
> コマンドを描画、更新している間も背後のキャラクターのアニメーションが
> 動き続けているのも再現したいんです。
ループ処理で描画処理順が
背景→キャラクラー(アニメーション)→コマンド→ScreenFlip
となっていればよいだけのことですよ。
|
Re: マルチスレッドを使うべきか否か ( No.2 ) |
- 名前:弱音ハク 日時:2011/12/30 01:37
ご意見だけでもOKと言うことなので、気楽に便乗〜
零空さんのやりたいことはマルチスレッドを使わずともできると思います。
>>
リングコマンドが表示されている間も
キャラクターはアニメーションするけれど、
キャラクター達の行動順の判断用カウントや
魔法詠唱の為のカウント等はコマンド選択が完了するまでは
時間を進めて欲しくない。
<<
と言うことですよね?
なら、コマンド選択中(リングコマンドが表示されている)の状態を格納した変数を用意して、
アニメーションの処理部ではその変数は特に確認せず処理を続け、
詠唱や行動順の時に使うカウントの処理を実行する前に
その変数の状態を確認して進めるか、一旦止めるかを判断する。
こんな感じでいかがでしょうか。
|
Re: マルチスレッドを使うべきか否か ( No.3 ) |
- 名前:softya(ソフト屋) 日時:2011/12/30 15:31
DXライブラリでマルチスレッドを利用する場合はバックグラウンドでメモリに読み込みたい(DXライブラリのLoagGrpah()などは使えないので工夫が必要)とか、思考ルーチンが処理速度的に遅いのでマルチコアを積極的に使いたいと言った場合に限定されるべきだと思います。
状態遷移などの考え方を使えば、コマンド選択中もアニメーションさせることは可能です。
ここのやってはいけないに該当していないかチェックしてみてください。
「新・C言語 〜ゲームプログラミングの館〜 [DXライブラリ]」
ttp://dixq.net/g/h_11.html
|
Re: ( No.4 ) |
- 名前:零空 日時:2011/12/31 02:30
Willさん、弱音ハクさん、softyaさん、ご意見ありがとうございます。
やはり、マルチスレッドの使用は控えた方がいいようですね。
とりあえずコマンドを別スレッド化するのはやめます。
ただ、コマンドとは別なんですが
>COMの思考ルーチンを別スレッドで走らせるとかなら
について。
このゲームでは、必殺技を割り込み発動できるんです。
本家では敵は割り込みはしてきませんが、
私はどうしても実装したいと思っています。
この場合ルーチンを分けてマルチスレッド化するほうが良いのでしょうか?
また、分けるならどういうイメージになるんですかね?
こちらもご意見だけでもよろしくお願いします。
|
Re: マルチスレッドを ( No.5 ) |
- 名前:零空 日時:2011/12/31 02:37
ちょっと説明不足な気がしたので追記
自分のターンであろうがコマンド選択中であろうが実行中であろうが、
敵が割り込み処理を行うと、強制的に敵が即発動できるということです
最初にリンクを貼った動画でも、一瞬なので分かりにくいですが
最後らへんに割り込みをしているシーンがあります
よろしくお願いします
|
Re: マルチスレッドを使うべきか否か ( No.6 ) |
- 名前:softya(ソフト屋) 日時:2011/12/31 10:37
「必殺技を割り込み発動できるんです」それをスレッドで実装する方が面倒です。通常シーケンスを分岐させるだけですので、マルチスレッドは考えなくて良いです。
|
Re: マルチスレッドを使うべきか否か ( No.7 ) |
- 名前:softya(ソフト屋) 日時:2011/12/31 10:55
実際の所ゲームと言うのは擬似的にマルチスレッドで動いているようなものですから速度的な理由がない限りマルチスレッドの出番はないと思ってもらったほうが良いと思います。
こういう考え方を理解すると、どうやって割り込み発動するか考えられるようになると思います。
「状態遷移プログラミング」
ttp://bit.ly/rscoc3
|
Re: マルチスレッドを使うべきか否か ( No.8 ) |
- 名前:零空(解決) 日時:2012/01/05 09:50
年始故返信が遅くなり申し訳ありません。
softya(ソフト屋)さん返信ありがとう御座います。
載せて頂いたリンク先等を見て勉強します。ありがとうございました。
|