タグ付けされた質問 「javascript」

「JavaScript(略してJS)は、動的で弱く型付けされたファーストクラスの機能を持つプロトタイプベースのスクリプト言語です。マルチパラダイム言語であり、オブジェクト指向、命令型、関数型のプログラミングスタイルをサポートしています。」ウィキペディアから。http://en.wikipedia.org/wiki/JavaScript

1
ゲームを完了できるようにする方法
探しているものの正しい用語がどのように記述されているかわかりません。これが重複する質問である場合はお詫びします。しかし、ゲームが無限スクローラーとの関係で「完全」であることを確認するための用語/アルゴリズムはありますか?完了可能とは、画面に追いつけようとするときにユーザーがブロックをジャンプし続けなければならないゲームの場合、ユーザーが到達できる新しいブロックが常に到達可能であることをどのように確認できるかということです。理論はジャンプする? 理論的には、ユーザーがジャンプできる高さを確認し、その範囲内にブロックがあることを確認しますが、それ以外に何かありますか?つまり、新しいブロックを配置するときに、重複しないことを確認するための高額なチェックを回避しますか? 具体的にはhtml5 / jsを調べていますが、この用語または調査できる特定のタイプのアルゴがあるかどうか疑問に思いましたか? ありがとう

3
世界についてゲームクライアントを更新する頻度は?
socket.ioを使用して、他のMMORPGと同様の通信、つまりメッセージとの安定した接続があります。 これまでの私の設計では、クライアントはすべての更新フレームでプレーヤーの位置とアニメーションフレームを送信します。サーバーはそのメッセージを受信すると、すべてのクライアントにブロードキャストし、それに応じてグラフィックを移動します。 これらを「収集」して、たとえば1秒の1/10に1回放送するほうがよいでしょうか。 また、クライアントは、発生と同時に多くの異なるメッセージ(exp得、アイテムをクリック)を送信するのか、それとも1つだけ収集するのか?最初の方が簡単に実装できます。

1
四角形ツリーで形状(長方形)はどのように機能しますか?
クワッドツリーはゲームにとって理想的なデータ構造であると言われましたが、クワッドツリー内でシェイプがどのように機能するかを正確に理解できません。 私はこれをJavaScriptで行っていますが、これらの質問はどの言語の四分木にも当てはまると思います。 基本的な(x、y)ポイントとポイント挿入が四分木でどのように機能するか、そして紙の上でそれを実行できることはほぼ理解していると思います。 ここにあるJSfiddle私はポイントを試してのは。 1つのケースを除いて、ポイントを使用した私のテストは期待どおりに機能しています。 しかし、私の混乱は、長方形のような形状が関係しているときに始まります。形状のある四角形ツリーから取得する場合、形状の各ポイントと、それらがどのノードに分類されるかをチェックしますか?また、各図形の(x、y、width、height)パラメーターを受け入れる場合、図形の挿入はどのように機能しますか?開始点からの幅/高さを使用して他のコーナーポイントを計算してから、適切なノードに分配しますか?挿入された形状が4つのノードにまたがる場合、その形状のデータは4つのノードすべてに保存されますか? そして、検索メソッドが形状をパラメーター(x、y、width、height)として受け入れる場合、実際には何が行われているのでしょうか。挿入する場合、シェイプがどのノードにまたがるかを最初に確認してから、それらのノードのすべてのオブジェクトを取得しますか? 私はJSfiddleで形状を処理していますが、テストの結果に完全に混乱しています。重複したオブジェクトが返されます! たとえば、赤い四角は、私の検索メソッドに入力しているパラメーターに相当する描画です。この赤い四角は4つのノードすべてにまたがるので、四角ツリーのすべてのオブジェクトを返すはずだと思います。しかし、そうではなく、私はそれが何を返すかを合理化するのに苦労しています。現在コメントアウトされている他のテストがいくつかありますが、コメントを外して実行すると、さらに混乱する結果を確認できます。 とはいえ、四分木のすべてのポイントを返す場合、どうすればよいですか?境界全体のサイズの形状を使用する取得メソッド?たとえば、retrieve(0、0、canvas.width、canvas.height)? JavaScriptの四分木ライブラリ私が使用していますので、私は実際の実装が正しいと評判であると仮定し、様々な他のソースによって参照されています。 私の混乱の多くは、四分木の用語の誤解から生じていると思います。同様に、「ポイント」にも幅/高さのパラメーターがある場合、なぜ彼らは寸法ではなく境界と言うのですか?それは慣習/速記の問題ですか、それとも完全に異なる概念ですか? 御時間ありがとうございます!

