NobleEngine icon indicating copy to clipboard operation
NobleEngine copied to clipboard

(Critical) Crash in scene transition with transition type = Noble.Transition.Type.COVER

Open stiv-iv opened this issue 1 year ago • 0 comments

Chance to get crash while transitioning between scenes, if scene transition type = Noble.Transition.Type.COVER.

Update error: libraries/noble/Noble.lua:269: attempt to index a nil value (upvalue 'currentScene')
stack traceback:
    libraries/noble/Noble.lua:269: in field 'transitionMidpointHandler'
    libraries/noble/modules/Noble.Transition.lua:115: in field 'fn'
    libraries/noble/libraries/Sequence.lua:359: in local 'callTimeRange'
    libraries/noble/libraries/Sequence.lua:368: in method 'updateCallbacks'
    libraries/noble/libraries/Sequence.lua:81: in field 'update'
    libraries/noble/Noble.lua:311: in function <libraries/noble/Noble.lua:308>

To increase chance of crash set duration of transition about 2 * frame duration. It can be 0.060 or 0.062 or 0.064 or 0.066 (if your FPS = 30).

Noble.transition(ExampleScene2, 0.062, Noble.Transition.DipToBlack)

The reason for the crash is that sometimes you can get two midpoint callbacks in one Sequence. I described that here: https://github.com/NicMagnier/PlaydateSequence/issues/10

Pull request with the fix: https://github.com/NobleRobot/NobleEngine/pull/66

stiv-iv avatar Feb 12 '24 12:02 stiv-iv