4

だから、私はこのタイプの2.5Dスタイルを模倣するHTML5 / JavaScriptプロジェクトを開始することに本当に興味があります: http ://superflashbros.net/2009/02/22/blue-rabbits-climate-chaos/

私は個人的にサードパーティのスクリプトを避け、コードのコアを純粋なJavaScriptのままにしようとしています。ただし、三角法に関する私の知識は最善ではないので、この観点に取り組むための最も適切な方法は何でしょうか。基本的に2Dスプライトで作成されたゲームが必要ですが、3D感を与えるために、地面(およびフラッシュゲームの場合は建物)が歪んでいます。「モード7」エンジン(つまり、マリオカートのようなSNESゲーム)を作りたくありません。これは、セクションで地面を描くという私の理解からです。

調べておくべきアドバイスやリソースはありますか?

4

2 に答える 2

5

これについてもっと読んでほしいだけですが、ご存知のように、私はこれをやろうとしましたが、良い結果が得られましたが、新しい仕事のためにそのプロジェクトを中止しました.

とにかく、初心者向けに JavaScript で記述されたいくつかのゲーム エンジンを調べることができます。興味深いと思われる有名なゲーム エンジンのリストを次に示します。

1- Three.Js

2- GameQuery (JQuery プラグイン)

3-アイソジェニックエンジン

詳細については、このブログ投稿を確認することもできます真剣な開発者向けの 66+ オープン ソース JavaScript ゲーム エンジン

注: あなたが独自の JavaScript をコーディングするのが好きであることは知っていますが、これは非常に良い習慣であると信じていますが、私のアドバイスは、少なくとも 1 つの Javascript ゲーム エンジンを試して (複数を試すことができれば良いでしょう)、どのように動作するかを確認することです。さまざまなエンジンがどのように機能し、ボンネットの下でどのように動作するかについて、私の友人があなたにインスピレーションを与えるだけでなく、これらのエンジンを理解して独自のエンジンを作成するのにも役立ちます (これは不可能ではありません)。

できるだけ多くのことを試してくださいと言っているわけではありません (明らかに無意味です)。ただし、選択したエンジンを使用して小さな (可能であれば小さな) ゲームを作成するように言っているのです。ゲーム エンジンは 2D で動作し、WebGL テクノロジを使用して 2.5D または 3D に移行します。

于 2012-07-08T05:45:34.610 に答える
4

あなたのリファレンス ゲームをチェックして、「2.5D」の意味を理解しました。私の理解では、この問題に取り組む最善の方法は、オブジェクトの x、y 座標を変換して疑似 3 次元を作成することです。あなたに代わって変換を行う関数があるでしょう。これが私の最良の例の推測です。

// This function takes in a x- and y-coordinates of an object corner and returns the
// coordinates of the corresponding back corner of an object.
var transform = function(x,y) {
  // The farther the character is from the object, the more skew there would be.
  // Here "char" is your globally recognized game character. If it was not in the scope
  // of the function you'd have to pass it as a parameter.
  var skew = (char.x > x) ? (char.x - x) : (x - char.x);
  var newx = (skew * 0.1); // obviously this would be variable depending on your liking

  // If the object corner is not on the ground (y == 0) then subtract from it's value,
  // otherwise add.
  var newy = (y > 0) ? (y - 10) : (y + 10);
};

私の例10では、y座標を変更する距離単位の量です。これは、サンプルゲームがそれを行うように見える方法です。私の入力がお役に立てば幸いです。

レーガン

于 2012-07-15T04:17:04.427 に答える