ここに電話strum()
します:
Stage.prototype.checkPoint = function(x, y, zone) {
if(zone.inside(x, y)) {
zone.string.strum();
}
};
<audio>
ここに識別子を追加してみませんか?再生したい音はx座標とy座標に依存すると思いますか?
Stage.prototype.checkPoint = function(x, y, zone) {
if(zone.inside(x, y)) {
zone.string.strum(getAudioID(x, y));
}
};
どのように記入するかはあなたgetAudioID(x, y)
次第です(私はミュージシャンではないので、本当にわかりません:))
もちろん、strum()
メソッドも次のように変更する必要があります。
GuitarString.prototype.strum = function(audioID) {
this._strumForce = 5;
document.getElementById(audioID).play();
};
(ここまでは、現在のデザインにうまく適合します。)
より良いアプローチは、ギターの弦オブジェクトをインスタンス化するときにクラスにaudioID
を追加することです。GuitarString
したがって、各ギターストリング(オブジェクト)は独自のオーディオトラックを使用します。
これにはコードにさらに大きな変更が必要になりますが、コードが非常に明確で理解しやすいものになるため、この方法で行うことをお勧めします。
また、JavaScript / HTML5の効果音をチェックアウトして、-タグを使用せずにオーディオトラックを再生する方法を示します<audio>
。これは、オーディオフラグメントが多い場合に特に便利です。