我不会创建单独的页面。页面是使用组件的上下文、应用程序。Javascript 允许您创建类(不要与 CSS 类混淆)。您可以创建每个类的实例。所以如果你有一个 Car 类,你可以实例化其中的两个,并让它们与页面交互。例如:
// 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.
}
现在您可以创建两辆汽车:
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);
当然,您也可以创建一个类来保存所有这些游戏信息。这样您就不会弄乱您的窗口对象(所有全局变量和函数实际上都将成为窗口对象的一部分),并且将游戏嵌入到现有站点中会更容易。您甚至可以在一个页面中运行两个单独的游戏!尽管他们会争夺钥匙。
无论如何,有很多空白需要填补,但我希望这能给你一个想法。