En un mot: glisser.
J'ai joué à l'édition du championnat Pac-Man sur mon téléphone Android et ce que je pensais vraiment fonctionner, c'est que même s'il y avait un joystick à l'écran, vous n'aviez pas besoin de le toucher pour déplacer Pac-Man dans la bonne direction. Si votre doigt est tombé du joystick, cela n'a pas d'importance. Tout ce qui comptait, c'était dans quelle direction vous aviez bougé votre doigt.
Pour vous déplacer vers le haut, balayez vers le haut. Pour descendre, balayez vers le bas. Pour vous déplacer vers la gauche, balayez vers la gauche. Pour vous déplacer vers la droite, balayez vers la droite.
Vous pouvez tout aussi facilement rendre le contexte de balayage sensible aux régions d'écran et aux actions en cours dans le jeu. Imaginez que votre téléphone est en mode paysage et que vous le tenez comme un contrôleur de jeu vidéo. La moitié gauche de l'écran pourrait être réservée au mouvement en utilisant le balayage que je décris ci-dessus. La moitié droite de l'écran peut être utilisée pour des actions telles que le saut, le tir, le blindage, quelles que soient les capacités de jeu que vous souhaitez donner à votre joueur en utilisant le glissement d'une manière très similaire. Ou si vous n'avez qu'une seule capacité (comme sauter dans Super Meat Boy) - traitez simplement la moitié droite de l'écran comme un bouton.
Mise à jour
Nous en discutions dans le chat et il est apparu que ma solution, la façon dont elle est décrite ci-dessus, ressemble beaucoup à un bâton virtuel qui se déplace lorsque vous soulevez et posez votre doigt. Je veux préciser que ce n'est pas le cas et est en fait beaucoup plus flexible que cela.
L'image ci-dessus montre le schéma de balayage que l'on pourrait prendre pour déplacer Pacman sur la planche. Notez que l'action entreprise n'est pas du tout basée sur l'endroit où vous placez votre doigt la première fois. Si vous déplacez accidentellement votre doigt trop loin en glissant vers la droite ou pas assez en glissant vers le bas, c'est ok. Avec cette implémentation tant que vous avez glissé suffisamment loin pour qu'il s'enregistre correctement avec le logiciel, il le prendra et utilisera l'endroit où votre doigt s'est retrouvé comme point de départ suivant, ou si vous soulevez votre doigt, il utilisera le prochain endroit où vous abaissez votre doigt.
Comme je l'ai déjà dit, vous pouvez appliquer cela à un jeu de plateforme simplement en divisant les contrôles en régions distinctes afin que vos balayages et tapotements fassent des choses différentes selon l'endroit où vous avez effectué l'action sur l'écran. La voie la plus évidente consiste à effectuer le mouvement de la poignée du côté gauche en utilisant simplement le balayage. Ensuite, le côté droit serait utilisé pour gérer les actions et les capacités du joueur en utilisant n'importe quelle combinaison de coups et de tapes.