Math 计算视差背景的位置(2d)

Math 计算视差背景的位置(2d),math,language-agnostic,background,parallax,Math,Language Agnostic,Background,Parallax,我试图在我的游戏中对齐4个不同的视差背景。这些不是像太空射手那样无休止的平铺背景,它们不会填满整个屏幕。它们是一排沿着地面生长的树 我的图像是左下对齐的,我试图将它们全部对齐到地形的最低点 我有以下信息:在地图上,我希望所有东西都排列在最低点(300)。背景的视差/滚动因子。背景的高度 我试过: background.y = lowestPoint; // doesn't work background.y = lowestPoint * parallaxFactor; // doesn't

我试图在我的游戏中对齐4个不同的视差背景。这些不是像太空射手那样无休止的平铺背景,它们不会填满整个屏幕。它们是一排沿着地面生长的树

我的图像是左下对齐的,我试图将它们全部对齐到地形的最低点

我有以下信息:在地图上,我希望所有东西都排列在最低点(300)。背景的视差/滚动因子。背景的高度

我试过:

background.y = lowestPoint; // doesn't work
background.y = lowestPoint * parallaxFactor; // doesn't work, way off
background.y = lowestPoint + lowestPoint * parallaxFactor; // doesn't work
很明显,我遗漏了一些东西

基本上,我试图根据背景图的视差因子和地形的最低点来计算背景图的配准点


想法?

如果我理解正确;屏幕位置计算如下:

screenX = (positionX - cameraX) * parallaxFactor
screenY = (positionY - cameraY) * parallaxFactor
然后,要在某个摄像机位置对齐具有不同视差因子的两个位置,您需要匹配屏幕坐标:

obj1.screenY = (obj1.positionY - cameraY) * obj1.parallaxFactor
obj2.screenY = (obj2.positionY - cameraY) * obj2.parallaxFactor

(obj1.positionY - cameraY) * obj1.parallaxFactor =
    (obj2.positionY - cameraY) * obj2.parallaxFactor

obj1.positionY =
    (obj2.positionY - cameraY) * F + cameraY
其中
F=obj2.parallaxFactor/obj1.parallaxFactor


水平方向也是如此。

这是不够的信息。“对齐”是什么意思?你所说的“最低”是什么意思?把你想要达到的目标写下来。给它贴上标签。那么,为什么要把paralax放在y坐标中呢?它不应该只涉及水平运动吗?