問題タブ [tiles-game]
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.
c# - Unity3d のグリッドに 2d を配置する
XNA でゲーム用の小さな MapEditor を作成しました。Unity3dでこれがどのように機能するかを本当に理解していないことを除いて、Unity3dでビルドしたいと思います。
基本的に私が望むのは、グリッドに動的にタイルを追加できる 2D グリッドを作成することです。各タイルには 2D テクスチャが含まれています。
これを支援するためにNGUIを使用することを考えていました。2Dゲームにしてほしい
これが Unity3d でどのように機能するかはわかりません。皆さんが私を正しい方向に向けることができれば幸いです。
前もって感謝します!
c# - アイソメ、画面タイルのみに描画
パフォーマンスを向上させるために、画面にタイルのみを描画する必要があります。これを行うための実行可能な方法は何ですか?
私はこれを試してみましたが、解決できないバグが発生しました。
ここでは、タイルマップを行ごとに描画してみます。最初に描画する最初のタイル (左上隅) を特定し、次に描画する必要がある列と行の数を特定します。
最初はフロートのみを操作し、最後の瞬間にキャストしてフロートを段階的に int に変換しながら、画面上で完全な X=0 行と完全な Y=0 行を取得できましたが、残りはまだ表示されていましたこの絵のように。
カメラを動かしている間、表示/レンダリングされたタイルは不均一と偶数の間で切り替わります。そのため、突然少し下に移動すると、画像に表示されているすべてのタイルが消え、空白が表示されます。さらに移動すると逆になり、移動し続けると、これら2つの状態の間でちらつきます。(行/ 2)と関係があると思いましたが、修正できないようです。
どのタイルを描画するかを計算する方法は良いようです。ズームアウトするとこれが得られます(ズームしても数式はまだ変更されていません)。下の図では、他のタイルが描画されている 2 番目の状態も確認できます。
c# - FPS を殺さずに何千ものタイルを描画する方法
私はこの問題の回避策をあらゆる場所で探しました (解決策が転がっているのが見えないだけかもしれません)。私のゲームは現在、画面上にタイルマップをレンダリングしていますが、実際には画面の境界内にないタイルはレンダリングしません。ただし、各タイルは 16x16 ピクセルです。つまり、画面上のすべてのピクセルに解像度 1920x1080 のタイルが含まれている場合、8100 個のタイルを描画する必要があります。
サイクルごとに多くのタイルを描画すると、私の FPS は本当に死んでしまいます。解像度 800x600 で実行すると、FPS は ~20 になり、1920x1080 では約 3 ~ 5 FPS で実行されます。これは本当に私を夢中にさせます。
スレッド化と非同期タスクの使用を試みましたが、画面がちらつくだけです。おそらく私が間違ってコーディングしているだけです。
これが私が現在使用している描画コードです。
8 ~ 12 のセクションがあります。各タイルは、2 次元配列の char オブジェクトで表されます。
描画ブロックの方法:
Index() メソッドは、char に対応するタイルのフレーム インデックスを返すだけです。
この方法でフレームレートを犠牲にすることなく、実際にこれだけ多くを一度に描画できるようにする方法を考えています。私が提供したコードは明らかにあまり最適化されていませんか?それとも、パフォーマンスを低下させずにこれほど多くの個々のタイルを描画できるようにするために何か特別なことをしなければなりませんか?
c# - DrawImage 関数を使用して正確な結果が得られない
さて、タイルセットを保持する画像があります。次に、PictureBox を「ゲーム画面」として使用します。コードで行うことは、タイル セット (タイル) のスニペットを取得し、それをゲーム画面に配置することだけです。
これが私のコードです。
そして、ここに私の出力があります:
各「タイル」の間にそのスペースがある理由は何ですか (2 ピクセルのギャップです)。コードをゲットーリグすることもできますが、代数を使用してタイルをどこに移動する必要があるかなどをプログラムで把握する予定なので、ゲットーリグは機能しますが、ゲーム全体でそれを行うのは面倒で、少なくとも、ずさんな。
javascript - ホバリング効果でリーフレットマップに正方形のタイルを追加するには?
マップをタイル/テリトリーに分割したいと考えています。そこで、正方形を示す別のレイヤーを用意しました。しかし、このレイヤーは .png 画像ファイルでいっぱいなので、この正方形のデータ/オブジェクトはありません。
また、リーフレットのジオメトリ オブジェクトを使用して正方形を描画しようとしました。ただし、パフォーマンスの問題が発生し、500 以上の正方形が表示される場合があります。
そのようなものを開発する場合、どのような方法を好みますか? UTFGrid? GeoJSON/ジオメトリ? または、他のより良い解決策はありますか?
アップデート:
実際には、正方形の領域に属するデータを取得したくありません。正方形の色を何らかの形で変更したいだけです。つまり、その領域を強調表示したいのですが、ユーザーがマウスオーバーしたときにその場で長方形を作成できるかもしれません。
そして、強調表示だけにUTFGridを使用しないようにしています。しかし、UTFGrid が唯一の方法かどうかを確認したいと思います。