See the notes for each version for which versions you need to match.
See the latest beta release notes.
Thanks, fixed. As noted in the "errata" section on the first page of the manual, you can file these as issues.
Actually, both Construct 2 and Construct 3 automatically use mipmaps for all your artwork.
That already exists in the Timeline plugin as "On keyframe reached".
Use a text input with type "textarea".
Please file a bug report following all the guidelines otherwise we cannot investigate it.
What information are you looking for?
They can still do that without the F12 dev mode. For full protection you need DRM, which is a big topic and still can never completely protect your game.
It's best to report any issues to the bug tracker - anything mentioned anywhere else could easily be lost or forgotten. However in this case I did accidentally remove it in some refactoring we did - the new method name is GetProjectFileUrl() but I've added back LoadProjectFileUrl() for backwards compatibility in the next release.
So this either means writing your script somewhere else, which as you note is counterproductive, or just filling in code templates for you.
Is that all you're asking for then? Filling in code templates?
(That's actually pretty difficult because e.g. finding the right place to add setInstanceClass() in runOnStartup() without making a mess of your code is tricky - or if you have multiple runOnStartup() calls which one do you pick, etc. etc.)
I think my proposed solutions would be straightforward and provide a good quality of life. I'm an experienced JS coder myself, and I can see this scaling to thousands of lines of code with hundreds of objects and working OK. Perhaps we should wait until people actually write a lot of JS code and see how it works out.
I'm not sure how the editor would even be involved in either case? Wouldn't that just get in the way? Do you want to type in an init() function somewhere else, for example? That just seems to separate out your code and make everything harder to find, which seems to be an anti-feature to me...
1. Use an init() method that sets up the object like you want
2. The approach I just described of using a common base class can do that
Both are straightforward, no?
The way function parameters now work is far better. The problem with completely dynamic calls is there is no way to know which parameters should be added. Function mapping solves the problem of calling by a string while still being able to pass along known parameters. Normally completely dynamic function calls are not necessary - if you restructure your functions to work with the new system, they may well be much cleaner and easier to understand afterwards.
Member since 21 May, 2007
The official blog for all things Construct and Scirra run by our employees!
Wider technology issues from Ashley's perspective.