私は ActionScript での作業が初めてで、タイムラインを使用してゲーム内の特定のイベントをトリガーすることを試しています。特に、タイムラインを使用して銃の発砲イベントをトリガーし、発砲アニメーションが特定のフレームに達したときに弾丸が生成されるようにしています。銃のクラス (Enter_Frame) で、マウスが押されていることと、最後のショットと現在の時間の間の時間がクールダウンよりも長いことを確認します。すべてがチェックアウトされている場合は、アニメーションを再生します。
if (time - lastShot > cooldown)
{
canShoot = true;
lastShot = time;
}
if (mouseHold && canShoot)
{
play();
}
これにより、フレーム レートが、クールダウンが再開する前に完全なアニメーションを再生できないポイントを下回ると、問題が発生します。この場合、フレーム レートが低いと弾丸の発射速度が遅くなります。
さらに、フレーム レートが高いと、フレーム レートが低い場合よりも発射フレームが早く表示されるため、マウス入力に対する銃の応答性が高くなります。
目標は明らかに、ゲームを完全にフレームレートに依存しないものにすることです。銃のクールダウンに応じて、アニメーションのフレーム レートを遅くしたり速くしたりできるようにしたいと考えています。
タイムラインに追加したアクションをスキップせずに、特定の期間にこのアニメーションを再生するにはどうすればよいですか?