这是一个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();
}
}
我做了类似的事情,让我试着用这个简单的图画来解释它。
黑色方块是背景图像,灰色是处理的草图屏幕,红色的球是您的移动物体。这样的想法是,当backImage侧面与屏幕侧面之间的距离大于0时,您使用与球相同的速度移动背景图像,但方向相反。如果这种情况发生变化,你就会正常移动球。
希望这可以帮助。关心何塞