Mikal's Forum Posts

  • Added runtime custom skin support per instance (Create custom skin, Add to custom skin, Set custom skin). Can have multiple runtime created custom skins per instance.

    Release 1.13.0

  • A number of new updates. The batch render improves desktop performance of multiple instances by roughly 4X on my example system. The support for multiple atlas pages allows for multiple pngs to be loaded for a single skeleton (this can help with multiple skins with different textures per skin or attachment.)

    • 09/11/2020 1.12.1 Change to comma separated instead of space separated for png paths.
    • 09/10/2020 1.12.0 Add support for Atlas pages (multiple png, comma separated), finish implementation of Set Attachment action, fix webgl1 support (revealed on iOS w/o weblg2 enabled.)
    • 09/05/2020 1.11.2 Move spineBatcher.init() to prevent race condition (seen on iOS)
    • 09/05/2020 1.11.1 Remove spine instance from batcher when C3 Spine instance calls Release() (e.g. C3 object destroyed.)
    • 09/05/2020 1.11.0 Implement batch render for improved performance with multiple Spine objects and instances.
    • 08/16/2020 1.10.0: Add Keep Aspect Ratio checkbox
  • Nice work, thanks for sharing!

  • One more firebase addon to check out (I have not tried it myself, but looks interesting):

    sparsha-dhar.itch.io/construct-3-firebase-plugin

  • Example from your project:

    	function resizeImage(runtime, bURL) {
    
    	// runtime.objects.BinaryData.getFirstInstance().getArrayBufferCopy()
    	// has the image data in it, but how do we get it into an img.src or ImageData variable?
    	let img = document.createElement("img");
    	img.src = bURL;
    	ctx.drawImage(img, 0, 0);
    	HERMITE.resample(canvas, 450, 300, true);
    	console.log('[resizeImage] resample complete')
    }

    I imagine you want to do something w/ the canvas image to C3 after that...

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • How about:

    	let img = document.createElement("img");
    	img.src = BinaryDataObjectURL;
    

    You can get the BinaryDataObjectURL from the C3 expression: BinaryData.GetURL and pass it into scripts via localVars.* or runtime.globalVars.*

  • The Greengrinds addon (extended Steam/Greenworks support) has been updated to support nw.js 0.47.0 and SDK 1.49, based on the prebuilds from Armaldio's nice work (https://greenworks-prebuilds.armaldio.xyz/)

    I also added a new expression to support IPCountry.

    Details here:

    construct.net/en/make-games/addons/244/greengrinds

  • C3 Project for the above example: gofile.io/d/POMLlT

  • More experiments with the latest release, created a recursive walk hierarchy function to color parent and children recursively down (could also make an up and down version.) Seems to work reasonably well. I am wondering if there would be an ACE shortcut (e.g. pick recursively down from an instance, similar to how destroy already works?)

  • Ah, I don't think this png will work as a C3 SpriteFont source as is. Each character needs to be in it's own cell with a fixed cell size (e.g. 16x16), it should be left aligned (e.g. character should be set to start on the left side.) In your example, each character has a variable cell size (width varies.)

    If the characters have a fixed cell size and are left aligned, the spacing data can be used to place the characters with the appropriate 'width' between each other, so it won't be monospaced.

    Here's Good Neighbors:

    Here's the correct style of formatting (notice the 'I'):

    You can fix it though, edit the image so each character is in a fixed sized cell, left align the character and then use spacing info to make the spacing correct.

  • The quick answer is that it looks possible, but it will take some work to understand the SDK, create C3 functions / JS scripts in C3 to work with it.

    Review this tutorial which shows an example of using C3 JS to integrate the Playfab JS SDK from blackhornet. It could spark ideas about how integrate the Player.io SDK into C3 with JS.

    Part 1

    construct.net/en/tutorials/add-playfab-cloud-storage-2479

    Part 2

    construct.net/en/tutorials/add-playfab-cloud-storage-2482

  • If the action is not available in the scripting SDK, you could create a function in C3 events to call the C3 event action you want and then use the Scripting SDK to call the C3 event function, you can pass in parameters as needed to control the function or even something like a UID to pick the correct instance to operate on.

  • Can you share the spritefont (png), the current spacing string you are using and the XxY dimensions of each character, so we can try to help you out further? You can easily share files online using: gofile.io/welcome (no account required.)

    I also want to make sure the png is following the below condition from the manual regarding different width spacing.

    The size of each character's cell in the sprite font image. Individual characters can be displayed with a different width using Spacing data or the Set character width action. In this case, the character should be drawn left-aligned within its cell.

  • Diego Thanks for working on this cool feature, well done! I didn't see this post, so I went ahead and tried to make a single object w/ different instances have parent / child relationships between the instances. Using the old two Family trick which Ashley mentioned seemed to work, but I am interested to see if you are going to approach it in a different way, since this method feels a little clumsy.

    I used instance variables to name a parent and a name of the instance. On start of layout I use this variables to assign the child / parent relationship.

    Event sheet:

    Here's the project:

    gofile.io/d/yGGaO3

    Automatic containers for picking sounds great also. Would you pick from top of picked element down tree to leaves or would picking also transverse up the tree too?

  • Thanks Ashley, makes sense for ACEs. I am going to try to change this project to see how it will work. I hope that in editor it will be simpler to do (select child action on parent instance, then select child instance, both can be the same object, but different instances.)