p5js 不能使用高度或宽度变量

p5js cannot use height or width variable

我是 p5.js 的新手,我正在尝试制作一个迷你游戏来开始。我 运行 遇到了多个我能够解决的问题,但我无法解决这个问题。

在 p5.js 中,当您创建一个 canvas 时,您会得到一个 widthheight 变量,它使用创建的 canvas 和似乎在其他地方也能工作,比如 draw() 函数,但不是我正在制作的迷你对象。我的代码在下面,如果你回答我谢谢你。

var Walls = new walls()
function setup(){
  canvas = createCanvas(400,300);
  canvas.parent("lor");

}
function draw(){
  background(22,178,255)
  console.log(Walls.wall1.height);
}
//Walls
function walls(){
  this.wall1 = {}
  this.wall1.width = 30
  this.wall1.height = height/2
}

我正在等待您的回复,因为我已经花了一个多小时试图解决这个问题。谢谢!

问题出在您的代码顺序上。脚本运行的第一件事是 var Walls = new walls();,它在设置之前调用,其中创建了 canvas。所以你正在做的是在创建 canvas 之前调用 height 。这可以通过声明全局变量但在设置中为其赋值来简单解决。

//Declaring the empty variable
var walls;

function setup() {
  //creating the canvas
  canvas = createCanvas(400, 300);

  //calling Walls()
  walls = new Walls();
}

function draw() {
  background(22, 178, 255);
  console.log("Height: " + walls.wall1.height);
}

function Walls() {
  this.wall1 = {};
  this.wall1.width = 30;
  this.wall1.height = height / 2;
}

身高:150