首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解Box的matter.js代码:这个、push和pop

理解Box的matter.js代码:这个、push和pop
EN

Stack Overflow用户
提问于 2019-02-11 18:21:01
回答 1查看 664关注 0票数 2

我是JavaScript新手,很难直观地理解下面的代码片段。它是一些物理引擎(matter.js)中用来制作盒子的代码。

代码语言:javascript
复制
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();

}

我的问题是:

  • 为什么不直接使用w或h,为什么将“this.h.w”分配给w,将“this.h.h”分配给h?
  • 我被推()弄糊涂了。为什么括号里什么都没有?默认情况下,它添加了什么?
  • pop()也是如此。它在移除什么?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-13 22:14:28

为什么不直接使用w或h,为什么将“this.h.w”分配给w,将“this.h.h”分配给h?

这允许w和h是Box的属性。之后,如果你说

代码语言:javascript
复制
box1 = new Box(10,10,10,10)
console.log(box1.w, box1.h)

您将能够看到和操作这些属性。因为您的矩形正在使用这些属性绘制自己,如果您操作这些属性,则矩形的绘图也会发生变化。

我被推()弄糊涂了。为什么括号里什么都没有?默认情况下,它添加了什么?

我相信您正在使用p5.js库查看代码。p5.js中的push()pop()访问抽签状态。本质上,push()是“开始绘图”,而pop()是“停止绘图”。因此,在这里,他们访问绘图状态,绘制一个矩形,然后关闭绘图状态。

你可以在P5的文档上读到更多。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54636764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档