Build 295.10 - Release Version

Welcome to our brand new Clickteam Community Hub! We hope you will enjoy using the new features, which we will be further expanding in the coming months.

A few features including Passport are unavailable initially whilst we monitor stability of the new platform, we hope to bring these online very soon. Small issues will crop up following the import from our old system, including some message formatting, translation accuracy and other things.

Thank you for your patience whilst we've worked on this and we look forward to more exciting community developments soon!

Clickteam.
  • Hi everyone,

    Could we have a feature to enable objects animation to play while working on the Frame Editor? I remember that back in Klik & Play, objects played their Stopped animation in the Frame Editor, and if Stopped was empty from any artwork then the next animation sequence in the list of the animations played instead, such as Walking, Running, etc.

    I also remember that setting the initial direction to objects used to actually update the facing direction of the objects within the Frame Editor too; currently objects present on screen at their right direction, no matter what initial direction is selected for them, and it only updates on screen when the frame is played.

    Thanks

  • In addition to my feature suggestions above, it would be very handy if we could hold SHIFT while dragging with the selection tool in the picture editor, so the selection box would keep a square proportion - a common behavior in many image editing programs and very handy when you start to drag to select a squared tile from a multiple tileset image and want to keep track if you reached the tile size.

    If we could also have a width and height values when selecting an area that would be a great addition, as it is also essential to keep track of the size of the selection - currently there are only values for the X and Y position of the mouse cursor in relation to the image when hovering on it, the RGB color values of the very pixel that the mouse cursor is on, and another pair of values that from some reason stays on 0x0 and I'm not sure what it serves. I trust that it won't be too much of a hassle to add values for the selection box size next to it.

  • I've noticed that it's very challenging to select and highlight the top object in a stack of objects (with the same qualifier or of the same type and all objects can be on the same layer or on multiple layers, for example, 20 on the first layer and 5 on the second layer) based on their order using the 'mouse pointer over an object' condition when the X and Y positions are the same (meaning the objects overlap). Initially, I was able to select objects higher up by using the principle that they have a higher fixed value. However, when objects are sorted, the fixed value remains the same, rendering the method useless. Is there any chance of adding an option to retrieve the Z position in the stack of objects (sorting order)?

  • I've noticed that it's very challenging to select and highlight the top object in a stack of objects (with the same qualifier or of the same type) based on their order using the 'mouse pointer over an object' condition when the X and Y positions are the same (meaning the objects overlap). Initially, I was able to select objects higher up by using the principle that they have a higher fixed value. However, when objects are sorted, the fixed value remains the same, rendering the method useless. Is there any chance of adding an option to retrieve the Z position in the stack of objects (sorting order)?

    You can already retrieve the level (z order) of an object via the layer object

    And to do what you are asking for, you can also use the pick object with maximum expression, the expression being the level of the object retrieved from the layer object
    So you would check for mouse over objects, it will select all objects under the mouse pointer, but as you add the pick conditon under, it will only select the one with the maximum or minimum level as you choose

    Game/App developer, artist and a community contributor.
    You can support my work on: Please login to see this link.

  • Unfortunately, you are mistaken, and it cannot be done using the layer object. I have already tried, and I will have to use spread value, which spreads according to the Z order of objects in the frame.

    However, if I am mistaken, you can try to modify my code to work with the layer object, although I believe that using spread value(which spreads according to the Z order of objects in the frame) will work fine. However, such workarounds are cumbersome, so I kindly request considering the addition of such an option for objects.


    Unfortunately, the spread value does not sort by Z order as I thought earlier.

  • Unfortunately, you are mistaken, and it cannot be done using the layer object. I have already tried

    You may have misunderstood me, this is what I mean and it seems to work perfectly fine (and it's not a workaround, the pick object with maximum\minimum expresison conditions actually make this very easy already):

    Please login to see this attachment.

    Code
    * Repeat while left mouse-key is pressed
    + Only one action when event loops
    + Mouse pointer is over Active
    + Pick "Active" objects with maximum value of lyrGetLevel( "Layer object", Fixed( "Active" ) )
    	Active : Destroy

    Game/App developer, artist and a community contributor.
    You can support my work on: Please login to see this link.

  • You may have misunderstood me, this is what I mean and it seems to work perfectly fine (and it's not a workaround, the pick object with maximum\minimum expresison conditions actually make this very easy already):

    Please login to see this attachment.

    Code
    * Repeat while left mouse-key is pressed
    + Only one action when event loops
    + Mouse pointer is over Active
    + Pick "Active" objects with maximum value of lyrGetLevel( "Layer object", Fixed( "Active" ) )
    	Active : Destroy

    Yes, it will work in your simple example, but unfortunately, as I mentioned, this won't work in the case of my code because I need to select not only the Maximum but, at some point, also all objects positioned above the selected one or sometimes choose a couple of objects from the middle as well. It would be simple if we had it in the active object, just like the fixed value. Choosing Maximum and Minimum is not enough. I can do it personally, but it requires to create own Z-order system and control it during sorting. Workarounds that you have to craft for seemingly simple things. Such creations already require a certain level of knowledge, and CF has always been aimed at simple and fast creation.

    For Clickteam, it's just adding a single return with the index position of the object in the oList and object scoping based on that value. For us, it's generating a significant amount of code, which will probably run slower.

  • Yes, it will work in your simple example, but unfortunately, as I mentioned, this won't work in the case of my code because I need to select not only the Maximum but, at some point, also all objects positioned above the selected one or sometimes choose a couple of objects from the middle as well. It would be simple if we had it in the active object, just like the fixed value. Choosing Maximum and Minimum is not enough. I can do it personally, but it requires to create own Z-order system and control it during sorting. Workarounds that you have to craft for seemingly simple things. Such creations already require a certain level of knowledge, and CF has always been aimed at simple and fast creation.

    For Clickteam, it's just adding a single return with the index position of the object in the oList and object scoping based on that value. For us, it's generating a significant amount of code, which will probably run slower.

    You can compare lyrGetLevel() to anything you like, including for instance, another value's lyrGetLevel() value, which would tell you if it's above or below the given one.

  • Yes, it will work in your simple example, but unfortunately, as I mentioned, this won't work in the case of my code because I need to select not only the Maximum but, at some point, also all objects positioned above the selected one or sometimes choose a couple of objects from the middle as well. It would be simple if we had it in the active object, just like the fixed value. Choosing Maximum and Minimum is not enough. I can do it personally, but it requires to create own Z-order system and control it during sorting. Workarounds that you have to craft for seemingly simple things. Such creations already require a certain level of knowledge, and CF has always been aimed at simple and fast creation.

    For Clickteam, it's just adding a single return with the index position of the object in the oList and object scoping based on that value. For us, it's generating a significant amount of code, which will probably run slower.

    Sorry but I'm not quite understanding the suggestion, especially the For Clickteam, it's just adding a single return with the index position of the object in the oList and object scoping based on that value. part, care to explain further?

    I answered based on what the original question is, or at least my understanding of it..

    Note that you can retireve the number of selected objects directy
    and It doesn't have to be the maximum or minimum, you will just use them then do a few extra calculations on top and/or filtering via additional conditions to select the right objects that you need, the key is in retrieving the object's level (z order) which you can already do via the layer object..

    You can use the expression in other comparisons as airways just mentioned too

    Game/App developer, artist and a community contributor.
    You can support my work on: Please login to see this link.

  • For Clickteam, it's just adding a single return with the index position of the object in the oList and object scoping based on that value. For us, it's generating a significant amount of code, which will probably run slower.

    AFAIK object list is something similar to chain list, each object has a pointer to the object info list, which the same name and type shares, and that list has a pointer to the first object's offset in object list. And use that offset you can get the point address of the object header. So to get the index in object list an iterate is needed. Object selection is similar, is not a vector.

  • A simple thing that will be really time saver for me is a way to create fliped opposite animations on the whole object.

    I've 25 characters with arround 600 frames of animations in each of them and they have all arround 40 animations... I've to process lot of borring copy paste and flip for each of them.


    To have way to process whole animations object could be really helpfull.

    Please login to see this link.
    Please login to see this link.

  • A simple thing that will be really time saver for me is a way to create fliped opposite animations on the whole object.

    I've 25 characters with arround 600 frames of animations in each of them and they have all arround 40 animations... I've to process lot of borring copy paste and flip for each of them.


    To have way to process whole animations object could be really helpfull.

    There actually is a built-in way to do this for entire animations. Inside the Animation Editor, right click on one of the white boxes from your direction selector and there are options to "Create Rotated Directions" or "Create Opposite Direction" as well as flip horizontal, flip vertical, invert the entire animation.

    For my game, I set up the entire animation facing the right direction, right-click and "Create Opposite Direction" then I right-click the left direction's white box and "flip vertical" - boom - done. :)

    Please login to see this link.

  • There actually is a built-in way to do this for entire animations. Inside the Animation Editor, right click on one of the white boxes from your direction selector and there are options to "Create Rotated Directions" or "Create Opposite Direction" as well as flip horizontal, flip vertical, invert the entire animation.

    For my game, I set up the entire animation facing the right direction, right-click and "Create Opposite Direction" then I right-click the left direction's white box and "flip vertical" - boom - done. :)

    I know this one and It's what I use currently...
    But :

    • This will work for only one animation at the time. You need to repeat it for walk, run, crush down, custom animations, etc... In my case my objects have 40 differents animations. So I need to repeat process 40 times.
    • The opposite direction isn't mirrored process, it is 180 degrees rotated. For a platform game it's not exactly what I need. So I need to waste some extra click flipping vertically after created opposite. Fusion should got a "Created symmetric opposite"


    I still hope fusion will got a decent "one click create symetric opposite for all animations of an object"


    Currently I use mouse recorder to create a one keypress to do manipulation... It's still not ideal

    Please login to see this link.
    Please login to see this link.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!