相对于对象移动背景

时间:2014-08-07 06:23:25

标签: background 2d processing box2d

这是一个与Processing 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 个答案:

答案 0 :(得分:1)

Sample

我做了类似的事情,让我试着用这个简单的图画来解释它。

黑色方块是背景图像,灰色是Processing的草图屏幕,红色的球是您的移动物体。 我们的想法是,当backImage侧面与屏幕侧面之间的距离大于0时,您使用与球相同的速度移动背景图像,但方向相反。如果这种情况发生变化,你就会正常移动球。

希望得到这个帮助。 问候 何