gpt4 book ai didi

javascript - 声明空对象数组时无法使用构造函数创建新对象

转载 作者:太空宇宙 更新时间:2023-11-04 16:30:09 28 4
gpt4 key购买 nike

我正在使用对象数组编写这个 p5.js 代码,每当我按下鼠标时,它应该创建一个由 Particle() 构造函数生成的新对象,然后将其存储到数组 pts[] 中。然而,按下鼠标后,代码不知何故没有进入for循环。我尝试初始化数组长度,但程序会卡住,我必须强制退出它......任何人都可以帮助解决这种情况吗?非常感谢!

var pts = []; 
var onPressed;
//pts.length=2;

function setup() {
createCanvas(720, 720);
smooth();
frameRate(30);
colorMode(HSB);
rectMode(CENTER);
background(255);
}

function draw() {
//draw new particle when pressed
if (onPressed) {
println("checked press");
for (var i=0;i<=pts.length;i++) {
println("entered for loop");
var newP = new Particle(mouseX, mouseY, i+pts.length, i+pts.length);
//println("newP");
pts.push(newP);
}
}
}

function mousePressed() {
onPressed = true;
println("presses");
}

function mouseReleased() {
onPressed = false;
}

function Particle(x, y, xOffset, yOffset){
println("called Particle");
this.x=x;
this.y=y;
this.xOffset=xOffset;
this.yOffset=yOffset;
}

最佳答案

你的for循环没有多大意义。您的 pts 变量一开始为空,那么您什么时候会输入它?

for (var i=0;i<=pts.length;i++) {

事实上,你为什么要循环?看起来您只想添加一个新的 Particle:

  var newP = new Particle(mouseX, mouseY, i+pts.length, i+pts.length);
pts.push(newP);

另外,当您可以使用现有的 mouseIsPressed 变量时,为什么要创建自己的 onPressed 变量?

关于javascript - 声明空对象数组时无法使用构造函数创建新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39883914/

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