Переместить фон относительно объекта

Это вопрос, связанный с обработкой 2.x, но вы можете дать общий ответ, и я переведу его в набросок обработки. Я хочу переместить свой фон относительно объекта, который я сделал в box2d, и он идет по траектории. Я хочу, чтобы этот объект оставался внутри эскиза и не превышал ширину эскиза. Как мне это сделать? Вот что я пробовал: (Отображаемое изображение представляет собой большое изображение, в 4 раза превышающее ширину эскиза)

void Display(Gulli gulli) {
    imageMode(CENTER);
    if (gulli.isMoving()) {
      Vec2 gulli_pos = gulli.getPosition();
      gulli_pos.mulLocal(-1);  // to move background in opposite direction of the object
      pushMatrix();
      translate(gulli_pos.x+width*1.63, +height/2+gulli_pos.y);
      image(img, pos.x, pos.y);
      popMatrix();
    } else {
      pushMatrix();
      translate(width*1.5, -height/2);
      image(img, pos.x, pos.y);
      popMatrix();
    }
  }

1 ответ

Образец

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

Черный квадрат - это фоновое изображение, серый - экран эскиза Обработки, а красный шар - ваш движущийся объект. Идея состоит в том, что, хотя расстояние между стороной backImage и стороной экрана больше 0, вы перемещаете фоновое изображение с той же скоростью, что и мяч, но в противоположном направлении. Когда это условие меняется, вы перемещаете мяч как обычно.

Надеюсь это поможет. С уважением Хосе

Другие вопросы по тегам