DiegoM's Forum Posts

  • The problem is nothing that you are explicitly doing. I think that what is happening is that an instance that has already been destroyed is being queued to be destroyed again, the runtime normally handles that, but from what I am seeing there could be a problem with that logic that would eventually lead to a crash.

    I am just guessing though, even if that was the problem, there are a few different places that attempt to destroy instances, so it's not easy to pin down the problem without looking at a project.

  • From what I can see, the crash happens because something with a GetIntances method is undefined, in that path it's either an object type or a family that object type belongs to, neither of those things looks like it could be undefined at that point.

  • I meant what happens in your game that shows the message in console. Maybe hitting a button, changing a layout or something else (it could be anything).

    The first thing I would try is previewing the game with the console open on the side and start playing normally, eventually you should see the red message popping up in the console and that should give you give you a clue about the possible things that could have been taking place when the error showed up.

  • Just from that screenshot is not possible to tell what is going on since that seems to be part of the normal event sheet execution.

    Have you been able to figure out exactly when your game produces the error? That would help narrowing it down.

  • When you click on a Family, you are able to add instance variables, behaviours and effects from the Properties bar, which are different to the ones of the object types.

    Having said that, I think there is a subtle bug in there because I couldn't add Tween to the family right away, I had to create a new empty Family, add the Tween behaviour to it and then add the object type.

  • No yet, it's in the TODO list.

  • You are conceptually doing the right thing, but you missed a couple of key ideas when working with families and functions.

    Families

    1. When you use a family to pick instances in a condition block, you then need to use the family in the action block for the picking to work as you expect. If you directly use the object type that is part of the family in the action block, then the picking that took place in the condition block will be lost.
    2. If you want object types to share behaviours, effects or instance variables through a family, you have to add those to the family itself. This connects with the last point, because if the behaviour, effect or instance variable you want to use has not been added to the family, it won't be available to actions for the family.

    construct.net/en/make-games/manuals/construct-3/project-primitives/objects/families

    Functions

    You can use the Copy Picked option so that the picked instances in the body of a function will be the same as the picked instances in the action block that called the function. If you don't use this option when the function executes, the picking is reset.

    In your case this ties up with the first point because the picking done by the On Touched condition was done through a family.

    construct.net/en/make-games/manuals/construct-3/project-primitives/events/functions

    I updated your project so you can compare it against the old one to see what all of that means in practice!

    drive.google.com/file/d/1KdU6BY1cOFQhfmTXYRcza5LlmWTvcGz1/view

    I felt that making those changes was a little bit clunky, so maybe we will fix that in the future.

  • You can also search for "timeline instances" in the example browser for a quick demo.

  • Look into this part of the manual.

    construct.net/en/make-games/manuals/construct-3/plugin-reference/timeline-controller

    The most relevant part is the Set Instance action of the Timeline Controller plugin. With it you can change the instances that a timeline will use before playback.

  • The missing animation controls should be easy to add in the future. Right now you could do something using the Progress expression to detect when an animation ends, but it would be fiddly as the value is not guaranteed to hit 1.

    Loading animations separately from models sounds like it's going to be more complex. It was mentioned already so at least it's on our radar.

  • Have you tried using bookmarks? It's not exactly the same, but it should work similarly. You setup the bookmarks in the places you are going to be going back and forth, and then you keep the bookmarks bar open on the side.

    If you have more than one monitor (or a very large one) you could even detach the bookmarks bar to a popup window so it isn't in the way.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Adding the notion of a template layer is massively complex, on the surface it seems straight forward, but I can already foresee it being an endless source of bugs.

    Mainly because it would need to "just work" with regular layers, global layers, sub layers, all their combinations and an indefinite level of nesting.

    I don't even want to think about the kind of setups that could be made, like a template global layer which is also a sub layer of another template, or something to that effect.

  • I looks like you should be using Tween "On finished" trigger, rather than Sprite "On finished".

  • I will try to fix this for the next stable version. It looks like it's a subtle problem with looping.

    It would be better if you make an issue in our bug tracker.

    github.com/Scirra/Construct-bugs

    That is the best way to make sure it's not forgotten!.

  • I looked at the implementation and it's slow because it's technically correct (checks if the incoming set of tags is a sub set of the corresponding instance tags), but does so in an inefficient way.

    I think it can be made to be about 50% faster, by handling the special case of a single tag and in other cases, improving the check against the existing tags set. That would be it for improvements though, I don't think it can be made to be much faster because the condition is inherently more complex than just comparing two values.