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

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


3
Scorched Earthのような地形を生成するにはどうすればよいですか?
私はウェブ開発者であり、自分のゲームを書き始めたいと思っています。 慣れ親しむために、ここではJavaScriptとcanvas要素を選択しました。 Scorched Earthでそのような地形を生成したいです。 私の最初の試みは、y値をランダム化するだけではいけないことに気づきました。山と谷にはある程度の正気がなければなりませんでした。 私は少しグーグルで検索しましたが、私にとって十分なシンプルなものが見つからないか、間違ったキーワードを使用しています。 ゲームプログラミングはまったく新しい(2003年にVisual Basicを使用してBreakoutを作成したため)ことを念頭に置いて、この例で何かを生成するために使用するアルゴリズムの種類を教えてください。

4
時差等角図:画面上の点の地図座標を計算します
これについてはすでに多くのリソースがあることはわかっていますが、自分の座標系に一致するリソースが見つからないため、これらのソリューションを自分のニーズに合わせるのに非常に苦労しています。私が学んだことは、これを行う最良の方法は変換行列を使用することです。それを実装することは問題ありませんが、座標空間をどのように変換する必要があるのか​​わかりません。 これが私の座標系を示す画像です: 画面上の点をこの座標系に変換するにはどうすればよいですか?

2
複数のキャンバスオブジェクトを使用することは良い習慣ですか?
私たちはHTML5とJavaScriptを使ってジャンプアンドランゲームを開発しており、そのための独自のゲームフレームワークを構築する必要があります。ここにいくつかの困難があり、いくつかのアドバイスをお願いしたいと思います: ゲームのルートを表す「ステージ」オブジェクトがあり、これはグローバルなdivラッパーです。ステージには、div要素でもある複数の「シーン」を含めることができます。再生タスク、一時停止などのシーンを実装し、それらを切り替えます。したがって、各シーンには、キャンバスを表す複数の「レイヤー」を含めることができます。これらのレイヤーには、「ObjectEntities」が含まれます。これは、画像または長方形などのその他の形状を表します。各Objectentityには、あるエンティティの画像を描画できるようにするための独自のtemporaryCanvasがあり、別のエンティティには長方形が含まれています。 ステージにactiveSceneを設定したので、ゲームをプレイすると、アクティブなシーンだけが描画されます。を呼び出しactiveScene.draw()、すべてのサブレイヤーを呼び出して描画し、エンティティを描画します(呼び出しdrawImage(entity.canvas))。しかし、これはある種の良い習慣ですか?描画する複数のキャンバスがありますか?各ゲームループでは、すべてのレイヤーコンテキストがクリアされ、再度描画されます。たとえば、バックグラウンドレイヤーがまだ残っている場合、…これを一度描画して、毎回クリアして再描画するほうが便利ではないでしょうか。または、ステージなどでグローバルキャンバスを使用し、このキャンバスを使用して描画する必要がありますか?しかし、これは高額になると思っていました...

1
マルチレイヤーの2Dタイルマップにライトとシャドウを実装するにはどうすればよいですか?
私は最初からアイソメトリックゲームを作成している最中です。ライトとシャドウを追加する方法や方法を知りたいのですが。 ここまでのコードはここにありますが、今のところ、マップはtrue / false値の単純な3D配列であることを知っていれば十分でしょう。これは環境のショットです: それが単一レイヤーのタイルマップである場合、それは簡単です。必要な2dの簡単なレイキャスティングを理解できます。 ただし、私のマップには複数のレベルの高さと洞窟のような領域があるため、そのために説得力のある影を作成する方法がわかりません。おそらく、ブロックごとのソリューションが唯一の現実的な方法ですか?

2
どのようにすれば、攻撃者は攻撃者だけを攻撃し、攻撃者は攻撃者を攻撃するだけですか?
私のゲームには、さまざまなタイプの善人とさまざまなタイプの悪者がいます。それらはすべてお互いに発射体を発射しますが、どちらのアラインメントでも偶発的な付随的な損傷が発生することは望ましくありません。そのため、悪者は他の悪者を打ったりダメージを与えたりしてはならず、善人は他の善人を打ったりダメージを与えたりすべきではありません。 私がこれを解決することを考えている方法は、Unitインスタンス(これはjavascript、btw)がまたはのalignmentいずれかのプロパティを持つようにすることです。そして、衝突が起きるのは、goodbad class Attack boolean didAttackCollideWithTarget(target) return attack.source.alignment != target.alignment and collisionDetected(attack.source, target) もちろん、これは疑似コードです。 しかし、私がこの質問をしているのは、Unitクラスにさらに別のプロパティを追加する以外に、これを設計するはるかにエレガントな方法があるかもしれないという感覚を得ているからです。

