Scroll layers independently in any direction?

  • Is there a good way to scroll layers in any direction, independently of each other?

    For instance, in Super Mario World, in some of the castles, there was a parallax background layer, a game layer, and a moving blocks layer that would sweep from side-to-side sinusoidally. That moving blocks layer's offset in the screen was not just a simple scaled version of the camera coordinates.

    In C2 I can't find an action that allows you to scroll individual layers to any location you want.

    Or if you think of the "camera" as being the thing that is scrolling, I can't find an action that allows you to offset a layer relative to its default starting point.

    Going back to the Mario Castle example, if you could specify layer offset via expression it might look like this:

    • layer_background.X = scrollx * 0.5
    • layer_game.X = scrollx
    • layer_movingBlocks.X = scrollx + ( sin( time ) * sweepDistance )

    The best workaround I've found so far is a bit of a jury rig.

    If, at the start of the layout, I set the "camera" scroll point to the coordinate ( scrollx-100 , scrolly-100 ), then the parallax rate of each layer is effectively that layer's offset in pixels. (I use "-100" instead of "-1" because the scroll rates are given in percentage form.)

    I hope I'm not missing something really obvious, but I can't find anything built-in to use in place of this workaround.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)