我想在我的JavaScript文档中创建某个类的潜在无限数量的实例:
let trees;
const treespawn = () => {
let x = random(50, windowWidth - 50);
let y = random(windowHeight /22, windowHeight / 1.13);
for (let i = 0; i < 20; i++) {
trees[i] = new Trees(x, y);
return trees[i];
}
}
function draw() {
background(0, 111, 10);
trees.trunk();
trees.leaves();
trees.shudder();
}
class Trees {
constructor(x, y) {
stuff--stuff--stuff
}
trunk() {
stuff--stuff--stuff
}
leaves() {
stuff--stuff--stuff
}
shudder() {
stuff--stuff--stuff
}
}
一些要点:
trees变量是全局声明的,因为我想不出一种方法来将类函数调用保持在作用域内。
我正在使用p5,因此绘制了函数。我已经在setup()函数中创建了所有其他类。
基本说明:
我想多次创建Trees类对象,并在我制作的每个游戏级别开始时将它们显示在画布上。这将在设置为let x和y的参数内每级大约需要20棵树。在更高级别的游戏中,我可能希望增加树木的数量。
您会发现仅编写20-30个变量声明,创建这些类并在每个类中调用所有函数是不现实的。
我意识到这必须通过某种数组方法来完成。 有人可以帮我吗?
谢谢!
更新:
就我所知,没有控制台错误消息,但在画布上看不到任何树木。
function draw() {
background(0, 111, 10);
() => {
let x = random(50, windowWidth - 50);
let y = random(windowHeight /22, windowHeight / 1.13);
for (let i = 0; i < 20; i++) {
trees[i] = new Trees(x, y);
trees[i].trunk();
trees[i].leaves();
trees[i].shudder();
}
}
}
答案 0 :(得分:0)
更新
random
不是本机Javascript函数,因此,如果不是从库或其他地方获取它,则可能需要定义它:
function random(lowerBound, upperBound) {
var range = upperBound - lowerBound + 1;
return Math.floor(Math.random() * range);
}
尝试一下:
class Trees {
constructor() {
stuff--stuff--stuff
}
trunk() {
stuff--stuff--stuff
}
leaves() {
stuff--stuff--stuff
}
shudder() {
stuff--stuff--stuff
}
}
const treespawn = () => {
let x = random(50, windowWidth - 50);
let y = random(windowHeight /22, windowHeight / 1.13);
return new Trees(x, y);
}
let trees = [];
for (let i = 0; i < 20; i++) {
trees.push(treespawn());
}
function draw() {
background(0, 111, 10);
trees.forEach(tree => {
tree.trunk();
tree.leaves();
tree.shudder();
});
}