1

キャラクターのリロード アニメーションの値を変更しようとしました。アニメーションがループするたびに player.shots が 1 ずつ上がるようにします。ただし、一度実行するとアニメーションが続行されます。これが私が持っているコードです。

    gun.setAnimation('reload');
gun.afterFrame(6,function(){
        console.log('reload');
        player.shots++;
        if(player.shots > 5){
          gun.setAnimation('idle');
        }
    }

興味深いことに、関数でエラーが発生した場合、期待どおりに機能します。

    gun.setAnimation('reload');
gun.afterFrame(6,function(){
        console.log('reload');
        player.shots++;
        if(player.shots > 5){
          gun.setAnimation('idle');
        }
        throw "reloading"
    }

これにより、 afterFrame は、次の反復で実行するかどうかを戻り値に基づいて決定すると信じています。

追加する必要がある適切な回避策やパラメーターはありますか、または目的の動作を得るために意図的にエラーを発生させ続ける必要がありますか?

4

1 に答える 1