3
ゲームが進行するにつれて、攻撃ウェーブの敵の数とチャレンジをどのようにスケーリングできますか?
私は現在、敵がスポーンしてプレイヤーの軍隊を攻撃する防御ゲームを作っています。レベルが1つしかないことを除けば、タワーディフェンスゲームに似ています。敵は、最終的にユーザーが死ぬか、すぐに発生する敵を一掃するのに十分なほど大きな軍隊を集めるまで、発生し続けます(できれば、これが起こらないように十分に挑戦します)。 私が現在苦労しているのは、このゲームをどんどん難しくして、敵が出現する確率が基本的に100%に達するようにする方法です。 これまでのところ、私は次のようなものを持っています if(Math.random() < 1 - (1/elapsed_time) && spawnTimer <= 0 ){ spawnEnemy() spawnTimer = rand(); // random number between 1 and 3 } しかし、そもそも均一すぎるようです。現時点では、1種類の敵のみをスポーンしています。時間の経過とともに、よりタフな敵もスポーンするという考えです。 またspawnTimer、少しランダム化して、時間が経過するにつれて速くなるようにする必要があると思いますが、このセクション全体でロジックが実際にどのように見えるべきかを理解するのが難しいです。この種の式の大まかなアイデアを手伝ってくれる人はいますか? 私は現在、JavaScriptを使用してゲームを作成していますが、それは明らかにコンセプトに関するものです。

5
ピンボールゲームの2D衝突検出
これまでのゲームでは、ボックスとの単純な2D衝突を使用してから、ピクセルレベルで衝突をチェックしました。 ほぼ多数のフレームでピンボールゲームを作成する場合、ボールは壁または別の表面に接触するため、別のアプローチはありますか?

1
gluLookAtはどのように機能しますか?
私の理解から、 gluLookAt( eye_x, eye_y, eye_z, center_x, center_y, center_z, up_x, up_y, up_z ); 以下と同等です。 glRotatef(B, 0.0, 0.0, 1.0); glRotatef(A, wx, wy, wz); glTranslatef(-eye_x, -eye_y, -eye_z); しかし、ModelViewマトリックスを出力すると、への呼び出しがglTranslatef()正しく機能していないようです。コードスニペットは次のとおりです。 #include <stdlib.h> #include <stdio.h> #include <GL/glut.h> #include <iomanip> #include <iostream> #include <string> using namespace std; static const int Rx = 0; static const int Ry …

3
エンティティコンポーネントシステムベースのエンジン
注:これはJavaScriptでプログラミングしていますが、ほとんどの場合、言語に依存しないはずです。 エンジンをECSベースのエンジンに変換することを考えています。 私は基本的なアイデアを得ます(注:これは間違っています、私の答えを参照してください): エンティティはゲームオブジェクトです。 コンポーネントは、エンティティに「接着」できる機能(reactToInput())または状態(position)のビットです。 システムには、管理および更新するエンティティのリストがあります。 しかし、私は実装といくつかの詳細を取得することを完全に確信していません... 質問:システムはさまざまな種類のエンティティで動作できますか?私は通常Scene、エンジンで呼び出されるクラスの例を示しますが、これもこの目的に役立ちます。シーンは、レンダリング、更新、レンダリング(ライト)に影響を与える可能性のあるすべてのオブジェクトのコンテナであり、将来的には2DSoundEmitterオブジェクトも含まれる可能性があります。それは高レベルのインターフェースを持っているので、ユーザーは自分が使用しているオブジェクトのタイプscene.add()や、そのようなすべてのものについて心配する必要はありません。 私はそれがSceneシステムかもしれないことを理解しています。エンティティを取り込んで格納し、更新メソッドを呼び出して、状態を変更することもできます。しかし、問題があります。上で説明したように、にはさまざまなタイプのオブジェクトをScene供給することができます。たとえば、シーンにレンダリング可能なオブジェクト(「ドローアブル」)とライトの両方が含まれている状況ではどうすればよいですか?相互作用する前にエンティティを型チェックする必要がありますか?または、さらに低いレベルで解決する必要があります。任意のオブジェクトに追加できるコンポーネントを作成すれば、ライトはとコンポーネントを持つエンティティになります。それは受け入れられますか?LightSourceLightSourcePosition また、従来の継承と従来のクラスを引き続き使用することは良い習慣ですか?たとえば、自分Rendererがどうなるかわからない!これはシステムではありません。唯一の機能は、カメラとシーンを取り込み、すべてをレンダリングして、エフェクト(シャドウなど)を適用することです。また、ゲームのコンテキスト、幅、高さを管理し、翻訳を行います...しかし、それはまだシステムではありません! 編集: ECSで見つけたリソースをリンクできますか?良いものを見つけるのに苦労しています。

4
n個のオブジェクトのシステムの衝突チェック効率を上げる方法はありますか?
多くの画面上のオブジェクトで構成されるゲームを作成しています。その1つがプレーヤーです。どの反復でもどのオブジェクトが衝突しているかを知る必要があります。 私はこのようなものを作りました: for (o in objects) { o.stuff(); for (other in objects) if (collision(o, other)) doStuff(); bla.draw(); } これにはO(n ^ 2)があり、これは悪いと言われています。これをより効率的に行うにはどうすればよいですか?私はこれをJavascriptで行っています、そしてnは通常30より低くなります、これが同じままなら問題になりますか?

3
2点間の線上の点を取得する
私はJavaScriptで単純な宇宙ゲームを作成していますが、今はベクトルに関して壁にぶつかっています。 ゲームビューは、2Dグリッドでトップダウンです。ユーザーがグリッドをクリックすると、宇宙船がその場所に飛びます。 したがって、2つのポイントセットがある場合: { x : 100.2, y : 100.6 }; // the ship { x : 20.5, y : 55.95 }; // the clicked coordinates ゲームループが1秒あたり60回の反復でティックし、望ましい船の速度が1ティックあたり0.05ポイント(1秒あたり3ポイント)である場合、ゲームループの各ティックごとに船の新しい座標セットを計算するにはどうすればよいですか? ps慣性や船に影響を与える複数のベクトルを考慮したくないので、船は何をしている(つまり、一方向に飛んでいる)のを止めて、クリックした座標に静的な速度で移動したいだけです。

1
V8がSDLスレッドで実行されないのはなぜですか?
私は自分のゲームに対してV8をコンパイルしてリンクすることができ、コードの解釈はうまくいきました。ただし、コードを分割したいので、ゲームループは1つのスレッドに存在し、スクリプトエンジンはゲームループと一緒に2番目のスレッドで実行する必要があります。私はSDLを使用しているため、このコードを試して新しいスレッドを生成しました SDL_CreateThread(ScriptingEngine::SpawnMain, NULL); ここで、次のコードは私のテストスクリプトエンジンです。 namespace ScriptingEngine { v8::HandleScope handleScope; v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); v8::Persistent<v8::Context> context; void Setup() { // TODO: bind functions to global // ... context = v8::Context::New(NULL, global); } int SpawnMain(void *arguments) { v8::Context::Scope scope(context); v8::Handle<v8::Script> script = v8::Script::Compile( v8::String::New("'Hello World'") ); v8::Handle<v8::Value> result = script->Run(); context.Dispose(); return …

4
JavaScriptゲームからサーバーへのHTTPデータの保護
私がJavaScriptゲームをやっていて、ユーザーがゲームとその結果を正常に完了した場合にゲームでサーバーを更新したいとします。 リクエストがJavaScriptゲームからのものであり、送信されたデータが改ざんされていないことを確認するにはどうすればよいですか。サーバーサイド言語としてPHPを使用しています。 100%フールプルーフになる戦略はないことを理解しています。実行する対策は絶対的な保護というよりも抑止力です。 編集時:(従来のMMOのように)各ユーザーのステップのサーバー検証を使用していないとします。ゲームはWebゲームまたは教育ゲーム(スペースインベーダーやリアルタイムゲームなど)の一部としてのミニゲームであり、これらのゲームのそれぞれにサーバー側コンポーネントを必要とするのは面倒です。 例:ゲームが完了すると、リクエストがサーバーに送信されます。AJAX game_finished.php?user_id=1&outcome=success&score=88 ユーザーは、game_finished.phpにリクエストを送信することで、ゲームが正しく完了したと信じ込んでサーバーを「偽造」できます。これをどのようにもっと難しくすることができますか?

2
トップダウン宇宙ゲーム制御問題
タイトルが示唆するように、私はトップダウンの宇宙ゲームを開発しています。 プレイヤーが制御する船でニュートン物理学を使用するつもりはありません。FlatSpace 2(素晴らしいゲーム)に似た制御スキームを実現しようとしています。マウスコントロールではなく、キーボードコントロールでこの感覚を実現する方法を理解できません。助言がありますか? Unity3dを使用していて、C#またはjavaScript(unityScriptまたは正しい用語は何か)を使用して、コード例をいくつかドロップしたい場合は問題なく動作します。 編集:もちろん、私はFlatSpace 2の制御スキームについて説明する必要があります。マウスボタンを押したまま、船を移動したい方向にマウスを動かします。しかし、それは私が操作方法を知らないコントロールではなく、車の運転と飛行機の飛行の混合感です。それは本当によくできています。YouTubeリンク:iPhoneのFlatSpace2 私はiPhoneゲームを開発していませんが、ビデオはムーブメントスタイルの原則を示しています。 編集2 少し興味があるようですので、私は継続するために使用したコードのバージョンを投稿します。十分に機能します。時々十分で十分です! using UnityEngine; using System.Collections; public class ShipMovement : MonoBehaviour { public float directionModifier; float shipRotationAngle; public float shipRotationSpeed = 0; public double thrustModifier; public double accelerationModifier; public double shipBaseAcceleration = 0; public Vector2 directionVector; public Vector2 accelerationVector = new Vector2(0,0); public …
8 c#  unity  javascript 

0
OpenFLを使用したSceneManagerの実装
OpenFLとHaxeを使用して基本的なSceneManagerを実装しようとしています。OpenFLとHaxeの使用経験はあまりないので、いくつか問題があります。 以下は、SceneManagerクラスの設計方法です。 package; import openfl.display.Sprite; import openfl.Lib; class SceneManager extends Sprite { private var currentScene: ...; public function new(rootScene: ...) { super(); currentScene = rootScene; Lib.current.addChild(currentScene); } public function changeScene(newScene: ...): Void { Lib.current.removeChild(currentScene); currentScene = newScene; Lib.current.addChild(SceneTwo); } } 「...」は、どのシーンでも保持できる一般的な「クラス」タイプに置き換える必要があります。 誰かがこれを解決するのを手伝ってくれるなら、私は本当に感謝するでしょう。

3
2D RTSのグループでのAI移動の終了位置の決定
私は、RTSゲーム(実際にはある種のゲームエンジンのデモ)を作成しました。このゲームでは、ユーザーがゲームで行う基本的な操作は、兵士の束を選択し、マップを右クリックして、指定された場所に移動します。これはJavaScriptであり、ここ(コード)で遊ぶことができます。 兵士が現在の場所から目的地にどのように移動するかという問題を無視して、私の質問は彼らの実際の目的地が何であるかを決定することについてです。これが私がこれまでに試したことです: 試行1:選択したすべての兵士に、マウスをクリックした座標に移動するように伝えます。これは奇妙な振る舞いで、すべての兵士が不自然にターゲットの周りに集まります。 試行2:選択されたすべての兵士の平均座標を見つけ、各兵士のその中心点からのオフセットを見つけ、最後にそのオフセットをマウス座標の周りに変換します。これは、選択した兵士が離れている場合、ターゲットに近づかないことを除いて、正常に機能します。 試行3:マウス座標の周りにグリッドを作成し、選択した各兵士をグリッドのセルに配置します。各兵士が割り当てられたセルに到達すると、これはうまく機能します。ただし、グリッドセルには兵士が生成された順序で割り当てられるため、衝突する場合があります(つまり、右側のすべての兵士が左側に移動しようとします)。これは不自然に見えます。 試行4:以前と同じようにグリッドを使用しますが、最初に兵士を場所別に並べ替えて、それらが適切に並ぶようにします。つまり、グループの下をクリックした場合、グループの最下部の兵士は、グリッドの最下部に配置されます。彼らの目的地に到達します。これはかなりうまく機能しますが、不具合が時々あり、その理由はわかりません。 次に、宛先座標を決定する関数を示します。 function moveSelectedSoldiersToMouse() { var w = 0, h = 0, selected = []; // Get information about the selected soldiers. myTeam.soldiers.forEach(function(soldier) { if (soldier.selected) { selected.push(soldier); w += soldier.width; h += soldier.height; } }); var numSelected = selected.length, k = -1; if (!numSelected) …

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.