ファミコンでいうところのポーズ

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

ファミコンでいうところのポーズ

#1

投稿記事 by 新宿の翼 » 9年前

ファミコン時代を思い返して頂くとわかりやすいのですが
アクションゲームなどでプレイ中にstartボタンを押すと
画面全体がstopするポーズ機能がありますよね?
あれを実装したいのですが、どうすればいいのかわかりません。

流れ、というか、考え方を教えてください。
また、それを実装するにあたって、
都合良い関数ってDXライブラリにありますか?

あと、BGMを鳴らす関数がありますが
ポーズして止めるとして、
曲の途中で止める、途中から開始するなんてことが
可能なのでしょうか?

とにかく、ポーズ機能を実装する場合の
処理行程を教えて下さい。

新宿の翼

Re: ファミコンでいうところのポーズ

#2

投稿記事 by 新宿の翼 » 9年前

すべての処理の根幹を
つまり、ステージ更新の根本から止める感じですか?
それとも、各プレイヤーやエネミーの動きを個別で
フラグをつかって止めるイメージでしょうか?

その辺を教えて下さい。

MoonGate

Re: ファミコンでいうところのポーズ

#3

投稿記事 by MoonGate » 9年前

プログラミングにおいて、正解は唯一無二のものではありません。
経験の少ない方ほど最適解を求められますが、あなたが今作られているプログラムの構造により何が最適化は異なってきますので抽象的な質問をされると、抽象的な回答しか返ってきません。

>ステージ更新の根本から止める感じですか?
>それとも、各プレイヤーやエネミーの動きを個別で
>フラグをつかって止めるイメージでしょうか?

どちらであっても、実現は可能かと思いますので一度自力てやってみてはいかがでしょうか。
それで、思った動きにならない時は問題点を具体的にして質問されれば良い回答がつくと思います。

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

Re: ファミコンでいうところのポーズ

#4

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

ポーズの仕方はどちらでもベターだと思います。すでに書かれている通りプログラムの構造に依存します。
ベストは求めると迷走しますので、今の技量で出来るベター解ぐらいでとどめておくのが良いかと思います。

サウンドに関しては無理して止める面倒な制御をせずにフェードアウトしておくのを推薦します。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
amehirune
記事: 181
登録日時: 10年前
住所: どっか
連絡を取る:

Re: ファミコンでいうところのポーズ

#5

投稿記事 by amehirune » 9年前

新宿の翼 さんが書きました:あと、BGMを鳴らす関数がありますが
ポーズして止めるとして、
曲の途中で止める、途中から開始するなんてことが
可能なのでしょうか?
可能です^^
DXライブラリのリファレンスマニュアルにある、PlaySoundMem関数の解説を見てください。
「TopPositionFlag はサウンドデータを再生する前に再生開始位置を先頭に戻すかどうかを指定します。
TRUE を渡すと先頭から再生され、FALSE を渡すと最後に StopSoundMem をした位置か、
SetSoundCurrentTime で指定した位置から再生されます。」
とあります。
(ご要望に応えられないような回答でしたら、申し訳ありません。)
ほら、来いよ!! 誤字や矛盾を指摘したい奴から、前に出てこいよぉおおおおおおおッ!!!
※都合により、不定期でしか現れません。即返などはできませんのでご了承ください※

閉鎖

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