Есть ли причина, по которой два объекта с одинаковыми параметрами ведут себя по-разному? - PullRequest
0 голосов
/ 09 апреля 2020

По сути, я новичок в программировании (и в stackoverflow) и пытаюсь изучить основы на p5. js. Я один из парней, которые пробуют Понг и ныряют в том, как создавать разные уровни сложности. Я обнаружил, что 2 шара, которые предположительно должны иметь одинаковый радиус, на самом деле этого не делают (факт, который портит мои хитбоксы), и использую одну и ту же константу для изменить результаты скорости оси Y в 2 совершенно разных скоростях Y. Я почти уверен, что знаю, где проблема, но я понятия не имею, почему это происходит, в любом случае я оставлю ссылку для полной информации здесь .

Я сделал второй мяч, чтобы заставить весло соперника следовать по его пути, и я почти уверен, что проблема либо в том, чтобы получить положение y мяча, либо в том, как я его использую после этого, поскольку, когда я комментирую это, вещь работает так, как мне бы этого хотелось к.

class Ball {
   constructor(_x, _y, _radius, _xSpeed, _ySpeed, _color){
      this.x = _x;
      this.y = _y;
      this.radius = _radius;
      this.xSpeed = _xSpeed;
      this.ySpeed = _ySpeed;
      this.color = _color;
   }

   //this guy is one of my suspects
   get ballY() {
      return this.y += this.ySpeed;
   }

   show() {
      fill(this.color)
      circle(this.x, this.y, 2 * this.radius); 
      fill(255)
   }
   moveY() {
      this.y += this.ySpeed;
   }

//leaving it here for context
class Paddle {
  constructor(_x, _y, _length, _height, _tag) {
    this.x = _x
    this.y = _y
    this.length = _length
    this.height = _height
    this.tag = _tag
  }

  //with this guy also in the list
  get opSpeed() {
    return ball2.ballY - this.y - 45;
  }

  //or maybe here
   move() {
      if(this.tag == "opponent") {
      this.y += this.opSpeed;
     }
   }

Буду признателен всем, кто сможет пролить свет на этот вопрос, спасибо.

...