Ashley's Forum Posts

  • As stated in the documentation, do not use any undocumented features. I can't stress this enough - it's a really terrible thing for support and compatibility which pretty much always ends in disaster for everybody, but it still seems to be hard to keep getting this message across. Undocumented features are not guaranteed to keep working as they are internal details of the engine and are subject to change at any time. If you use them, your code could break at any time and we won't offer support if that happens either. The official documentation also stresses this, which also points out:

    The only reason these can be found is because the way JavaScript works makes it difficult to hide them.

    Just make your own, especially as these functions are really simple. For example distanceTo is just Math.hypot(x2 - x1, y2 - y1), angleTo is just Math.atan2(y2 - y1, x2 - x1), toDegrees is x * 180 / Math.PI... I'm sure you can find many more equivalents with a quick web search.

  • The scripting reference covers what you can access directly from JavaScript, e.g. IRuntime. Some system expressions already have equivalents, which may be on different interfaces (e.g. how the layout width and height is part of ILayout), rather than in one big list, as is appropriate for a JavaScript API. Others are straightforward to implement with built-in JavaScript features or your own small functions. Some others may not be supported yet. So the answer depends on the specific system expressions you intend to use.

  • It's probably just a historical artefact of the original codebase from years ago. I think it was also probably not covered because skipping frames implies wasting memory, since if you have loaded frames in to memory that aren't displayed, then it would be better to reduce the number of animation frames. I can see how it's still problematic if you want a dynamic animation speed that varies widely, though.

    It's also difficult to change things like this without breaking existing projects, since for example if there are lots of projects out there that set an animation speed to 999 in events and just use that for a kind of maximum speed playback, then changing it to do frame-skipping will change how those projects work, and possibly break them.

    You should be able to work around it by controlling the animation in events and using 'Set animation frame'.

  • If you want to customise the loading screen, use a loader layout.

  • Restore a backup. If you don't have backups, this is a lesson on why backups are important for any kind of digital work you do, with any software.

    I can try to restore the project if you share it, but corrupt projects are not always recoverable. For example if there was hardware failure, it's possible the entire file has been wiped with zeroes and so nothing can be recovered at all.

  • As described in the manual, the Text expression does include BBCode, and the PlainText expression removes all BBCode.

  • Modifying the built-in addons was only ever allowed by accident of the way the installer worked, and it caused really, really terrible compatibility problems, such as corrupt projects, users locked out of new releases, and running in to bugs that were long ago fixed. It was never meant to be supported and since it causes so many problems, it's not supported in Construct 3. As noted you can either use the addon SDK to make your own separate addon that works exactly as you want, or use JavaScript coding, or just re-make the behavior's features in events.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I don't believe we removed any such options in any recent releases. However it's not really clear to me which options you're actually referring to.

  • "Restart layout" is the same as "Go to current layout", but it also resets all groups to their initial activation state.

  • In my view, "files all encrypted by ransomware" is a similar class of problem as fire/flood/theft/hardware failure/anything else that will make your files inaccessible. You need to make regular backups to protect yourself from all of this. In theory you should be able to smash your computer to pieces and still get all your files back from somewhere else. Then if ransomware strikes, you can just wipe your whole PC, restore your files, and carry on.

  • Tab crashes are Chrome bugs and so would need to be reported to Google.

    You could try Chrome Canary - it's possible the problem was already fixed and a future Chrome update will be working correctly.

  • I think browsers enforce that you must click/touch inside an iframe before it receives keyboard input for security reasons. Otherwise a hidden iframe could act as a keylogger.

  • Just a heads up, make sure you do any testing in r247+, since we fixed a separate issue potentially causing jank in the WebView in that release.

  • If there is an error loading an ad, my best guess is there is an issue on the AdMob side. Maybe you should contact them about it.

  • If you look around in the registry you should find HKEY_CURRENT_USER\SOFTWARE\Scirra\Construct2\NodeWebkitPath, which is the first path it checks.

    If it can't find NW.js at that path, it checks a hard-coded fallback list of the following paths:

    C:\Program Files\NWjsForC2\

    C:\Program Files (x86)\NWjsForC2\

    C:\Program Files\NodeWebkitForC2\

    C:\Program Files (x86)\NodeWebkitForC2\</p>