gpt4 book ai didi

javascript - 创建和填充外部 Javascript 对象

转载 作者:行者123 更新时间:2023-11-30 05:49:20 26 4
gpt4 key购买 nike

我有 C#/Java 背景,正在尝试学习如何使用 HTML5 制作游戏。我遇到了一个一直困扰着我的问题,虽然通常我会问一个 friend ,但他一直是 MIA。我很遗憾创建了一个帐户来询问社区,但我一直在寻找答案却无济于事。

所以问题是...我想创建一个可以容纳塔实例的游戏对象。另外,我想创建一个塔数组列表作为一种后端存储库。本质上,我希望这些是我可以在主游戏中引用的外部 js 文件。我不确定这在 js 中是否可行或如何工作。

我试图做的是...创建一个外部 JS 文件并声明一个塔对象。这就是我迷路的地方。我想制作另一个对象,它只是第一种类型的列表,一个 towerList。在这个外部 JS 文件中,我打算用一堆塔属性填充列表。然后,在带有 canvas 元素的主文件中,我将遍历列表并绘制图形。我不知道该怎么做。

function Tower (type, texture, cost, damage, speed, range, health, Xpos, Ypos) 
{
this.type = type;
this.texture = new Image();
this.texture.src = texture;
this.cost = 0;
this.damage = 0;
this.speed = 0;
this.range = 0;
this.health = 0;
this.Xposition = 0;
this.Yposition = 0;
this.target = false;
}


var TowerList = [Tower("Basic", "tower.png", 0, 0, 0, 0, 0, 0, 0), Tower(), Tower()];

我怀疑我是否能正常工作,但我希望能够在主项目中创建塔列表的实例,像数组一样随机访问它,并打印我认为合适的内容。在 JS 中完成此操作的最佳 OO 方法是什么?我希望稍后在主代码中能够从列表中分配一个塔

var tL = new TowerList();
var tower = new Tower();

tower = tL[0];

我今天才开始做这件事,所以我意识到还有很多东西需要学习。我想我需要将函数重新定义为 var 否则我可以实例化它(我确定我之前读过)。如果有人可以帮助我或指出我可以从中学习示例的资源的方向,我将非常感激。

最佳答案

TowerList 不必是一种新类型的对象,只需一个 Array 即可:

var towerList = [];
towerList.push(new Tower("Basic", "tower.png", 0, 0, 0, 0, 0, 0, 0));
// ^^^
// use 'new' to instantiate a new Tower
towerList.push(...);

遍历 TowerList:

var tower;

for (var i = 0, n = towerList.length; i < n; ++i) {
tower = towerList[i];
// do stuff with tower
}

您也可以使 TowerList 继承自 Array:

function TowerList()
{
}

TowerList.prototype = [];

TowerList.prototype.yourFunction = function() {
}

var towerList = new TowerList();

towerList.push(new Tower(...));

towerList.yourFunction();

关于javascript - 创建和填充外部 Javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15870677/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com