0

私はフラッシュ ゲームに 1 か月間取り組んできましたが、これはブラウザーで簡単にプレイできるはずです (軽い計算です)。そうは言っても、一部のブラウザーでは、ゲームが 15 fps のように見える (ゲームは 80 fps で実行する必要がある) で実行されることに気付きました。これは IE9 で発生することが知られており、次の行を html の先頭に追加することで簡単に修正できました。

<meta http-equiv="X-UA-Compatible" value="IE=9">

これは、IE を強制的に互換モードにし、fps を大幅に改善するクイックフィックスでした (たとえば、約 60 まで)。

それでも、ゲームの実行速度はすべてのブラウザで必要以上に遅いと思います。これは、html バージョンと swf を比較すると明らかです。

また、ゲーム内の動き (html) が「よろめく」こともかなり目立ちます。これらのよろめきは、ゲームの美学を損ない、したがってプレイアビリティを損ないます!

これらすべてのことから、ブラウザーはコンピューターのグラフィックス カードへのアクセスを制限していると私は信じています。

1) html では遅く、swf では速い

2) サウンドは通常の速度で再生されますが、グラフィックは遅れます

編集

3) ゲーム内のすべてのグラフィックはかなり低解像度です (つまり、幅 1x高さ 1 としてゲーム内に表示されるグラフィックは、幅 1x高さ 1 の png のムービークリップです) + 可能な限り最小限に抑えます

4) 非常に (計算上) 単純なフラッシュ プロジェクトを作成しましたが、グラフィックの動きに同じ問題が発生しました。

ブラウザでのゲームの滑らかさを向上させる方法について誰かアドバイスをもらえますか?

4

1 に答える 1

1

これは、SWF が HTML ページにどのように埋め込まれているかの兆候である可能性があります。Flash は、ブラウザ ウィンドウにコンテンツをレンダリングする方法を決定する多くの「ウィンドウ モード」をサポートしています。これはwmode、SWF が HTML ページに埋め込まれている場合にパラメーターを介して設定されます。

Adobe のドキュメントによると、最高のパフォーマンスを得るには、これを「直接」に設定する必要があります。

direct - 直接パス レンダリングを使用します。これにより、画面バッファーでの合成がバイパスされ、SWF コンテンツが画面に直接レンダリングされます。この wmode 値は、コンテンツの再生に最適なパフォーマンスを提供し、Stage Video または Stage 3D を使用する SWF コンテンツのハードウェア アクセラレーションによるプレゼンテーションを有効にするために推奨されます。

実際には、wmodeは不規則に動作する可能性があるため、ドキュメントに記載されている代替手段を試すことが役立つ場合があります。

パフォーマンスの向上に役立つその他のオプションは次のとおりです。

  • を使用しstage.scaleMode = StageScaleMode.NO_SCALEます。これにより、埋め込まれたサイズが元のサイズと一致しない場合に、コンテンツがスケーリングされなくなります。スケーリングは CPU 使用率に影響するため、無効にするとフレームレートが向上します ( StageScaleMode#NO_SCALEを参照)。
  • opaqueBackground透明でないムービークリップ (ルート ムービークリップなど) に設定します。透明度には、前景色と背景色を乗算する追加の計算が必要です。不透明な背景を設定すると、これらの追加の計算がバイパスされ、パフォーマンスが向上する場合があります。( DisplayObject#opaqueBackgroundを参照)
于 2011-08-13T14:40:37.887 に答える