Time for action – revisiting parallax scrolling
We will implement parallax scrolling with a set of layers that move in the direction opposite to the one the player is moving in. Therefore, we will need a definition of the scene and a moving layer.
Create a new QML Document (Qt Quick 2). Call it ParallaxScene.qml
. The scene will encompass the whole game "level" and will expose the position of the player to the moving layers. Put the following code in the file:
import QtQuick 2.2 Item { id: root property int currentPos x: -currentPos*(root.width-root.parent.width)/width }
Then, create another QML Document (Qt Quick 2) and call it ParallaxLayer.qml
. Make it contain the following definition:
import QtQuick 2.2 Item { property real factor: 0 x: factor > 0 ? -parent.currentPos/factor - parent.x : 0 }
Now, let's use the two new element types in the main QML document. We'll take elements from the earlier scene definition and make them into different parallax...