I am trying to figure out what is causing this issue for a long time. The case goes like this:
After playing a level on my game you return on the main menu. This is happening automatically if the time runs out. Now if I dont interact with the game at all when the time goes out, I can go to main menu, I select play again and all goes well. If I interact with the game 1 or 2 seconds before time runs out (an change the layout) then I cannot replay this layout. It loads until a certain point but freezes.
I have tried debugging with breakpoints but with no luck. I have tried doing several stuff before changing layout because it seems like something is leaking. I have tried stopping animations, sounds, sine behaviors, stopped all timers, disabled effects but still the issue continues.
In Chrome I see the following message:
c3runtime.js:2 Uncaught (in promise) TypeError: Cannot read property 'g_Bs' of null
at g (c3runtime.js:2)
at Array.sort (<anonymous>)
at g_aQ.g_Bu.g_BD (c3runtime.js:2)
at g_aQ.g_Bu.g_BE (c3runtime.js:2)
at g_aQ.g_BF.g_BN (c3runtime.js:2)
at g_aQ.g_BQ.g_Eb (c3runtime.js:2)
at g_aQ.g_BQ.g_Eu (c3runtime.js:2)
at g_aQ.g_BQ.g_El (c3runtime.js:2)
at g_aQ.g_Fi.g_El (c3runtime.js:2)
at g_aQ.g_amx.g_apt (c3runtime.js:2)
at g_aQ.g_amx.g_Jj (c3runtime.js:2)
async function (async)
Any ideas what it might cause the above? If I dont interact with my game (its a puzzle game with correct and wrongs answers with effects following accordingly) some seconds before I exit the layout all is well. But if I interact (select correct answer or a wrong answer, which triggers effects, animations, sounds etc) then I cannot replay the layout. Is something leaking?
Develop games in your browser. Powerful, performant & highly capable.
It's difficult to help without more information, and the error report looks like it's from a minified export so any useful information has been obscured.
It might be a bug in Construct. I'd suggest filing a bug report following all the guidelines - note we need all the information requested by the guidelines to be able to help.
I am aware of bug report, but you have to understand that this only works on occasions where the project is limited in size and complexity. When it come to big projects there are several issues:
1) You cannot upload the project because you dont have the permission from your company.
2) You cannot break the project because it is extremely complicated and big. Also, Construct engine favors the use of hard coded parts (that the reason there is no way to reuse code or event sheets you have written from other project files).
3) It is an Instant Game which currently runs with bulk Facebook data that only when you have special permissions you can login and run.
That said, I have exported the game without any minify, and that is the message:
c3runtime.js:154 Uncaught (in promise) TypeError: Cannot read property '_GetLastCachedZIndex' of null
at a (c3runtime.js:154)
at C3.RenderCell._EnsureSorted (c3runtime.js:154)
at C3.RenderCell.Dump (c3runtime.js:154)
at C3.RenderGrid.QueryRange (c3runtime.js:157)
at C3.Layer._GetRenderCellInstancesToDraw (c3runtime.js:160)
at C3.Layer._DrawInstances_RenderCells (c3runtime.js:160)
at C3.Layer.Draw (c3runtime.js:160)
at C3.Layout.Draw (c3runtime.js:163)
at C3.Runtime.Render (c3runtime.js:445)
at C3.Runtime.Tick (c3runtime.js:445)
Any ideas? Even rough ideas of what is causing this issue?
The bug report guidelines include tips on how to reduce a large project to something you can file.
It looks like a crash involving the "use render cells" layer option. That's all I can tell from the information so far. There's usually no reason to use that setting unless you have huge layouts with thousands of static objects. If you turned it on for no reason, you could just turn it off (and note in general it's unwise to change any settings you don't need or understand). The bug won't be fixed though and could come up again. If you really have such a large layout that needs the setting, there is nothing more I could do to help without all the information covered in the bug report guidelines.
In case this occurs on other users. I found a solution. I am using Spline plugin. Before changing layout I have:
1) Cleared all path points
2) Stopped all movements
After that, I can change the layout without any issues.