(C++)効果音を鳴らすメンバ関数

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
pope
記事: 5
登録日時: 13年前

(C++)効果音を鳴らすメンバ関数

#1

投稿記事 by pope » 13年前

こんにちは。
C++でゲーム開発に挑戦しています。

現在、ボタンをクリックでトリガを返すクラスを作っています。
ホバー時、トリガ時に効果音を出力したいなと思ったのですが、こういった効果音は通常どの関数で記述されますか?

こちらのC++で記述されているサンプルを参考にさせて頂いてます。
メンバ関数updateでメンバ変数の更新、同じくdrawで描画というスタンスでクラスを作ってみたのですが、
こういった効果音をどの関数で出力すべきか迷っています。
draw関数に組み込んでしまう物なのでしょうか?
それとも新たにsoundなどの関数を作るものでしょうか。

変な質問ですが、折角なのでこういった設計(?)について知っておきたく質問しました。
よろしくお願いします。

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

Re: (C++)効果音を鳴らすメンバ関数

#2

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

soundの問題だけでなく設計方法を考えて行かないと同じ事で迷うことになると思います。
1)クラス間の結合度は低くする。結合度が高いとメンテナンス性が低下してバグの発生率は増加する。
2)ほとんど同じ機能の関数が多数のクラスに有るとメンテナンス性は低下してバグの発生率は増加する。
3)ファイル名など即値はできるだけ避ける。即値が多いとメンテナンス性は低下してバグの発生率は増加する。
4)資源の管理(画像・音など)は一元化が望ましいが、オブジェクト毎の独立性の高いものは各オブジェクトが管理するほうが良い。
とまず、これだけを考えてみ下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: (C++)効果音を鳴らすメンバ関数

#3

投稿記事 by ISLe » 13年前

update関数から呼び出すかdraw関数から呼び出すかという話であれば…。
draw関数は一時停止機能などで再描画のために何回も同じ状態で呼び出される可能性があります。
逆に処理速度の遅いハードでコマ落としのために呼び出されない可能性もあります。
draw関数には副作用のない描画に関するコードのみを書くようにしましょう。

pope
記事: 5
登録日時: 13年前

Re: (C++)効果音を鳴らすメンバ関数

#4

投稿記事 by pope » 13年前

softyaさん、ISLeさん、ご回答ありがとうございます。
とても参考になりました。

ひとまず、同クラスのメンバ関数としてdraw関数やupdate関数とは別に関数を用意する事にします。
制作していて他オブジェクトと統合する必要が出てきた場合、効果音を管理するオブジェクトを新たに用意する事にします。

閉鎖

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