問題タブ [frame-rate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
487 参照

apache-flex - Chrome と Firefox で Flex アプリの動作が異なる

Flex アプリのフレーム レートが Chrome と Firefox で異なるようです。私は本質的にタイマーでフェードアウトするスプラッシュスクリーンであるプリローダーを持っています。フレームレートの顕著な違いがあるのはこの部分です.Firefoxではより速くフェードアウトします. 奇妙なことに、アプリの残りの部分で使用しているタイマーは、ブラウザー間で同じように動作するようです。フレームレートの違いがあるのは、このプリローダー/スプラッシュ画面だけです。

Chrome または Firefox が Flash を処理する方法に固有の何かが、この問題を引き起こしているのでしょうか? それとも、プリローダーを使用してアプリをセットアップした方法ですか? 私は Flash を再インストールし、両方のブラウザーで 10.1 を実行しています。これにより、タイマーとブラウザーの相互互換性に関する問題が修正されることが約束されています。

これは本当に私を悩ませています。ヘルプや情報をいただければ幸いです。

0 投票する
2 に答える
815 参照

iphone - 古いiPhoneだけでなく、新しいiPhoneでも一貫した速度を得るにはどうすればよいですか?

iPhone用のOpenGL ESで2Dゲームを作成中です。繰り返しを「NO」に設定して、0.002 (60 fps) の間隔で NSTimer を使用してゲーム ループを呼び出しています (推奨どおりに関数内から NSTimer を再度実行しています)。

これは私の 3GS ではスムーズに動作しますが、2G でこれをテストすると、ゲームの動作が非常に遅くなり、時折空白のフレームが表示されることがあります。間隔を 0.033 (30 fps) に下げると。3Gでは遅すぎる。

両方のデバイスで一貫した再生を得るには何らかの方法が必要であることはわかっています。Doodle Jump は、両方のスマートフォンでスムーズに同じフレームレートで実行されているようです。

0 投票する
5 に答える
9785 参照

android - Android 2D キャンバス ゲーム: FPS ジッターの問題

私は月着陸船のデモに基づいてゲームを作成しましたが、大幅に変更されています。40 ~ 50 fps 程度を取得できますが、問題は、40 ~ 50 fps の間で変動しすぎて、動くグラフィックがジッターすることです! それは非常に迷惑で、実際には良いフレームレートで実行されているのに、私のゲームが本当にひどいものに見えます.

スレッドの優先度を高く設定しようとしましたが、それは悪化しました...今では40〜60fpsの間で変動します...

一定になるように FPS を 30 程度に制限することを考えていました。これは良い考えですか、他の誰かが経験や別の解決策を持っていますか?

ありがとう!

これは私の実行ループです

0 投票する
1 に答える
2360 参照

android-emulator - AndroidエミュレーターでのCPU使用率とFPSの表示

エミュレーターで動作し、実行中のプロセスなどを表示するようにDDMSを設定しましたが、エミュレーターの開発ツールで、最初に[CPU使用率を表示]ボックスにチェックマークを付けられません。次に、表示するオプションがないようです。インターネット上の情報源によると、明らかに実行可能なFPSです。

誰かがこの問題を抱えていて、Androidゲームの実行中に問題を解決してCPU使用率とFPSを表示する方法を知っていますか?

ありがとう

0 投票する
2 に答える
307 参照

artificial-intelligence - 応用 AI プロジェクトの提案が必要

私は今学期に、AI の応用に関するプロジェクトを行う必要があるコースを持っています。これをゲーム AI で行うことにしました。基本的なアイデアは 2 つあります。FPS ボットの実装またはサッカー AI の実装です。

私は今のところ AI の初心者であり、基本的なパスファインディング アルゴリズム (A* など) を実装しており、有限ステート マシン、いくつかの一次ロジック、基本的なニューラル ネットワーク (バックプロパゲーション ALgo) について研究しており、現在は遺伝的アルゴリズムのコースを行っています。

現在、私たちの主な焦点はボットにあります。私たちの計画には以下が含まれます:

  • 各「ボット」は、有限状態マシン (FSM) を使用して実装されます。FSM には、ボットが持つ可能性のある状態が含まれます。& 入力を受け取ったときに行われるアクション/状態の変更のルール。
  • ボット グループの移動では、各ボットが攻撃するかどうか、攻撃する方法を決定します。範囲、ボットの数、ニューラル ネットワークを使用した既存の戦闘に基づきます。
  • 遺伝的アルゴリズムを使用することで、繰り返しの動きに基づいて対戦相手の次の動きを予測できます。

これまで、空き時間にいくつかの 2D ゲーム (パックマン、テトリスなど) をプログラミングしましたが、実際に 3D の領域に足を踏み入れたことはありません。ほとんどの場合、3D エンジンを使用します。

私たちは、AI の部分にほとんどのエネルギーを集中したいと考えています。アニメーションや 3D モデルなどの不必要な詳細に煩わされるのは避けたいと思います。たとえば、Moveright() のようなボットを右に移動するだけの関数を持つフレームワークを見つけることができれば、それは本当に素晴らしいことです。

私の基本的な質問は次のとおりです。プロジェクトの期間が約 3 か月であることを考えると、計画どおりに進めるのは野心的すぎますか? 3D に移行して 3D ゲーム エンジンを使用する必要がありますか? そのようなエンジンの経験がない場合、そのようなエンジンを使用するのは簡単ですか? はいの場合、どの種類のエンジンが私たちのプロジェクトに適していますか?

私は別のアイデアに出くわしました. AI ゲームプログラミングの本で、プレイヤーがボットを上から見下ろすというものでした. その方法の方が適切でしょうか?

ありがとう..質問の長さについて申し訳ありません..私の問題が少し具体的すぎるだけです。

0 投票する
1 に答える
836 参照

flash - object タグでアニメーションのフレームレートを制御しますか?

object タグを使用して HTML ドキュメントに埋め込まれたコンパイル済みフラッシュ アニメーション (swf) があります。

質問: object タグのいくつかのパラメーターを使用して元の SWF フレームレートを変更する可能性はありますか?

ソースコード (FLA) がありません。

フレームレートを下げたい。

助けてくれてありがとう、

0 投票する
1 に答える
1386 参照

msdn - シンプルな Direct2D アプリで fps を計算するにはどうすればよいですか?

ご覧いただきありがとうございます。MSDN から簡単な D2D アプリを作成しました。ここから入手できます。ここで、いくつかのプリミティブを描画し、fps カウンターを追加します。

長方形などを描画する OnRender() イベントがあります。また、RenderTarget->DrawText を呼び出す RenderTextInfo() への呼び出しもあります。1 秒あたりのフレーム数をカウントするロジックはどこに追加すればよいですか?

どうもありがとう。

0 投票する
2 に答える
3532 参照

xna - XNA 4.0 が 60 fps ではなく 50 fps で実行される

XNA 4.0 を少し試して、チュートリアルに従い、非常に基本的なもの (三角形やいくつかの線など ;-)) を作成しています。これを行っているときに、すべてのアプリケーションが (Fraps を使用して) 50 ~ 51 fps を超えて実行されないことに気付きました。低速のコンピューターまたはグラフィック カード (Ati HD4870) で重いプログラムを実行しているわけではありません。XNA と関係があるはずです (ゲームはここで問題なく実行されます)。

