Переместить фон относительно объекта
Это вопрос, связанный с обработкой 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, вы перемещаете фоновое изображение с той же скоростью, что и мяч, но в противоположном направлении. Когда это условие меняется, вы перемещаете мяч как обычно.
Надеюсь это поможет. С уважением Хосе