En una palabra: deslizar.
Jugué la edición del campeonato Pac-Man en mi teléfono Android y lo que pensé que realmente funcionó es que, aunque había un joystick en la pantalla, en realidad no tenía que tocarlo para mover a Pac-Man en la dirección correcta. Si su dedo se cayó del joystick, no importó. Todo lo que importaba es en qué dirección movías tu dedo.
Para subir, desliza hacia arriba. Para bajar, desliza hacia abajo. Para moverse hacia la izquierda, deslice hacia la izquierda. Para moverse hacia la derecha, deslice hacia la derecha.
Con la misma facilidad, puede hacer que el deslizamiento sea sensible al contexto de las regiones de pantalla y las acciones que ocurren actualmente en el juego. Imagine que su teléfono está en modo horizontal y lo sostiene como un controlador de videojuego. La mitad izquierda de la pantalla podría reservarse para moverse utilizando el deslizamiento que describo anteriormente. La mitad derecha de la pantalla se puede usar para acciones como saltar, disparar, proteger, cualquier habilidad de juego que quieras darle a tu jugador al deslizar de una manera muy similar. O si solo tienes una habilidad (como saltar en Super Meat Boy), solo trata la mitad derecha de la pantalla como un botón.
Actualizar
Estábamos discutiendo esto en el chat y parecía que mi solución, la forma en que se describió anteriormente es muy parecida a un palo virtual que se mueve cuando levantas y colocas tu dedo. Quiero explicar que este no es el caso y que en realidad es mucho más flexible que eso.
La imagen de arriba muestra el patrón de deslizamiento que uno podría tomar para mover a Pacman en el tablero. Tenga en cuenta que la acción que se toma no se basa en absoluto en el lugar donde coloca el dedo hacia abajo la primera vez. Si accidentalmente mueve su dedo demasiado lejos al deslizar hacia la derecha o no lo suficiente al deslizar hacia abajo, está bien. Con esta implementación, siempre que haya deslizado lo suficiente como para que se registre correctamente con el software, lo llevará y usará donde su dedo terminó como el siguiente punto de partida, o si levanta el dedo, usará el siguiente lugar baja tu dedo.
Como dije antes, puedes aplicar esto a un juego de plataformas simplemente dividiendo los controles en regiones separadas para que tus golpes y toques hagan cosas diferentes dependiendo de en qué parte de la pantalla realizaste la acción. La ruta obvia es hacer que el lado izquierdo se mueva con solo deslizar. Luego, el lado derecho se usaría para manejar las acciones y habilidades del jugador usando cualquier combinación de golpes y golpes.