0

Canvas Games を作るために Google の GWT 用のゲーム開発 API をやろうとしていて、プリレンダリングの問題で質問を受けました。

removeChild()最初に、ブラウザー/Javascript/GWT が削除されたキャンバスをどのように管理するのか、(GWT を使用して) orを使用した後、またはRootPanel.Remove()メモリから削除するための正しい方法を使用した後、そのデータがメモリに残っているかどうかは完全にはわかりません。

したがって、私が思いついた解決策は、(必要に応じて) 複数の大きな非表示のキャンバスをプレレンダリング パレットとして使用し、drawImage() マジックを使用して、メイン コンテキストで描画されるプレレンダリングされた画像をジャンプし、挿入に関する私自身の問題を抱えていることです。 、削除、空きスペースなど。

これが最善の解決策ですか?それとも、プリレンダリングされた小さな画像とテクスチャごとに 1 つの小さなキャンバスを使用する必要がありますか? それとも、まったく違うものを試してみるべきですか?

前もって感謝し、私のつづりで申し訳ありません。

4

1 に答える 1

1

キャンバスを使用してアイテムを事前にレンダリングすることは良い考えですが、常に最良の選択とは限りません。あなたのアイテムが複雑な場合(グラデーション、影、視覚効果など)、はい、それは良いでしょう. ただし、アイテムが単純な場合 (画像、ポリゴン、単純なベジエ曲線など)、フレームレートは増加しませんが、減少する可能性があります (drawImage のため)。その場合は、リアルタイムでレンダリングすることをお勧めします。

私の実験では、いくつかの小さなキャンバス (メモリが少ないかもしれません) を使用してもパフォーマンスが低下することはありませんが、大きなキャンバス (オブジェクト指向のシーンなど) よりも管理が容易になる可能性があります。アイテムが時々変更される場合、一時的なキャンバスのサイズを簡単に管理できます。

この助けを願っています。

于 2013-02-11T10:12:28.200 に答える