我是JavaScript新手,很难直观地理解下面的代码片段。它是一些物理引擎(matter.js)中用来制作盒子的代码。
function Box(x, y, w, h){
this.body = Bodies.rectangle(x,y,80,80);
this.w = w;
this.h = h;
World.add(world, this.body)
this.show = function(){
var pos = this.body.position;
var angle = this.body.angle;
push();
translate(pos.x, pos.y);
rect(0,0,this.w,this.h);
pop();
}
}
box1 = new Box(200,100,50,50)
function draw() {
background(51);
box1.show();
}我的问题是:
发布于 2019-02-13 22:14:28
为什么不直接使用w或h,为什么将“this.h.w”分配给w,将“this.h.h”分配给h?
这允许w和h是Box的属性。之后,如果你说
box1 = new Box(10,10,10,10)
console.log(box1.w, box1.h)您将能够看到和操作这些属性。因为您的矩形正在使用这些属性绘制自己,如果您操作这些属性,则矩形的绘图也会发生变化。
我被推()弄糊涂了。为什么括号里什么都没有?默认情况下,它添加了什么?
我相信您正在使用p5.js库查看代码。p5.js中的push()和pop()访问抽签状态。本质上,push()是“开始绘图”,而pop()是“停止绘图”。因此,在这里,他们访问绘图状态,绘制一个矩形,然后关闭绘图状态。
你可以在P5的文档上读到更多。
https://stackoverflow.com/questions/54636764
复制相似问题