iphone - touch not always recognised

  • Seeing this complaint from several 1-star user reviews that sometimes the buttons on my game don't respond. Had a test then on a couple of student's Iphones (an iphoneX and an SE) and, sure enough, there are times when touch is not recognised at all.

    I was able to get this to reproduce by spamming the jump button on my game while tapping left and right quickly. Occasionally, touches don't always trigger. During one of these, I kept my finger in touch and moved it to other buttons and it didn't trigger any 'is touching' conditions.

    I can't reproduce this on Android.

    Not sure what's causing this so will not file a bug report until more information is discovered, but right now I'm hoping someone has a suggestion. Could it be related to the white line at the bottom of the app that shows up in iPhone? Is there something I need to disable in xcode?

    Cheers

  • Are you sure the collision polygon for your buttons is wide enough ?

    At times, a smaller collision polygon may give the impression touch is not recognized, when in fact it is the actual colliding surface which is so small that it makes it hard to properly click as intended.

    Also it might help to see at least how your control scheme is set up in events.

  • Without more information, a mistake in your events can't be ruled out yet either.

  • Are you sure the collision polygon for your buttons is wide enough ?

    At times, a smaller collision polygon may give the impression touch is not recognized, when in fact it is the actual colliding surface which is so small that it makes it hard to properly click as intended.

    The collision box is larger than the button. Pretty sure it's not this, as a lot of the reviews I've had state that the controls feel unusually good for a mobile game, and I spent a lot of time refining collision placement. Plus this can't be replicated on Android.

    As I use 'is touching' a swipe of the finger onto the button triggers that action, so a user can control the player by moving their finger on and off the button without removing their finger from the screen. When this touch is missed, that no longer happens for the duration that that specific finger is in touch. It's like the device doesn't recognize there's a finger on screen for anything. If I put another finger on the screen, while the other one is still touching, it recognises that second touch and acts like expected, but still ignores the first. I'll need to do some more testing, but from what I can tell, spamming taps seems to be what triggers it.

    It's definitely only happening on iPhone, but it's starting to hurt my overall ratings.

    Here's an example of how I'm registering user input

  • One of the conditions in your sub-event may be false when you are tapping too fast (either canMove, or State instance variables are not reset properly).

    To check this, put something in the parent event which will indicate that "is touching" condition works. For example, set some test sprite visible, in Else block set it invisible.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Since this is targeted for mobile, you may want to remove the gamepad and keyboard conditions/controls.

    That also allows you, in your "Else" event to add a condition, is touching (inverted) which could make sure if you are specifically touching, or not, the object "playerControlsLeft".

  • I had users request gamepad support. Apparently some people play mobile games with controllers.

    I'm going to upload a build on Monday that *hopefully* addresses this issue. I still can't work out why this only happens on iphone though.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)