タグ付けされた質問 「html-canvas」

HTML5の新機能。JavaScriptアプリがブラウザーに描画面を表示できるようにします。

1
スプライトをマウスの向きに設定
私はhtml5キャンバスゲームを構築しています。スプライトをマウスカーソルに向ける方法が必要です。スプライトのX座標とY座標、およびポインタのX座標とY座標があります。私が行き詰まっているのは、スプライトをポインターに向けるのに必要な数学だけです。それはすべて2Dの世界にあるので、あまりにも複雑になるとは思えませんが、私はこれについてはほとんど経験がありません。 また、この種のことについての記事/ブログ投稿への役立つリンクは素晴らしいです(特に2Dゲームプログラミング、特にJavaScriptではありません)。 追加するには、X位置とY位置を使用してカーソルに向かって自分を指す角度が必要であることに注意してください。 カーソルの座標を知るにはどうすればよいですか?
9 2d  html5  html-canvas 

2
タイルマップを効率的に保存してWebに表示する方法
約 これらは実際には1つの2つの質問です。まず、大量のタイルデータを効率的に格納する方法を探しています。もう1つの側面は、データセットのクエリとタイルの表示を扱います。まず、背景を説明しましょう。 私たちは、CraftyJSライブラリを使用してCanvasにレンダリングするブラウザーベースのマルチプレイヤータイクーンゲームを作成しています。GUIのバックグラウンドでは、PHPでYii Frameworkを実行しており、すべてがPythonランダムマップジェネレーターとゲームエンジンに接続しています。 これが最初のラフマップレンダーの外観です。http://i.imgur.com/khAXtl.png 地図データの保存 ゲームの世界は、ゲームが開始するたびにランダムに生成されます。サイズは、各プレーヤーの100x100六角形タイルです。つまり、3人用のゲームでは、90.000のタイルが作成されます。現在は、マップをレンダリングするためのJavaScript配列を作成しています。 これはレンダリングには問題なく機能しますが、マップを操作する場合は、タイルを所有するプレーヤー、その上に構築する構造の種類、現在の価格などを保存する必要があります。最初は、少なくともプロトタイプについては、MySQLを使用したかったのですが、いくつかのテストの後、それは私が望むほど正確ではありません。たぶん、MongoDBのようなオブジェクトストアは、SQLテーブルではなくタイルデータを格納するのに適しています。それとも何か他に? 地図を表示する 私が目にするもう1つの問題は、マップ内を移動することです。現在、ビューポートにない場合でも、タイルごとにCraftyエンティティを作成しています。Craftyはビューポート内のタイルのみをレンダリングしますが、保存し、各レンダリングイベントですべてのタイルを反復処理する可能性があるため、これは低速です。私が現在持っているのは、移動が非常に遅く、動きが途切れる、描画された生成されたマップです。これを再生可能にしたいと思います。 私の最初のアイデアは、ビューポートにあるタイルの表示されたサブセットをロードすることでした。しかし、プレーヤーがビューポートを空白の領域に移動する場合、サーバーにクエリを送信して応答が返されるのを待つ必要があります。そうしないと、マップをレンダリングできません。これはネイティブアプリケーションでは問題ありませんが、Webゲームでは遅延します。 マップからスムーズなパフォーマンスを得る方法は、タイルのより大きなサブセットをJavaScript配列にプリロードし、それをキャッシュとして使用することです。プレーヤーにはいくつかの画面が「キャッシュ」されており、ビューポートを移動すると、JSの「キャッシュ」により多くのタイルがロードされます。 私は正しい方向に向かっていますか?同様のことをした人からもっと情報をもらいたいです。私はゲーム開発に不慣れですが、ここ数週間にわたって多くの情報源を経験してきました。

1
OpenGLで頂点を描画する最も効率的な方法
私はOpenGL 3Dゲームを書いています。地形や使用中のオブジェクト用の多数の三角形があります。 私はOpenGL公式ガイドから勉強していて、最初に提示された方法は、描画したい各頂点のglVertex後に関数を呼び出すglBeginことです。 ただし、何千もの三角形を描く必要がある場合、この方法はかなり古くて非効率的です。各フレームで変化しない情報をグラフィックカードのメモリに保存する方法があるので、各フレームをレンダリングすると、その情報はすでにそこにあります。より「不安定な」情報については、おそらくフレームごとに新しい頂点データを送信する必要があるため、別の手法の方が効率的かもしれません。 私の質問に来ます:頂点情報をハードウェアに送信し、レンダリングするための指示を与えるために使用される最も近代的で効率的なOpenGL関数と技術の明確な説明をお願いします。 フレーム中にめったに変化しない頂点データをレンダリングするための順序を送信するための最良の方法とOpenGLツールは何ですか(私は地形とオブジェクトについて考えます)、フレーム中に大きく変化する頂点データを送信するための最良の方法は何ですか?

5
IMGとCANVASでdrawImageを使用するとパフォーマンスが大幅に異なる
画像をキャンバスにレンダリングする簡単なテストをいくつか組み合わせました。1つはIMGからレンダリングし、もう1つはオフスクリーンCANVASからレンダリングします。あなたはここでコードと結果を見ることができます:http : //jsperf.com/canvas-rendering/2 ほとんどのブラウザでは、状況が逆転するChromeを除いて、画像からのレンダリングはキャンバスからのレンダリングよりもはるかに高速です。違いの理由を誰かが説明できますか?結局のところ、同じピクセルデータを同じ宛先にレンダリングしています。

5
ブラウザベースのゲームのパフォーマンスに関して、JIT(javascript / canvas)とAOT(Flash)はどのような関係がありますか?
私の経験では、今日まで、Flashベースのゲームよりも、JavaScript(Canvas)ベースのゲームのエンティティの動き/アニメーションの視覚的な遅れが多く見られます。 これはなぜですか-JavaScript対Flashの特定のシナリオにおけるJITコンパイラーとAOTコンパイラーの間の最も基本的なレベルでの不一致は正確には何ですか。

2
16進タイルをスクロールする方法は?
これに対する答えを見つけることができないようです。ヘックスタイルのマップがあります。スクロールを実装したい。 現在のコード: drawTilemap = function() { actualX = Math.floor(viewportX / hexWidth); actualY = Math.floor(viewportY / hexHeight); offsetX = -(viewportX - (actualX * hexWidth)); offsetY = -(viewportY - (actualY * hexHeight)); for(i = 0; i < (10); i++) { for(j = 0; j < 10; j++) { if(i % 2 == …

2
速度から角度方向を計算する
発射体の角度方向を計算しようとしています。XとYの速度であるため、その動きの大きさを見つけることができますが、その角度方向(ラジアン)を取得することに頭を悩ませています動いている... 私はそこにあると仮定しtanたりsin、関係が、私はそうでない場合はビット無知です...
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.