私はうまくいけば簡単な質問がありますが、私のコードが私が望むことをしていない理由を理解できません。ルア関数スコープ
function Sound:load()
trackToPlay = musicDownbeat
trackToPlay:play()
end
function Sound:changeMusic()
if trackToPlay == musicUpbeat then
trackToPlay:stop()
trackToPlay = musicDownbeat
trackToPlay:play()
end
if trackToPlay == musicDownbeat then
trackToPlay:stop()
trackToPlay = musicUpbeat
trackToPlay:play()
end
end
だから私はmusicUpbeatとmusicDownbeat、間を交互にすることができる2つのソース・トラックを持っている、とのコードでは、この時点で(私はサウンドを剥ぎ取られている:負荷()可能な限り明確にします) changeMusic()が呼び出されるたびに、trackToPlayは常にmusicDownbeatになります。これは、changeMusic()が呼び出されるたびに音楽が停止し、musicUpbeatに変更されることを意味します。
サウンド:load()は1回だけ呼び出されます。では、なぜ私のtrackToPlayの変更が保存されていないのですか?
「サウンド:load()は一度しか呼び出されません」知りません;それはあなたの機能ですよね?どのくらい頻繁に呼びますか?それともこれは特別なLua環境ですか? –
私もLove2Dフレームワークを使用しています。申し訳ありませんが、問題に関係するかどうかわかりませんが、それを含めておくべきです。ファンクションは、私が "f"キーを押すたびに呼び出されます。 –