Suikama wrote:
I'd have to define every frame, then show each frame and then pause for a frames worth of time for each image, which in this case would be 1/10=0.1 seconds.
...
Of course not only is this tedious, but you would need to have every frame of the thing you wanted to animate beforehand.
It's not only tedious, it's also unnecessary. You can define an animation separately that lasts for a certain amount of time (look up '
Animation' or look into
ATL), just show that once and then pause once for the whole duration of the animation.
Suikama wrote:
Now let's say I wanted the logo to fade out after that little animation. I could simply use with Fade, but wait! renpy.pause does not apply to any transitions, so if I wanted to make the logo fade and have that fade unskippable, then I'd have to animate the fade in a different program, then load and display them one by one in Ren'Py, adding to the tediousness.
Not entirely true. The call to renpy.pause() doesn't "apply" to
anything; it just causes Ren'Py to stop doing anything for a period of time after the last thing you told it to do.
Basically, (IIRC) if you show an image with a transition using Ren'Py-script's 'show' command, then yeah - Ren'Py will by-default wait until the transition is over before proceeding to the next instruction, so your pause will occur after the transition is over, and a hard pause won't block the transition from skipping.
However, if you include the transition in your ATL animation, then the 'show' instruction will complete instantly, same as any other simple show, and you can hard-pause. If you write the show and transition in Python code instead of Ren'Py script - something like this:
Code: Select all
$ renpy.show("myImageName")
$ renpy.transition(Dissolve(2))
$ renpy.pause(2, hard=True)
- then Ren'Py will quite happily pause for the duration of your transform.
I seem to vageuly recall there being some way to get the 'show' command in Ren'Py-script to skip immediately to the next command without waiting, but I can't remember it if I'm not imagining it.
Suikama wrote:
it's really annoying when I click and then not only is that transition skipped, but the whole string of effects I set up are. For instance if I show an explosion with a shake effect, which is followed by a quick transition into a sky, then the ground, then finally a thumping sound, if I click anywhere inbetween it immediately skips everything up to the end.
That sounds like desirable behaviour to me. Otherwise whenever someone plays through your game for a second or fifteenth time, they'll have to sit through your lengthy animations each and every time no matter how many times they've seen them before.
If the user clicks and skips by accident, there's always rollback. If they click to skip on purpose, you should probably let them.
Suikama wrote:
I'm not quite sure how to use it because it's not really documented much.
Welcome to Ren'Py's Python API! :3