ページ 1 / 1
ファミコンでいうところのポーズ
Posted: 2014年12月11日(木) 07:03
by 新宿の翼
ファミコン時代を思い返して頂くとわかりやすいのですが
アクションゲームなどでプレイ中にstartボタンを押すと
画面全体がstopするポーズ機能がありますよね?
あれを実装したいのですが、どうすればいいのかわかりません。
流れ、というか、考え方を教えてください。
また、それを実装するにあたって、
都合良い関数ってDXライブラリにありますか?
あと、BGMを鳴らす関数がありますが
ポーズして止めるとして、
曲の途中で止める、途中から開始するなんてことが
可能なのでしょうか?
とにかく、ポーズ機能を実装する場合の
処理行程を教えて下さい。
Re: ファミコンでいうところのポーズ
Posted: 2014年12月11日(木) 07:07
by 新宿の翼
すべての処理の根幹を
つまり、ステージ更新の根本から止める感じですか?
それとも、各プレイヤーやエネミーの動きを個別で
フラグをつかって止めるイメージでしょうか?
その辺を教えて下さい。
Re: ファミコンでいうところのポーズ
Posted: 2014年12月11日(木) 10:28
by MoonGate
プログラミングにおいて、正解は唯一無二のものではありません。
経験の少ない方ほど最適解を求められますが、あなたが今作られているプログラムの構造により何が最適化は異なってきますので抽象的な質問をされると、抽象的な回答しか返ってきません。
>ステージ更新の根本から止める感じですか?
>それとも、各プレイヤーやエネミーの動きを個別で
>フラグをつかって止めるイメージでしょうか?
どちらであっても、実現は可能かと思いますので一度自力てやってみてはいかがでしょうか。
それで、思った動きにならない時は問題点を具体的にして質問されれば良い回答がつくと思います。
Re: ファミコンでいうところのポーズ
Posted: 2014年12月11日(木) 13:52
by softya(ソフト屋)
ポーズの仕方はどちらでもベターだと思います。すでに書かれている通りプログラムの構造に依存します。
ベストは求めると迷走しますので、今の技量で出来るベター解ぐらいでとどめておくのが良いかと思います。
サウンドに関しては無理して止める面倒な制御をせずにフェードアウトしておくのを推薦します。
Re: ファミコンでいうところのポーズ
Posted: 2014年12月14日(日) 16:36
by amehirune
新宿の翼 さんが書きました:あと、BGMを鳴らす関数がありますが
ポーズして止めるとして、
曲の途中で止める、途中から開始するなんてことが
可能なのでしょうか?
可能です^^
DXライブラリのリファレンスマニュアルにある、PlaySoundMem関数の解説を見てください。
「TopPositionFlag はサウンドデータを再生する前に再生開始位置を先頭に戻すかどうかを指定します。
TRUE を渡すと先頭から再生され、FALSE を渡すと最後に StopSoundMem をした位置か、
SetSoundCurrentTime で指定した位置から再生されます。」
とあります。
(ご要望に応えられないような回答でしたら、申し訳ありません。)