Понимание кода дела.js для Box: это, push и pop - PullRequest
0 голосов
/ 11 февраля 2019

Я новичок в JavaScript и с трудом понимаю интуитивно следующий фрагмент кода.Это код, используемый для создания коробки в некотором физическом движке (material.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();

}

Мои вопросы таковы:

  • почему бы просто не использовать w или h, зачем назначать«this.w» для w и «this.h» для h
  • меня смущает push ().почему в скобках ничего нет?что это добавляет по умолчанию?
  • то же самое с pop ().Что это убирает?

1 Ответ

0 голосов
/ 14 февраля 2019

почему бы просто не использовать w или h, зачем назначать "this.w" для w и "this.h" для h

, что позволяет w и h быть свойствамикоробка.После, если вы скажете

box1 = new Box(10,10,10,10)
console.log(box1.w, box1.h)

, вы сможете увидеть и управлять этими свойствами.Поскольку ваш прямоугольник использует эти свойства для рисования самого себя, если вы манипулируете этими свойствами, рисунок вашего прямоугольника также изменится.

Я запутался в толчке ().почему в скобках ничего нет?что он добавляет по умолчанию?

Я полагаю, вы смотрите на код, использующий библиотеку p5.js.push() и pop() в p5.js обращаются к состоянию рисования.По сути, push() - это «начать рисование», а pop() - «остановить рисование».Итак, здесь они получают доступ к состоянию рисования, рисуют прямоугольник, а затем закрывают состояние рисования.

Вы можете прочитать больше в документации p5 .

...