3
JavaScriptで分岐ダイアログを実装するにはどうすればよいですか?
私は非常に基本的なビジュアルノベルタイプのゲームをJavaScriptで作成しています。私は初心者なので、楽しく学習するためにこれを行っています。計画が悪いため、会話の分岐にたどり着くときに少し問題に遭遇しました。 現在、ゲームのスクリプトを文字列変数に保持し、「#〜」などのタグを使用して各シーンを小さな配列に分割し、ゲームスクリプトが次のようになるようにします。 var script = "Hello World!#~How are you today?" var gameText = script.split("#~"); //gameText[0]= Hello World! これは線形のものに最適ですが、ダイアログツリーでブランチをどのように処理する必要がありますか?この方法は非常に複雑に見えます。各パスの長さを正確に把握する必要があり、変更が必要な場合は頭痛の種になるからです。 これをもっと簡単に行うにはどうすればよいですか?私はゲームをWebランタイムで動作させたいので、バニラJavaScriptに固執しようとしています。

1
JavaScriptで高速逆平方根を実装しますか?
Quake IIIのFast Inverse Square Rootは、浮動小数点トリックを使用しているようです。私が理解しているように、浮動小数点表現はいくつかの異なる実装を持つことができます。 では、Javascriptで高速逆平方根を実装することは可能ですか? 同じ結果が返されますか? float Q_rsqrt(float number) { long i; float x2, y; const float threehalfs = 1.5F; x2 = number * 0.5F; y = number; i = * ( long * ) &y; i = 0x5f3759df - ( i >> 1 ); y = * ( …
11 javascript 

9
jquery / javascriptゲームエンジンにはどのようなものがありますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 6年前に閉鎖されました。 そこで、私はjavascript / html5ゲーム開発(これまでXNA / Unityで動作していた)を少し試すことにしました。誰か提案があれば疑問に思います。現在、インパクト、gameQuery、Jawsを調べています。 (また、XNAのように強力なゲームを作成することができないことを少し緊張しています...ただし、2Dを実行するだけです)
11 javascript  html5 

3
ローグライクゲームの状態を保存していますか?
私はHTML5とjQueryを使用して基本的なローグライクに取り組んでおり、問題に遭遇しました。 現在のゲームの状態では、システムはユーザーがフロア間を移動するたびにゲームの状態のみを保存し、オーバーヘッドを最小限に抑えます。これの危険性は、ユーザーが問題を抱えた場合、ウィンドウを閉じて、現在のフロアの最初でゲームに戻ることができるということです。これにより、ゲームの難易度が大幅に低下します(ローグライクの目的をほとんど破ります)。 ブラウザウィンドウを閉じてゲームの状態を保存する方法を調査しましたが、満足できません。私の質問はこれです。「ゲームの状態を保存する」とは、適度に重いajax / postリクエストを意味すると仮定して、この不正行為を阻止するにはどうすればよいですか?マップ全体の状態を保存するのではなく、2Dマップへの増分/手順の変更を定量化する既知の方法論はありますか?私が「最も効率的な方法」を求めているのではないことに注意してください-私の経験不足を正すための既存の方法論を探しています。

5
(ドワーフ要塞のような)ブラウザでアスキーマップとキャラクターを移動するための優れた技術的ソリューション?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 5年前休業。 私のゲームのWebサイト用に、テキスト文字を使用して動物と人を表すWebアプリケーションを作成し、独立した(サーバー主導の)AIを使用してマップスクエア上を移動させたいと思います。 つまり、基本的には、ブラウザ内の小人-要塞マップです。 移動する生き物、mob、npcs、およびpcsがあります。私がこの規模を達成するつもりはないというわけではありませんが、いつでもこのコンテンツの4分の1程度を表示し始めるでしょう。 おそらく一部の背景/固定タイルが静的に読み込まれる可能性があります。しかし、生き物/動物や動くことができるものについては、どのテクノロジーソリューションが最も効果的であるかわかりません。 <canvas>その機能がこのユースケースに適合するかどうかはわかりませんが、私は知っています。確かに、ある程度のJavaScriptが必要になるでしょう。 このユースケースに適合するJavaScriptライブラリまたはキャンバスライブラリはありますか?私が気づいていない別のテクノロジー?これに類似したことをしたウェブサイトの例を知っている人がいるので、私はそれらからアイデアを集めることができますか?

1
スキャンラインを使用したZバッファーの深度補間
私は独自のソフトウェア3dラスタライザを作成する必要があります。これまでのところ、三角形で作られた3dモデルを2d空間に投影できます。 ポイントを回転、移動、投影して、各三角形の2D空間表現を取得します。次に、3つの三角形のポイントを取り、スキャンラインアルゴリズムを実装して(線形補間を使用)、三角形のエッジ(左と右)に沿ってすべてのポイント[x] [y]を見つけて、三角形を水平にスキャンできるようにします。行ごとに、ピクセルで塗りつぶします。 これは機能します。ただし、zバッファリングも実装する必要があります。これは、三角形の3つの頂点の回転および変換されたz座標がわかっているため、スキャンラインアルゴリズムで見つけた他のすべての点のz座標を補間する必要があることを意味します。 概念は十分にはっきりしているように見えます。私はまずこれらの計算でZaとZbを見つけます。 var Z_Slope = (bottom_point_z - top_point_z) / (bottom_point_y - top_point_y); var Za = top_point_z + ((current_point_y - top_point_y) * Z_Slope); 次に、各Zpに対して水平方向に同じ補間を行います。 var Z_Slope = (right_z - left_z) / (right_x - left_x); var Zp = left_z + ((current_point_x - left_x) * Z_Slope); そして、現在のzがそのインデックスで以前のzよりもビューアに近い場合は、カラーをカラーバッファに書き込み、新しいzをzバッファに書き込みます。(私の座標系はx:左->右、y:上->下、z:あなたの顔->コンピュータ画面です;) 問題は、それが問題になることです。プロジェクトがここにあり、「Z-Buffered」ラジオボタンを選択すると、結果が表示されます(「Z-Buffered」モードでは、ペインターのアルゴリズム(ワイヤフレームを描画する場合のみ)を使用していることに注意してください)デバッグ用) PS:補間する前にzを逆数(つまり)に変換する必要があることをここで読みましたz = …

2
ダーティ2Dマップレンダリング
HTML5のマップレンダリングに関しては、「ダーティレンダリング」について人々が話すのをよく耳にします。私はグーグルで検索し、GameDevで検索しましたが、それほど多くはありません。 正確には何ですか? それを適切に実装する方法は?


3
オンラインボードゲームエンジン[終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 ボードゲームのオンライン実装を作成したいと思います。ゲームを作成して、できるだけ多くの人が簡単にアクセスできるようにするには、どのエンジンを使用できますか? できるだけ広くアクセスできるようにしたいので、個別にダウンロードしたアプリではなく、ブラウザーでユーザーインターフェイスを実行するのが最善です。同様に、単一のプラットフォームに限定されず、クロスプラットフォームである必要があります。純粋なJavaScript / HTMLが最適です。これにより、iPadでも使用できるようになりますが、FlashまたはJavaでもかまいません。Silverlightは市場に浸透しておらず(たとえば、インストールされていません)、XNAは非常に制限されています。 良い他の機能は、優れたチャットとソーシャル機能(または他のチャットまたはソーシャルネットワークシステムとの統合)、リーダーボードまたはトーナメントシステム、およびボットの簡単な統合で、十分な人間のプレーヤーがいない場合にAI対戦相手を提供します。ゲームタイマーも、適切な速度で人々を動かし続けるのに適しています。ゲームの記録を保存し、人々が研究のために記録を再生およびレビューできるようにすることもいいでしょうが、チェスやGoなどのゲーム用の専用エンジンにのみ表示される傾向があるので、あまり期待していません。 フリー/オープンソースソフトウェアであることは大きなプラスになるので、自分で拡張することもできますが、上記の機能を十分に提供したり拡張する手段を提供したりする場合は、クローズドソリューションまたはホステッドソリューションでも構いません。 私のニーズを満たすようなシステムはありますか?または、完全に一致していなくても近いものはありますか? 私のニーズを完全に満たしていないいくつかの同様のシステムには、次のものがあります。 Yahoo GamesはWebベースですが、自分でゲームを作成することはできません(またはそのカテゴリにある類似のサーバーのいずれか)。 Volityは、SVGおよびXMPPに基づいて構築されています。それはオープンソースであり、オープンスタンダードになるように設計されており、ボットなどをサポートしていますが、別途クライアントをダウンロードする必要があり、積極的に開発または使用されていないようです。 SuperDuperGamesは、ターンベースの(メールでプレイする)ゲームを行うためのオープンソースのオンラインシステムです。つまり、それはライブでもリアルタイムでもありませんが、代わりにあなたはあなたの動きを提出し、誰かがそれらを提出するのを翌日かそこら以内に待ちます。活発なコミュニティですが、数週間または数か月ではなく、ライブでゲームをプレイできる場所が欲しいです。

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