問題タブ [2d-games]

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.

0 投票する
1 に答える
3122 参照

java - プログラミング重力

私はゲーム(JAVA)をプログラミングしていて、重力を加えたいと思っています。このような数式や何かを見つけようとしましたが、それを行うには非常に異なる方法があります。リアルな重力をシミュレートし、オブジェクトが床に触れたときにリバウンドする式を探しています。英語が下手でごめんなさい。

0 投票する
1 に答える
114 参照

javascript - 衝突検出の難しさ、プレイヤーが飛ぶ

今日は 2D プラットフォーム ゲームを作成しました。プレイヤーは左右に移動してジャンプできます。壁の側面に登ることはできません。たとえば、壁の横を右から上に押すと、壁をよじ登ります。見て、私が見逃したものを言ってもらえますか。

0 投票する
2 に答える
657 参照

opengl - 2Dゲームのカスタムzbuffer/フラグメントシェーダー(glsl)のフレームバッファーからピクセルを読み取る

私はOpenGLで2D(実際には2.5D)アイソメトリックゲームを書いています。非常に複雑になる可能性のあるタイルの並べ替えを回避するために、ある種の深度バッファーをシミュレートしようとしています。タイルごとに2つの画像があります。1つは色情報、もう1つは深度情報です。

画像1:http : //dl.dropbox.com/u/91457585/depth_buffer_test.png

最初のアプローチとして、私はこれらの写真を作成しました。アイデアは、それらを互いに重ねて描画し、シェーダーを使用して深度テストを実行することです。この場合、私が知っていることはあまり意味がありませんが、それが技術的に可能かどうかを確認するための最初のアプローチにすぎません。

だから今私の問題に!

以下に、シェーダーのコードを示します。フレームバッファの深度情報をオブジェクトの深度情報と比較することになっています。しかし、それはうまくいかないようで、今私はどこかでこれが私がしたように不可能であると読んだ。

リスト:

では、デプスバッファをシミュレートするためのより良い方法はありますか?たぶん、実際のデプスバッファに書き込むことによって?

0 投票する
1 に答える
77 参照

c++ - 2 つの ClutterActors 間で衝突が発生したときに信号を検出するにはどうすればよいですか?

g_signal_connect を使用して 2 つの ClutterActors の衝突点を検出したいと考えています。

「enter-event」のようなイベントを検出する必要があります

0 投票する
1 に答える
151 参照

java - 自動的にスクロールするビューフレームを表示するためにJavaSwingコンポーネントを利用する微妙な問題

私は、JavaSwingコンポーネントを使用してGUIベースのゲームアプリケーションをプログラムしようとしている最中です。基本的なフレームワークは次のとおりです。aとaJFrameを含むA。さらに、それ自体が2つを含む2つの層を含むを含みます。(不思議なことに、この2つは、最上部の不透明でないパネルのユニットペインと、最下部の不透明なパネルの地形ペインに対応しています。)JScrollPaneJPanelJScrollPaneJPanelJLayeredPaneJPanelsJPanels

自動ウィンドウスクロールは、現状のプログラムの機能です。明確にするために、記述されたコードは、ウィンドウターゲットとして適切なユニットを自動的に指定し、ウィンドウ表示を前提として、そのユニットを画面の中央位置にできるだけ近く表示するように、表示されているウィンドウをスクロールします。制約。この手順が私のジレンマの原因です。ウィンドウのサイズを変更する前に行われたメソッドの呼び出しを除いて、特定のメソッドの実行では、メソッドは正しく機能します。メソッドが正しく機能しないのは、アプリケーションの最初の起動時のみです。

私のコードは長すぎてこの投稿のコンテキストで完全に投稿できないと思うので、最初はウィンドウスクロールを処理するコードのみを提供し、次に必要に応じてパブリックDropBoxアカウントに追加のコードを投稿します。

私はすでにこのメソッドのかなり堅牢なテストを完了しており、結果は次のとおりです。アプリケーションを最初に起動したとき、upLeftXと内に保持されている値upLeftYは両方とも-24に設定されています。これは、プログラムの実行全体を通じて一貫しています。(それぞれが負の値に設定されているのはかなり奇妙ですが、十分に管理しやすいようです。)ただし、範囲内の値scrollDestは、プログラムの最初の起動とその後の実行の間で異なります。基本的に、発生するのは、コードが-24未満の負の整数であるscrollDest.xおよびscrollDest.yの値を取得することです。

printステートメントを含む簡単な例の実行後、次の結果が出力されました。

scrollDest.xおよびy:-800 -336

scrollDest.xおよびy:0 0

scrollDest.xおよびy:1051 2145

scrollDest.xおよびy:1051 2145

scrollDest.xおよびy:610 -312

scrollDest.xおよびy:610 0

この行は、上記のメソッドの2つのステートメントのSystem.out.println("scrollDest.x and y: " + scrollDest.x + " " + scrollDest.y); 前後の両方に配置されました。if値は、便宜上ONEと呼ばれるユニットでのプログラムによるメソッドの最初の呼び出し、ボード上の別のユニットでのプログラムによる2番目の呼び出し、TWOを反映し、最後にメソッドの3番目の呼び出しが1回続きます。再びONEに。

