0

だから最近、私はそれに対する解決策を考え出したと思ったのですが、レベルに同じオブジェクトタイプを複数追加した場合、それが機能しないことがわかりました。

私が行っていたのは、オブジェクトのさまざまなリストを反復処理し、それらのいずれかがプレーヤーと衝突しているかどうかを確認することです。それらがプレーヤーと衝突しているそのオブジェクトのサウンドを再生し、サウンドのブール値を true に設定します。サウンドが再生されたことを意味します。

衝突が発生していない場合、または反復されている現在のオブジェクトがプレーヤーと衝突していない場合は、サウンドのブール値を false に戻します。ご覧のとおり、同じオブジェクトが複数追加されている場合に問題が発生します。これは、それらの 1 つがブール値を false に設定し、プレイヤーが 1 つのオブジェクトと衝突している限りサウンドが何度も再生されるためです。オブジェクトの。

だから私はこれを修正するための解決策を使い果たしたので、助けを求めています.

支援を提供できる人に感謝します。

4

2 に答える 2

0

サウンドマネージャークラスのようなものはどうですか?サウンドに再生を指示する代わりに、サウンドマネージャーにそのサウンドを再生するように指示します。次に、マネージャはサウンドを再生し、完了するまでそのサウンドを再生する他の要求を無視します。jmrの提案によると、ここで重要なのは、衝突していないときにブール値をfalseに設定しないことです。マネージャーがサウンドの再生が完了したと認識すると、falseに設定されます。

ちなみに、この方法で行うと、マネージャーで追加のロジックを使用できるという利点があります。一度に1つのサウンドだけに制限するのではなく、2番目のリクエストが最初のリクエストの途中である場合などにマネージャーが同じサウンドを2回再生できるようにすることができます。または、一部のサウンドでは、キューに入れて順番が再生されるのを待つようにすることもできます。

于 2013-02-02T02:13:35.110 に答える
0

true衝突が検出されたときに設定し、サウンドの再生が完了したときにのみ設定しfalseます。

于 2013-01-27T16:02:35.993 に答える