我正试图在游戏中对齐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
我显然在这里遗漏了一些东西。
基本上,我正在尝试根据它的视差因子和地形中的最低点来计算背景图块的注册点的放置位置。
想法?
答案 0 :(得分:1)
如果我理解正确的话;屏幕位置计算为
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
。
类似于水平方向。