Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';在声明对象的空数组时,不要使用构造函数创建新对象_Javascript_Arrays_Object_Constructor_P5.js - Fatal编程技术网

Javascript Can';在声明对象的空数组时,不要使用构造函数创建新对象

Javascript Can';在声明对象的空数组时,不要使用构造函数创建新对象,javascript,arrays,object,constructor,p5.js,Javascript,Arrays,Object,Constructor,P5.js,我正在使用对象数组编写这个p5.js代码,每当我按下鼠标时,它应该创建一个由Particle()构造函数生成的新对象,然后将其存储到数组pts[]中。但是,按下鼠标后,代码不知何故没有进入for循环。我试图初始化数组长度,但程序会被卡住,我必须强制退出…有人能帮我解决这个问题吗?非常感谢 var pts = []; var onPressed; //pts.length=2; function setup() { createCanvas(720, 720); smooth();

我正在使用对象数组编写这个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;
}
var-pts=[];
无压;
//pts.长度=2;
函数设置(){
createCanvas(720720);
光滑的();
帧率(30);
彩色模式(HSB);
矩形模式(中心);
背景(255);
}
函数绘图(){
//按下时绘制新粒子
如果(按下){
println(“支票印刷机”);

for(var i=0;i您的
for
循环毫无意义。您的
pts
变量开始时为空,那么您什么时候才能输入它

for (var i=0;i<=pts.length;i++) {
另外,当您可以使用现有的
mouseIsPressed
变量时,为什么要创建自己的
onPressed
变量?

draw()
中的代码看起来像是要为列表中已经存在的每个粒子添加一个新粒子。如果有0个粒子,则添加0个。
  var newP = new Particle(mouseX, mouseY, i+pts.length, i+pts.length);
  pts.push(newP);