ゲーム開発では、ゲームの雰囲気を演出するために効果音を使う必要があることが多いため、この記事では、Cocos Creator ゲーム開発における効果音コンポーネントのカプセル化と使用についてまとめます。 1. Cocos Creatorでのオーディオ再生の基本1. 基本【1】AudioSourceコンポーネント公式ドキュメント: http://docs.cocos.com/creator/manual/zh/audio/audio.html 【2】cc.audioEngine公式ドキュメント: http://docs.cocos.com/creator/manual/zh/audio/audio.html Cocos Creator には 2 つのオーディオ再生方法があります。AudioEngine と AudioSource はどちらもオーディオを再生できます。両者の違いは、AudioSource はシーンに追加してエディターで設定できるコンポーネントであることです。 AudioEngine はエンジンによって提供される純粋な API であり、スクリプト内でのみ呼び出すことができます。 共通点:基本的には AudioClip オーディオ リソースを処理し、Cocos Creator エディターでコンポーネントをマウントする必要があります。
方法1: AudioSourceコンポーネントを使用して再生する 空のノードを作成し、そこに別のコンポーネントを追加します-> AudioSource スクリプトにAudioSourceをプリセットし、実際のニーズに応じてスクリプトの外部インターフェースを次のように改善します。 cc.クラス({ プロパティ: オーディオソース: { タイプ: cc.AudioSource、 デフォルト: null }, }, 遊ぶ() { オーディオソースを再生します。 }, 一時停止() { this.audioSource.pause(); }, }); 方法2: AudioEngineを使用して再生する 次の例の properties オブジェクトに示すように、スクリプトで audioClip リソース オブジェクトを定義します。 再生するには、cc.audioEngine.play(audio, loop, volume); を直接使用します。以下の onLoad の例に示すように。 cc.クラス({ プロパティ: オーディオ: デフォルト: null、 タイプ: cc.AudioClip } }, オンロード() { this.current = cc.audioEngine.play(this.audio, false, 1); }, onDestroy() { cc.audioEngine.stop(this.current); } }); AudioEngine が再生されているときは、完全な AudioClip オブジェクト (URL ではない) が渡されることに注意してください。したがって、再生インターフェースでオーディオ URL を直接入力することはお勧めしません。代わりに、最初に AudioClip を定義してから、オーディオをエディターにドラッグすることをお勧めします。 2. 一般的な方法【1】コンポーネントオーディオソース play ( ) オーディオクリップを再生します。 stop ( ) 現在のオーディオクリップを停止します。 pause ( ) 現在のオーディオクリップを一時停止します。 resume ( ) 再生を再開します。 【2】サウンドシステム cc.audioEngine // バックグラウンドミュージック、ループ cc.audioEngine.playMusic(ソース); cc.audioEngine.stopMusic(ソース); // 短い効果音 cc.audioEngine.playEffect(ソース); cc.audioEngine.stopEffect(ソース); 上記の最初の方法はネイティブ プラットフォームで多くのバグが発生するため、当社のゲームではすべて 2 番目の方法を使用してサウンドを再生します。 2. Cocos Creator サウンドエフェクト管理コンポーネントのパッケージ化1. サウンド管理クラスSoundMgr.tsを作成する定数{ ccクラス、 財産 } = cc._デコレータ; @ccクラス エクスポートデフォルトクラスSoundMgr { sound_path: 文字列 = 'res/sounds/'; // sound は音楽の名前とオーディオオブジェクトのキーと値のペアを格納します sounds: { [キー: 文字列]: 任意 } = {}; 有効: ブール値 = true; 音楽: 文字列 = ''; // シングルトン モード protectedstatic インスタンス: SoundMgr; パブリック静的getInstance(): SoundMgr { if (!this.instance) { this.instance = newSoundMgr(); } このインスタンスを返します。 } // サウンドリソースを追加 addSound(key: string, clip: cc.AudioClip) { this.sounds[キー] = クリップ; } playFx(fxName: 文字列) { if (!this.enabled) を返します。 cc.audioEngine.playEffect(this.sounds[fxName], false); } playMusic(音楽名: 文字列) { this.music = 音楽名; if (!this.enabled) を返します。 cc.audioEngine.playMusic(this.sounds[musicName], true); } 音楽を停止する() { cc.audioEngine.stopMusic(); } 有効にするかどうかを設定します(有効: ブール値) { this.enabled = 有効; 有効になっている場合 this.playMusic(this.music); } それ以外 { cc.audioEngine.stopAll(); } } getEnable() { returnthis.enabled; } } 2. 初期化中にオーディオリソースをロードするCocos Creator ビジュアル編集ツールを使用して、ゲームシーンとリソースを次のように設定します。 コードを通じてサウンドを動的に読み込むため、すべてのサウンド ファイルを保存する sounds フォルダーを resources フォルダーに配置します (上図を参照)。 次に、GameMgr.ts を作成し、Canvas ノードにマウントします。 オンスト ccクラス、 財産 } = cc._デコレータ; 「SoundMgr」からSoundMgrをインポートします。 @ccクラス exportdefaultclassGameMgrextends cc.Component { サウンドをロードする(){ // コードを通じて動的にロードされるリソースはリソース フォルダーに配置する必要があることに注意してください cc.loader.loadResDir('sounds', cc.AudioClip, function(err, clips) { console.log("クリップをロード:", クリップ); もし(エラー){ console.log("エラー:", err); } (i = 0とすると、i SoundMgr.getInstance().addSound(クリップ[i].name, クリップ[i]); } }); } オンロード() { サウンドをロードします。 console.log("サウンド:", SoundMgr.getInstance().サウンド); } 再生クリック() { console.log("プレイ"); SoundMgr.getInstance().playMusic('spring_music'); } 一時停止クリック() { console.log("一時停止"); SoundMgr.getInstance().stopMusic(); } } GameMgr カスタム コンポーネントの onLoad メソッドで、loadSounds を呼び出して、ゲームに必要なすべてのサウンド リソースを読み込みます。同時に、再生および一時停止インターフェース メソッド onPlayClick および onPauseClick が GameMgr.ts に提供されます。 再生ボタンと一時停止ボタンによって呼び出されます。 3. 通話の再生と一時停止4. テストを実行するすべてのサウンド リソースが正常に読み込まれ、再生ボタンと一時停止ボタンをクリックするとテストが合格します。 3. 注意事項
以上が、ゲーム開発におけるサウンド処理にCocosCreatorを使用する方法の詳細です。CocosCreatorのサウンド処理の詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: CentOS7 のシステム サービスに Nginx を追加する方法
>>: Centos6.5 の rpm パッケージから mysql5.7 をインストールするときに発生する初期化エラーの解決策
Docker は過去 2 年間で非常に人気が高まっています。開発者はすべてのアプリケーションとソフト...
1. MySQLをダウンロードするURL: https://dev.mysql.com/downlo...
目次導入ログ分類パラメータファイルエラーログファイル完全なログファイルスロークエリログバイナリログフ...
目次1. DATETIMEとTIMESTAMPの使用1. 類似点2. 相違点3. 選択2. varc...
今日は、サイトの設定やウェブサイトのアップロードなど、FlashFXP の最も基本的な機能を紹介しま...
1. VMware vSphere の概要VMware vSphere は、業界をリードする最も信...
目次序文使用コンポーネントの記述データ構造分析プロセス分析基礎コードの分析他の要約する序文パスワード...
親ディレクトリを指定する方法../ はソース ファイルの親ディレクトリを表し、../../ はソース...
この記事では、MySQL 8.0.17のインストールと設定方法を参考までに紹介します。具体的な内容は...
この記事では、スローモーションアニメーション効果を実現するためのJavaScriptの具体的なコード...
テストテーブルを作成する -- ---------------------------- -- ch...
目次ブール型数値型文字列型文字列と数値を連結する未定義およびnull配列型タプル型列挙型あらゆるタイ...
docker-compose.yml を編集し、次のコンテンツを追加します。 バージョン: '...
問題の背景: docker を使用してプロジェクトをデプロイする場合、プロジェクト内で印刷コントロー...
setinterval を使用すると、ページを開いた直後に 1 秒の遅延後に実行されることがわかりま...