构造函数在p5 js中无法正常工作

时间:2018-05-01 18:10:03

标签: javascript p5.js

我遇到了p5 js的问题 我试图添加两个围绕圆周旋转的椭圆对象。 下面的代码表示对象的构造函数:

function Obj(){
    this.ang = TWO_PI;
    this.x = w/2 + cos(ang)*r;
    this.y = h/2 + sin(ang)*r;
    this.fil = 255;
    this.size = 28;
    this.show = function(){
        noStroke();
        fill(this.fil);
        ellipse(this.x,this.y,this.size,this.size);
    }
    this.update = function(){
            this.ang+=.02;
    }
} 

这是主要档案:

let w = innerWidth;
let h = innerHeight;
let xd = [];
let r = 200;
function setup() {
  createCanvas(w, h);
  for (let i = 0; i < 2; i++)
    xd[i] = new Obj();
}
function draw(){
  background(0,70,80);
  noFill();
  strokeWeight(7);
  stroke(255);
  ellipse(w/2, h/2, r*2, r*2);
  xd[0].update();
  xd[0].show();
}

问题在于它表示ang is not defined即使我确实用this.ang = TWO_PI;清楚地定义了它。如果我在主文件中声明它并在setup()我说ang = TWO_PI;,则对象保持不变。有人可以帮忙吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

这段代码中构造函数的问题,应该是这样的:

this.x = w/2 + cos(this.ang)*r;
this.y = h/2 + sin(this.ang)*r;

因为您正在使用构造函数本身的属性