我正在创建一个3层(远,近,近)的SpriteKit游戏,并且我希望这些层在角色运行时以不同的水平速度移动。实际上,角色永远不会从中心移动,地板/背景是从右向左移动的角色。
是否存在可以创建具有多个图层的视差效果的公式?
谢谢
您可以将其视为类似的三角形问题。想象一下地平线上的某个点,在游戏的后面一直呆在那里。假定该点距屏幕H米,其中H是一个大数字。您可以选择此数字作为您想要的任何数字。当您更改其值时,效果也会随之变化。您必须尝试一下它才能看到自己喜欢的东西。
假设第一层的速度为1(或某个常数的一倍)。然后,屏幕以1的速度和H的距离移动。
现在,假设每个图层与上一个图层之间的距离为x距离。再次,像H一样,只要x比H小,您就可以选择x来达到期望的效果。
因此,例如,前景将与屏幕之间的距离为0,第一层将与屏幕保持x单位的距离,第二层将与屏幕保持2x单位的距离,依此类推。
现在我们可以做类似的三角形了。屏幕层在距离地平线H处的速度为1。第二层背面以未知速度(y)与地平线相距Hx。我们知道:
H / 1 = (H - x) / y
或求解y:
y = (H - x) / H
进入屏幕的第一层。
更一般的公式如下:
speed(i) = ((H - ix) a) / H
在哪里:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句