現在、XNA について読んだすべての記事では、デフォルトの更新頻度は 1 秒あたり 60 回であると書かれており、それを実現したいと考えています。

  • フルスクリーンでもウィンドウ表示でも同じ
  • SynchronizeWithVerticalRetrace を false または true に設定した場合: 同じ
  • Visual Studio なしでプログラムを実行すると、41 fps しか得られません。
  • TargetElapsedTime = new TimeSpan(0, 0, 0, 0, 10);fpsを使用して更新頻度をオーバーライドすると、大幅に上がります。10 は 10 ミリ秒を意味しますが、100 ではなく 83 fps しか得られません。1 ミリ秒では 850 fps になります。したがって、得られる fps と得られるはずの fps の偏差はかなり一貫しています。タイミングに問題があるように見えますか?

ここで何が問題なのかを知っている人や、安定した 60 fps を得るための提案がある人はいますか?

ありがとう!

0 投票する
1 に答える
1735 参照

animation - フレーム レートを制限すると、オブジェクトの動きが途切れる

ゲーム内のオブジェクトの動きが途切れるという問題が発生しています。

フレーム レートが制限されていない場合、ゲームはスムーズに実行されます。

フレーム レートを 60 fps に制限すると、動きが途切れ途切れになります。

オブジェクトの動きはこんな感じ…

