Is there a "good" way to do cutscenes?

This forum is currently in read-only mode.
From the Asset Store
Includes 11min video guide. Hold an input button to "fill" up a text object and safely skip cutscenes without annoyances
  • See, my game is a 2D platformer, and since I'm relatively new at Construct, I don't have any idea how to make cutscenes. If there's an "easy" way, I'd like to know it first before getting into the tough intricate stuff. I have the unstable version (0.99.91) if that matters. All I'm really looking for at this point is "This character talks, then this character talks, then this character moves, repeat it a little, then it's over". I wish I knew how to do it myself but I don't really have any idea.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • See, my game is a 2D platformer, and since I'm relatively new at Construct, I don't have any idea how to make cutscenes. If there's an "easy" way, I'd like to know it first before getting into the tough intricate stuff. I have the unstable version (0.99.91) if that matters. All I'm really looking for at this point is "This character talks, then this character talks, then this character moves, repeat it a little, then it's over". I wish I knew how to do it myself but I don't really have any idea.

    I just tackled something similar in nature myself, about a week ago. I ended up doing everything via an array, so that I could save and load files between it and an external editor.

    Forgive the really rough pseudocode, but basically the logic is something like this:

    * At the start of the layout:

    • Load Array from the file
    • Set the variable 'Step' to 0
    • Call the "NextStep" function

    * On timer "StepTimer"

    • Call the "NextStep" function

    * On function "NextStep"

    • Add 1 to 'Step'

    ** If Array(Level#, 'Step', TimerSlot#) > 0

    -- Start "StepTimer" with the value in Array(Level#, 'Step', TimerSlot#)

    * Always:

    • Write the text at Array(Level#, 'Step', TextSlot#) at speed Array(Level#, 'Step', TextSpeedSlot#)
    • Display the appropriately numbered sprite found at Array(Level#, 'Step', BackgroundSlot#) and move it to the background area, and make all other sprites from the background category invisible
    • Display the appropriately numbered sprite found at Array(Level#, 'Step', LeftPortraitSlot#) on the left side, and the same on the right but with RightPortraitSlot#, and make all other sprites from the portrait category invisible
    • Play the sound effect, if any, defined at Array(Level#, 'Step', SoundSlot#)

    * If Array(Level#, 'Step', TimerSlot#) = 0

    • Prompt the player to push a button to continue

    ** On the push of that button, call the "NextStep" function

    * If Array(Level#, 'Step', TimerSlot#) < 0

    • Proceed to the next level

    Anyway, I'm sure you could adapt this to your purposes. Just add more Z slots to your Array to do more things, and of course more X and more Y slots for levels and maximum steps per cutscene, respectively. Mine's presently at about 10X, 40Y, 8Z; it's much easier to handle with an external editor (or a dedicated layout), as you can probably imagine. I guess if you're strongly inclined, though, you could just set a whole mess of values by hand in an include sheet.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)