相对于对象移动背景[关闭]

问题描述 投票:1回答:1

这是一个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();
    }
  }
background 2d processing box2d
1个回答
1
投票

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

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

希望这可以帮助。关心何塞

© www.soinside.com 2019 - 2024. All rights reserved.