2013-06-12 10 views
5

私は、JavaScriptを使用してHTML5でリアルタイムマルチプレイヤープラットフォームゲームを作成する予定です。 Web上で約4時間を検索した後、私は永遠の質問について最新の回答を見つけることができませんでした:私のゲームをDOMでレンダリングするのはキャンバスの中でレンダリングするよりも速いでしょうか?ゲームはドキュメント全体になります。 2/4人のプレーヤーが地図上でジャンプし、お互いに撃ちます。爆弾は爆発するでしょう。そう?それは何だろう。私は2年前にDOMを使ってドローイングアプリケーションを作ったことを思い出しました。それはちょっとスムーズに動いていましたが、キャンバスのスピードは今日より良いと思いますか?君たちありがとう。HTML5ゲーム、キャンバス、またはdiv?

P.S.私もダーツを使うと思います。

+2

最近のほとんどのJavascript(またはダート)ゲーム私はあなたがまたはcanvas要素なしでこのようなことを行うには、本当に難しいだろうことができないことをかなり確信していますキャンバスにレンダリングされます。ダーツには高度なキャンバスプログラムのライブラリがあります(私はほとんど確信しています)。いくつかのDartサンプルプロジェクト、またはDartパッケージマネージャー[Pub](http://pub.dartlang.org)を見てください。すぐに始めるにはいくつかのものを見つけてください。 – beakr

+0

最新のブラウザのほとんどは、ハードウェアアクセラレーションされたキャンバスを備えています。実際のパフォーマンスはまだブラウザによって異なります。また、キャンバスとDOMレンダリングの両方を使用して、ソリューションをメッシュ化することもできます。しかし、キャンバスは、レンダリング(粒子、影、変形など)に関してゲームがより複雑になるにつれて、その美しさを示すでしょう。 –

+0

Dartを使用する場合は、http://dartgamedevs.orgで多くの情報とコードを確認してください。 –

答えて

6

私はキャンバスを使用しています。これは直接描画モードなので、同じことをすると言います。ただし、ハードウェアアクセラレーションが可能な限り強制的に行われるようにする必要があります。これを行うには、<canvas>要素のスタイルをtransform:translateZ(0);(またはブラウザの解釈が異なる、たとえば-webkit-transform:translateZ(0);)に設定します。キャンバスがネイティブコードに近づき、特にその中から最大限のパフォーマンスを引き出すための簡単な方法を使用すると、DOMを操作するのが遅くなる可能性があります。

私のゲームはこれとは別のプラットフォームでうまくやっているようです - 古いプラットフォームでは普遍的ではありません(古いAndroid OSでは遅れていますが、JS &ブラウザレンダリングエンジンはそれほど速くありませんでした)多くのプラットフォームで

2

説明するゲームの種類に合わせてキャンバスが最適ですが、プレーヤーの名前を尋ねたり、ゲーム内にmenúまたはprofileセクションを作成するなど、キャンバスを使用してもDOM要素は非常に便利です。あなたはDOM要素を表示する必要があるときにキャンバスの上に絶対位置を持つdivをレンダリングし、キャンバス要素のスプライトを描画しアニメーション化するような "ゲーム用のもの"をすべて実行できます。

Canvasが最適な理由は簡単です。

http://galloman.github.io/ss2d/samples/skeletons2.html

もっとにて:http://ss2d.wordpress.com/support/

+0

ようこそ!主観的な意見を避けるように(つまり、「私はかなり確信しています」)、可能な限り参考情報を事実上の情報として提供してください。乾杯! – butch

+0

Galloありがとうございました。 :D – Romeo

関連する問題