Construct 3 suggestions & ideas

Suggest and vote on ideas for Construct 3! Please note this is only one aspect of planning. We do not guarantee any features here will be implemented, even if they are top-voted ideas. The aim is just to collect feedback. Remember to search for existing submissions before adding an idea, describe your ideas as comprehensively as possible, and vote for plausible ideas that are well thought out. Please see our full guidelines on suggesting features.

18 VOTE

Extend Touch plugin

Touch plugin (and Mouse plugin too) desperately needs settings:

  • Don't click through objects
  • Ignore invisible objects
  • Ignore invisible layers

Absolutely anyone who used Touch plugin encountered this problem: if you tap the object, you also tap every tapable object that is beneath. It's even more sinister when you have tapable objects on different layers. Even if the layer is invisible, you tap everything on it. And you have to come up with one of the silly workarounds to avoid that. Like, check if the layer is visible, which means you must not rename layers or move tapable objects between layers since then.

I attached some of the quotes of people using these workarounds

  • Valera Popov
  • Oct 10 2018
  • No status
  • Attach files
  • ChadoriXD commented
    October 10, 2018 12:53

    This is a good idea.
    For Simplicity, may I suggest.

    • Enable / Disable as an Action instead.

    Properties:

    • Use Mouse Input
    • Touch Through
    • Visible Only

    Anyway, nice idea!
    This will surely be convenient for everyone. And not even confusing for beginners.

  • Emmanuel Rubio commented
    October 29, 2018 13:08

    Yes i agree with all of this.

  • Matheus Grieger commented
    November 15, 2018 03:34

    I have suffered with this for so long. This is one of the most needed features.

  • Rachela Refi commented
    01 Apr 04:58

    The problem you encounter is due to incorrect design ... in fact, those described, if well used, are advantages.

    to avoid the described problem, get used to using a Finite State Machine and a dispatch event to filter the condition in which you are ...

    example:

    var GAME_STATE = 0
    const GS_IN_GAME = 0
    const GS_PAUSE = 1
    ...

    [Dispatch]
    if GAME_STATE = GS_IN_GAME
    if Touch is in touch on Button ... GAME_STATE = GS_PAUSE

    if GAME_STATE = GS_PAUSE
    if Touch is in touch on PauseButton ... GAME_STATE = GS_IN_GAME
    ...

    in this way, if I am not in the GS_PAUSE state, it does not matter whether the PauseButton button is visible or not: it will never be pressed if the user does not press the Button button while in GS_IN_GAME.

    get used to working this way, lots of problems will be solved automatically

  • Chris commented
    10 Oct 21:09

    This would be extremely helpful! Godot has this feature and it's called mouse filtering.

    http://docs.godotengine.org/en/latest/classes/class_control.html#enum-control-mousefilter