速度は 1 秒あたりのピクセル数で、GetFrameTime() は最後のフレームからの経過時間を返します。オブジェクトは x 方向と y 方向にのみ移動することに注意してください。

私はSFMLを使用しており、関数SetFramerateLimit(60)UseVerticalSync(true). 途切れ途切れの動きの問題に対処しようとしているときに、XNA 開発者からの記事を読みました。1 回更新して 1 回レンダリングし、ゲーム ループの残り時間がフレーム レート (つまり 1/60) 未満の場合は、残りの期間は寝ます。これらの機能を無効にしてその動作を記述したところ、同じ症状が発生したため、これが SFML の動作だと思います。

今、私は上記のアプローチが悪いことだと言っているのではありません。実際、アプリケーションが不必要な作業を行っていない点が気に入っています (フレーム制限を設定してアプリケーションを実行する場合とフレーム制限を設定しないでアプリケーションを実行する場合では、リソースの使用量に顕著な違いがあります)。しかし、なぜ動きが途切れ途切れなのか、私にはよくわかりません。gafferongames の記事を読みましたが、ここには当てはまらないようです。

任意の支援をいただければ幸いです。

編集:問題を特定しましたが、解決方法がわかりません。

オブジェクトが「ジャンプ」するフレームでは、m_distance は他のフレームの距離よりも大幅に大きくなります。よく調べてみると、GetFrameTime() もフレーム間の以前の時間よりも大幅に大きくなっています (有意差は 2 ~ 3 ミリ秒のようです)。

Edit2: http://gafferongames.com/game-physics/fix-your-timestep/のおかげで解決策を思いついたと思います。GetFrameTime を使用する代わりに、固定のデルタ時間を設定します。

0 投票する
2 に答える
3065 参照

c# - フレームレートの高い画像を表示する

ここに問題があります: 私はカスタム ハードウェア デバイスを持っており、C#/WPF でそこから画像を取得し、それらをすべて 120+ FPS でウィンドウに表示する必要があります。

問題は、イメージの準備ができたことを示すイベントがないことですが、常にデバイスをポーリングし、新しいイメージがあるかどうかを確認してからダウンロードする必要があります。

どうやらいくつかの方法があるようですが、私はまだ正しい方法を見つけることができませんでした。

これが私が試したことです:

  • シンプルなタイマー (または DispatcherTimer) - 遅いフレーム レートではうまく機能しますが、たとえば 60 FPS を超えることはできません。

  • シングル スレッドの無限ループ - 非常に高速ですが、ウィンドウを再描画するには、DoEvents/それと同等の WPF をループに配置する必要があります。これには、一部のコントロールからのキー押下イベントが発生しないなど、他の望ましくない (奇妙な) 結果があります。

  • 別のスレッドでポーリング/ダウンロードを行い、UI スレッドで表示すると、次のようになります。

    これは比較的うまく機能しますが、CPU にかなりの負荷がかかり、もちろん、複数の CPU/コアがない場合はマシンを完全に停止させます。これは容認できません。また、このように多数のスレッド競合があります。

問題は明らかです。より良い代替手段はありますか、またはこの場合、これらのいずれかが適していますか?

更新:
どういうわけかそれについて言及するのを忘れていました (まあ、この質問を書いているときにそれについて考えるのを忘れていました)、もちろん、すべてのフレームを表示する必要はありませんが、保存できるようにすべてをキャプチャする必要がありますハードドライブに。

Update2: DispatcherTimer メソッドが遅いのは、すべてを十分に高速に処理できないためではなく、DispatcherTimer がティック イベントを発生させる前に次の垂直同期を待機するためであることがわかりました。tick イベントでは、保留中のすべての画像をメモリ バッファー (画像をディスクに保存するために使用) に保存し、最後の画像だけを表示できるため、これは実際に私の場合は良いことです。

キャプチャによって完全に「殺されている」古いコンピューターに関しては、WPF は非常に遅いソフトウェア レンダリングにフォールバックするようです。私にできることはきっと何もない。

すべての答えをありがとう。