2017-10-18 98 views
0

我是p5.js的新手,我试图制作一款迷你游戏来启动自己。我遇到了多个我能解决的问题,但我无法解决这个问题。p5js不能使用高度或宽度变量

在p5.js,当你创建一个画布,你得到一个widthheight变量,它使用创建画布的尺寸和似乎等地打工,像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 
} 

我等待您的回复,因为我花了一个多小时试图弄清楚这一点。谢谢!

+0

你是如何调用'墙壁()'函数?请发布[mcve]或CodePen或JSFiddle。 –

+0

@Kevin Workman我在墙上调用它()和Walls,Codepen在这里:[link](https://codepen.io/cord-codes/pen/bozZBj),它似乎给了我不能在控制台中的东西理解(在网站上的链接去。) –

回答

0

问题出在您的代码的顺序。脚本运行的第一件事是在创建画布之前调用的var Walls = new walls();。所以你正在做的是在创建画布之前调用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

+0

这是一个巨大的帮助,感谢一百万!如果没有这个,可能从来没有做过 –