Respostas:
Há uma amostra XNA de polegares sensíveis ao toque aqui
Eu reiteraria que é improvável que um dpad seja a interface certa para um dispositivo semelhante à tela de toque.
Algo como o épico que fez com o Infinity Blade para iPhone pode lhe dar inspiração Movie Link
Posso desencorajá-lo a tentar emular um D-pad em um dispositivo touchscreen?
Os problemas com a emulação de um D-pad em uma tela de toque são:
Um dispositivo touchscreen é muito mais do que um dispositivo "sem um D-pad verdadeiro", como você diz. Um dispositivo com tela sensível ao toque permite que o jogador toque em qualquer lugar da tela e, assim, interaja com qualquer elemento visível do jogo . Isso oferece uma ampla gama de possibilidades de design de jogos, e é provável que esses designs sejam muito mais agradáveis de usar do que um D-pad emulado.
Sei que essa não é a resposta mais útil, mas, a menos que você esteja transferindo um projeto de outra plataforma, sugiro reconsiderar no D-Pad virtual. A maioria das implementações de D-Pads virtuais tem sido ruim na melhor das hipóteses, a falta de feedback tátil faz deles uma má escolha para a plataforma.
É muito melhor criar uma interface para o seu jogo que destaque os pontos fortes da plataforma em vez de aumentar a fraqueza da plataforma.
Como os outros disseram, é melhor criar um design que se adapte ao ambiente, não forçá-lo a se adequar ao seu design, mas se você preferir o D-Pad, veja como você pode fazê-lo:
Se você pensa no "ponto de contato" como um cursor do mouse, basicamente cria um "ponto de acesso" que reage ao movimento do cursor.
A melhor / mais simples maneira de fazer isso é criar uma caixa ou círculo semitransparente (lembre-se, você está cobrindo a tela do jogo) em um dos cantos inferiores, onde o jogador provavelmente já terá o dedo. Depois, basta rastrear a posição do dedo do jogador em relação ao centro do ponto ativo, e esse é o seu valor delta de entrada.
Vejo que muitas pessoas aqui acham que um D-Pad é uma péssima idéia e estão certas - na maioria das vezes. O Dungeon Hunter da Gameloft para Android é um ótimo exemplo de um ótimo D-Pad para telas sensíveis ao toque. É responsivo, tem uma direção de 360 graus, não é "burro". O que quero dizer com isso não é "burro", é que quando você pressiona o D-Pad e desliza o dedo para fora da área do D-Pad, ele não interfere com o que acontece na tela - apenas se estende. Portanto, se você acidentalmente sair da área do D-Pad, não perderá o movimento.
Acho que a direção de 360 graus e a capacidade de resposta fora dos limites são importantes e, se você puder fazer isso, terá a chance de fazer o D-Pad corretamente.
Se você deseja implementar um D-Pad, a maneira mais fácil que me ocorre é criar quatro retângulos (um para cada direção do D-Pad) e depois verificar se a localização do toque está dentro dos limites de qualquer um dos retângulos. .
Como os outros caras disseram; pense duas vezes antes de implementar um D-Pad em uma tela de toque. Por outro lado, vi pessoas jogando esses emuladores de GBA o dia inteiro em seus iPhones.
Depende de você ... você pode nos dizer o que planeja fazer que envolva um D-Pad simulado?