0

私の Flash ゲームは 24 fps をターゲットにしていますが、低速のマシンでは 10 まで遅くなります。これは問題ありませんが、Flash が受信する MouseEvent と KeyboardEvent のキューを調整することを決定し、それらが積み重なり、イベントが遅れます。かなり遅れています。10 fps で、マウスとキーボードを数秒間スパムしてもあまり起こらないのは非常に悪いことです。その後、停止した後、イベントが少しずつ入ってくると、次の 5 秒間はゲームが自動的に再生されるように見えます。知る。

誰もこれを回避する方法を知っていますか? 基本的に、私は Flash に「私たちが遅れを取っていると思っていることは知っていますが、入力イベントを調整しても役に立ちません。取得したらすぐに渡してください」と言う必要があります。

4

2 に答える 2

2

低フレームレートの問題の副作用を回避しようとするのではなく、フレームレートを上げるように努力する方が運が良いでしょう。フレームレートが非常に遅い理由を特定するためにプロファイラーを使用しましたか? 無効化を利用して改善できますか? 最適化できるボトルネックはありますか?

于 2010-05-07T02:22:37.403 に答える
0

フラッシュが入力イベントを抑制しているとは思いません。アプリケーションが実際にそれらを十分に迅速に処理できない可能性が高いと思います。このように「積み重ねる」のを止める唯一の方法は、イベントを完全に破棄することだと思います。したがって、コードに次のようなものが必要です。

function onKeyPress() {
  if(inputIsTooFarBehind()) 
    return; // skip this keypress

  // process keypress as normal
}

しかし、欠点があります...ユーザーはコマンドの一部を破棄し、コマンドを機能させるために何度も何度もクリックするだけです。

おそらく、そのような過度のキー/マウス操作を必要としないような方法でゲームを設計する必要がありますか? または、サムの提案に従って、ゲーム自体を最適化して、そもそも速度が低下しないようにします。

于 2010-05-11T01:54:45.620 に答える