Ren'Py Multiple dialogue during transition

MTY Games

Newbie
Game Developer
Jan 12, 2019
55
90
Hi

I'm trying to display mutiple sequential text boxes/dialogue during a slow dissolve transition.

I can use the following code for one text box:

Python:
init python:
    def dissolve_say(what):
        narrator(what, interact=False)
        renpy.with_statement(None)
        renpy.transition(Dissolve(10))
        renpy.show("portrait2a")
        narrator(what)

But I want to have the player click through multiple dialogue boxes whilst a slow transition plays in the background. Any pointers/tips would be appreciated. I was think something with ATL perhaps?

Thanks!!
 

MTY Games

Newbie
Game Developer
Jan 12, 2019
55
90
Already solved with ATL.

Code:
transform my_dissolve:
    on show:
        alpha 0.0
        linear 4.0 alpha 1.0
    on hide:
        linear 4.0 alpha 0.0
    on replace:      # when new image appears
        alpha 0.0
        linear 4.0 alpha 1.0
    on replaced:     # when old image disappears
        linear 4.0 alpha 0.0
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Donor
Respected User
Jun 10, 2017
10,963
16,199
But I want to have the player click through multiple dialogue boxes whilst a slow transition plays in the background.
I don't quite understand what you want, and your solution don't tell much more on this.

Transitions don't stop Ren'py. Therefore, with something like :
Code:
label whatever:
   scene myScene at reallySlowTransition
   "some dialog line"
   "and some other
   "and it's not finished"
The player will see the slow transition while still being able to pass through the following lines of dialog.


So, I assume that what you want is the player to see (at least, at max, or precisely) a given number of dialog lines during this transition. But it's not what your solution solve. It just make the transition goes backward when the player have past through all the dialog lines, and so when the image change, nothing else.

If the player read slowly, the transition will be ended since a long time when the image will be replaced (and so the transition goes backward). But if he read fast, he will never see the full image, because the transition will not be ended when it will goes backward.
And, with the game being played by native and none native English speakers, you'll have both fast and slow readers that will play.

What could works is more something like :
[I wrote it on the fly, but it should works]
Code:
transform my_dissolve:
    on show:
        alpha 0.0
        linear 4.0 alpha 1.0
    on hide:
        linear 0.5 alpha 1.0
        pause 5
        linear 4.0 alpha 0.0
    on replace:      # when new image appears
        alpha 0.0
        linear 4.0 alpha 1.0
    on replaced:     # when old image disappears
        linear 0.5 alpha 1.0
        pause 5
        linear 4.0 alpha 0.0
When a new image have to be shown, so when the player have read all the lines, the transition go faster if it haven't been entirely done. Then there's a small pause to let the player see the whole image, before the transition start to go backward.