Construct 2 Release r185

Monday, October 20, 2014

New this build: the Function object 'Call function' action now lists existing functions in the project, new experimental support for Google Play in PhoneGap/Crosswalk, better support for seamless exported spritesheets, and support for orientation lock in Chrome for Android!

Function lists

When using the 'Call function' action, you now get a drop-down list of existing functions in the project based on your 'On function' events:

You can still type a name that isn't used if you are yet to add the 'On function' event, so it doesn't block your workflow. However in large projects making extensive use of functions it should make it quicker to add function calls and less prone to typos since you don't have to remember the exact function names any more.

Google Play on PhoneGap/Crosswalk

There is now experimental support for Google Play Game Services to work on PhoneGap and Crosswalk. You'll need to fill out the new Client secret property in the Google Play object from the developer console, and in the API console add http://localhost as one of the 'Redirect URIs'. Also it appears On auto-sign in failed never triggers in this mode, so you will always need to provide a 'Sign in' button. On Crosswalk you'll also need to enable the 'In-app browser' plugin from the XDK. However it does at last provide a way to use Google Play Game Services from a native app. Thanks to cranberrygame for help in coming up with the workarounds.

Seamless spritesheet padding

When building spritesheets on export, Construct 2 has typically inserted a 1px transparent border around each image. This avoids color from an adjacent image on the spritesheet "bleeding" in and causing a fringe of a different color to appear down the edge. However this actually caused a different problem: in preview mode images work in a "clamp-to-edge" mode, meaning they show the last pixel's color right up to the very edge of the image. (Visually this looks like "hard" edges.) After export, since the edge of the image is now against transparency, it then means the last pixel's color actually blends with transparency up to the edge. (Visually this looks like "soft" edges.) In short, this means in some cases seams can appear between adjacent objects after export, because the edges are now blending with transparency at the edges, allowing some of the background to show through in between.

To resolve this Construct 2 now repeats the outside row of pixels from the image instead of inserting transparency around frames. This ensures that after export images blend at their edges the same way they do in preview mode, and helping prevent seams appearing. If 'Downscaling' is set to 'High quality' images are (as usual) padded out to power-of-two sizes for correct rendering with mipmaps, and now C2 also fills the entire padded area with the last row of pixels. This might look a little odd on your spritesheets, but it guarantees seamless rendering even with extreme downscaling.

Changelog

Add

Google Play: experimental support for PhoneGap/Crosswalk

Add

Export to PhoneGap options dialog now includes Android 5.0 as a new minimum Android OS version, and it is the new default (since it has WebGL, Web Audio + WebRTC support and auto-updates the web view)

Add

Browser: new 'ConnectionType' expression, which can return e.g. "wifi", "cellular" if known (else "unknown"). Currently supported on Chrome and Firefox for Android.

Add

The Android/Crosswalk and PhoneGap exporters now generate a 'intelxdk.config.additions.xml' file listing the used cordova plugins, which should allow XDK builds to automatically include the right plugins.

Add

AdMob: new 'On banner ad received' trigger

Change

Function: 'Call function' action now provides a dropdown list with all the function names used in the project.

Change

Exported spritesheets now pad with the last row of pixels from the image instead of with transparency, to help avoid seams appearing after export.

Change

Updated orientation locking code to latest specification, which now also means Chrome 38+ is supported. Note for orientation lock to take effect you normally have to request fullscreen with the Browser object, which itself can only be done in a user input trigger (such as 'on touched object').

Change

Video: worked around a bug in Chrome for Android that prevented video rendering in WebGL mode. Now Chrome for Android uses the same workaround iOS does: it floats the video element above the canvas instead of rendering it inside the canvas. This means nothing can layer above the video nor can blend mode/effects be applied to the video, but at least it can play.

Change

Audio: removed a workaround to an old Firefox audio bug (now fixed) that could cause distorted music playback. As a result Firefox can now also apply audio effects to music, like Chrome can.

Change

Browser: deprecated connection 'Is metered' condition: there is no longer any standard that specifies a way to detect this, so only non-standard support is left and that is likely to be removed in the near future

Change

Browser: now compliant with latest spec for battery and connection related features, which works with Chrome 38+

Change

Tilemap bar: now can switch the editing tilemap instance by clicking tilemap objects in the Project or Object bars.