この不一致は私の問題の根本または反映のいずれかであり、私はまだ問題を修正するための信頼できる方法を考案していません。

説明や詳細についての質問には喜んでお答えします。よろしくお願いします!

0 投票する
1 に答える
190 参照

c++ - イテレータエラー内のベクトルイテレータ

私のポートフォリオの小惑星ゲームに取り組んでいます。次のコードブロックでエラーに遭遇します。エラーは、イテレータが延期できないということですが、エラーを絞り込みました。コードを示した後、それについて話します。

すべてが少し厄介に見える場合は、簡単な説明を次に示します。

イテレータが各小惑星を通過するときに、プレーヤーが各小惑星と衝突しているかどうかを確認します。現在、これは何もしません

次に、弾丸のベクトルを繰り返し処理し、各弾丸を現在の小惑星と照合します。衝突が発生した場合は、弾丸と小惑星の両方を破壊して消去し、破壊された小惑星がベクトル内で保持していた位置を印刷します。

それが終わったら、次の小惑星のために弾丸の反復をリセットします。

現在の私の主要な問題は、(*イテレータ)<-小惑星による更新の呼び出しです。

この問題は、小惑星ベクトルの最後のオブジェクトを消去しているときにのみ発生します。私は、eraseが次のオブジェクトにイテレータを返すことを知っています-次のオブジェクトが存在しない場合、エラーがスローされます(イテレータがnullptrを指しているので、正しいですか?)。nullptrのチェックを行っていますが無駄です。

誰かが彼らが提供できるアドバイスや助けがありますか?数時間頭をかいてくれてありがとう!

0 投票する
1 に答える
666 参照

html - Xamarin 製品で HTML5 ゲームをデプロイできますか?

開発中の HTML5 ゲームがあり、Xamarin 製品を使用してアプリを iOS、Android、および Windows Phone に展開することに意味があるかどうか疑問に思っていました。

  • Xamarin 製品はこれをサポートしていますか?
  • Xamarin 製品をラッパーとして使用すると、何かメリットがありますか? 導入の容易さ、ネイティブ API アクセスなど。
  • シンプルな横スクロール 2D プラットフォーマーのパフォーマンスはどうなりますか?
0 投票する
3 に答える
306 参照

javascript - JavaScript ゲームの非同期/可変フレームレート

これはばかげた/以前に回答された質問かもしれませんが、それは私と私の友人を少しの間困惑させてきたものであり、私は良い答えを見つけることができませんでした.

現在、すべての JS Canvas ゲームをティックで実行しています。例えば:

これは、ハイエンド システムの CPU 負荷の低いゲームでは問題なく動作しますが、ティックごとにもう少し描画しようとすると、スロー モーションで実行され始めます。私の質問は、可変フレームレートを許可しながら、x、y 位置とヒット検出の計算をフルスピードで実行するにはどうすればよいですか?

補足: requestAnimationFrame API を使用しようとしましたが、正直なところ、少しわかりにくかったです (これに関する優れたチュートリアルはそれほど多くありません)。また、処理が高速化される可能性はありますが、問題が完全に解決されるわけではありません。

みんなありがとう - どんな助けでも大歓迎です。

0 投票する
0 に答える
357 参照

game-physics - ターゲットと予測の交差の背後にある数学はどのように機能しますか?

そのため、現在、私はタワーディフェンスゲームに取り組んでおり、ミサイルを発射してターゲットに命中させるために、ホーミングとミサイル/ターゲット交差予測pの両方の手法を試しました。

審美的には、後者の方法がシームレスに見えるので、私は後者の方法の方が好きです。問題は、基本的にこのスレッドの 2dゲームの2番目の投稿から数学をコピーしたことです。発射物とユニットの交差を予測して移動するターゲットに向かって発砲します。正直なところ、男がこの方程式をどのように定式化したかはわかりません。

私は数学のバックグラウンドを持っていて、二次方程式が何であるかを理解していますが、私が理解していないのは、彼がそれをどのように思いついたのかです。二次方程式の問題のサンプルをグーグルで検索しましたが、問題は単純すぎるか、無関係のようです。

この数学をもう少しよく理解するのに役立つ本やサイトに誰かが私を導くことができますか?

ありがとう

0 投票する
1 に答える
549 参照

javascript - 敵のスプライトはプレイヤーに向かって奇妙な道をたどります

キャンバスゲームのスプライトを、衝突するまで常にプレーヤーに向かって移動させようとしています。これを行う関連関数は次のupdate()関数です。

this.x、、およびはthis.y、それぞれ敵のX位置、Y位置、回転、および速度です。this.rotationthis.speed

それは一種の動作ですが、敵はプレーヤーから約300ピクセル離れてから、左に向きを変えてプレーヤーから離れ始め、プレーヤーに向かってきた方向から90度の角度で移動します。

これは説明が難しいので、問題を示すのに役立つ簡単なビデオを録画しました:http ://www.screenr.com/AGz7

敵はオレンジ色のスプライトで、プレイヤーは白いスプライトです。

敵をプレイヤーに向かって動かすために私が行っている計算にはどのような問題がありますか?