Ashley's Forum Posts

  • The feature should be working correctly - the problem with your project is you've set up the collision filter incorrectly. You've set up two kinds of objects to use exclusive collision filter with tags "wall", meaning they will collide with everything except things tagged "wall". But nothing has any tags at all - all the 'Tags' fields of all the objects are empty. So the collision filter will do nothing. It looks like you confused giving objects tags via the 'Tags' field with specifying the tags to filter by in the collision filter.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • In the latest release, in order to better support 3D features, these expressions are now just Z and Depth. They work identically to the old ZElevation and ZHeight expressions.

    If an official tutorial refers to these old expressions, let us know which one and we will update it.

  • I would caution against leaning too much on AI for learning. It has its uses such as asking for advice and ideas and so on, but it does get things wrong. Having been coding for 20 years I find even the advice it gives on things like JavaScript and WebGL is frequently incorrect, missing key information, or just slightly misleading or sub-optimal in some way, and that's with huge amounts of training data. A particularly serious issue is it never seems to say "I don't know" or "I'm not sure" - instead it just confidently proceeds with guesswork or even straight up fabrication. I would suggest checking things it tells you against official sources like the manual.

  • We use SetHasAnimations(true) and load atlas PNGs into the plugin's animation frames at import time (editor-side). At runtime we need to enumerate those frames (legacy equivalent: GetObjectClass().GetAnimations()[0].GetFrames()), but we can't find a documented SDK v2 runtime API for this.

    I don't believe animated plugins were ever officially documented and supported even in SDKv1. It's something I am very reluctant to expose, because animated plugins have a potentially very large API surface, and really it all only exists specifically for the Sprite object at the moment. We cannot implement it just for one plugin specifically, since if it's documented and accessible, then other plugins will start to depend on it, and then we end up dealing with all the potentially painful and limiting long-term maintenance implications of having external addons depending on Construct's animation subsystem.

    I can't recall the full history but I think it might be that Construct 3 only supported this to the same extent Construct 2 did solely for the benefit of the Spriter addon, as I think that is the only addon ever published that used the undocumented animation APIs. The intent of SDKv2 was to eliminate the possibility of accessing undocumented APIs precisely to avoid ending up with these kinds of accidental compatibility problems. I don't think there are any easy options here - to me the best thing to do is remove the use of animations from the Spriter plugin if you can, and find some other way to do what you need.

    • Set origin/hotspot (SetOriginX/setOriginX, SetOriginY/setOriginY)

    • Enable/disable collision (SetCollisionEnabled/setCollisionEnabled)

    All these are available on IWorldInstance.

    • Instance UID (GetUID(), getUID(), getUid(), .uid)

    • Container siblings (GetSiblings(), getSiblings())

    Available on IInstance. (Note the methods have changed to refer to "other container instances" rather than the term "siblings".)

    • Invalidate bbox (SetBboxChanged/setBboxChanged)

    This API is no longer needed with SDKv2.

    • Enumerate instances (instances(), getAllInstances(), GetInstances())

    • Object type name (GetName(), .name)

    • Picked/paired instance (getPickedInstances(), getFirstPickedInstance(), getPairedInstance())

    All available on IObjectClass.

    • Sprite frame index (read) (_currentFrameIndex, currentFrameIndex, animationFrame)

    • Sprite frame index (write) (_DoChangeAnimFrame(), _changeAnimFrameIndex, animationFrame)

    Available on ISpriteInstance via animationFrame property

    • No-premultiply blend (renderer.SetNoPremultiplyAlphaBlend/setNoPremultiplyAlphaBlend)

    Not sure why you need this as Construct always uses premultiplied alpha blending, which is necessary for correct rendering. These methods have actually been completely removed from the underlying engine as nothing ever needed them.

  • I tested this recently and it was working correctly for me. As ever if you think you've run in to a problem with Construct, please file an issue following all the guidelines so it can be properly investigated.

  • I'd add that if nothing on-screen changes, Construct does not redraw the screen (as to do so is a waste of resources). This is why the frames per second (FPS) can drop to 0 when nothing much is happening. However the ticks per second (TPS) should still be running at the display refresh rate (typically 60). Some example measurements might be:

    • FPS 60, TPS 60: normal rendering with visual changes every frame
    • FPS 0, TPS 60: engine is still running but no visual changes
    • FPS 0, TPS 0: engine has stopped running entirely (usually due to being suspended)
  • I don't personally see the harm in it or any reason to turn it off, so I don't think it warrants being in Construct's user interface.

  • You need to click the pin icon in the top-right corner of the Asset Browser to put it in to auto-hide mode.

  • I'm not sure what you mean exactly - I just tried out the Asset Browser in the latest release, and it pretty much looks and works the same as it always has.

  • This is a common misconception - Construct doesn't actually generate code for event sheets. It does something more along the lines of running an interpreter on data representing the event blocks. Further, as the paradigm of event sheets is significantly different to traditional programming languages, even if there was code automatically generated, it probably wouldn't be very readable or useful to modify and would look quite unlike anything you'd normally write.

  • As per the Forum & Community guidelines, please only post in English on this forum. I used Google Translate to translate your post.

  • Take a look at our suggestions platform where you can submit such ideas and have others vote on them.

  • I wouldn't use the canvas size like that, it's not meant to be used as a scaling feature. You can set the scale of individual layers, so perhaps you can just set different scales for the main game layers and the UI layers.

  • The latest release changed a lot of the code around sampling modes for the new dynamic sampling feature. It's possible something was overlooked - if you file an issue then we can look in to it.

  • I'm afraid that error message means the project file has become corrupt. It's possible some kind of software or hardware fault occurred. This type of thing is why it's essential to keep regular backups - Construct can make backups for you automatically, but you must enable them in Settings first. You can also try recovering the project with my specially-designed zip recovery tool, but I'm afraid there's no guarantee it will still produce an openable project afterwards - typically it can recover some but not all the project files.