0

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

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

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

http://i.imgur.com/BRlNP.jpg

我试过了:

background.y = lowestPoint; // doesn't work
background.y = lowestPoint * parallaxFactor; // doesn't work, way off
background.y = lowestPoint + lowestPoint * parallaxFactor; // doesn't work

我显然在这里遗漏了一些东西。

基本上,我试图根据它的视差因子和地形中的最低点来计算放置背景图块的注册点的位置。

想法?

4

1 回答 1

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

水平方向也是如此。

于 2012-06-13T06:49:38.230 回答