個別のページは作成しません。ページは、コンポーネントが使用されるコンテキスト、つまりアプリケーションです。Javascript を使用すると、クラスを作成できます (CSS クラスと混同しないでください)。各クラスのインスタンスを作成できます。したがって、クラス Car を取得した場合は、そのうちの 2 つをインスタンス化して、それらをページと対話させることができます。例えば:
// Javascript is a prototyped language. A class is defined as a function:
function Car()
{
// Some initialization of properties by assigning to this.propname
this.x = 0; this.y = 0;
this.direction = 0;
this.velocity = 0;
}
// Add methods by extending the prototype
Car.prototype.show = function()
{
// For each Car object, create and remember a DOM element.
// This is what makes your car visible.
this.DOMelement = document.createElement('div');
// Set style properties to position the car.
// Add sub-elements to make the case visible (images?)
}
Car.prototype.move = function()
{
// Update this.x and this.y
// Move/update the related DOM element accordingly.
}
これで、2 つの車を作成できます。
var Car1 = new Car();
var Car2 = new Car();
Car1.show(); // Show the first.
また、キーを取得する必要があります。私はそれほど頻繁に行ったことはありませんが、おそらく多くの例があります。
コントロールキーを車のプロパティにすることができるので、車を作成してそのキーを指定できます。車は、必要なキーをゲームに伝えることができます。ゲームはすべての入力を処理し、適切な車に送信できます。
その後、何らかのループを作成してアニメーションを追加する必要があります。
//Instead of an actual loop, you can create a function to render a single frame
function tick()
{
// Handle input and redirect it to the appropriate cars
// Call .move of all the cars
}
// Call the tick function repeatedly every 10 ms.
setInterval('tick', 10);
もちろん、このすべてのゲーム情報を保持するクラスを作成することもできます。そうすれば、window オブジェクトが乱雑になることがなくなり (すべてのグローバル変数と関数が実際に window オブジェクトの一部になります)、ゲームを既存のサイトに埋め込むのがより簡単になります。1 つのページで 2 つの別々のゲームを実行することもできます! 彼らは鍵をめぐって戦うでしょうが。
とにかく、埋めなければならないギャップがたくさんありますが、これがあなたのアイデアになることを願っています.