Como acceder al teclado nativo en una aplicación XNA de Windows Phone 7

Una de las mejores de desarrollas aplicaciones en XNA es que tienes acceso al dibujado de bajo nivel para dibujar sprites y mayas 3d, pero en ocasiones necesitas objetos de alto nivel que proporcionen una funcionalidad específica, es el caso del teclado.

Si estamos desarrollando una aplicación de Windows Phone 7 en XNA y queremos empezar una nueva partida y queremos obtener el nombre del usuario tenemos que crear nuestro propio teclado. Esto puede ser un poco complicado hacerlo, es por eso que Microsoft ya incluye una API que nos permite invocar una Task dentro del teléfono para pedir datos al usuario.

image

Guide.BeginShowKeyboardInput(
       PlayerIndex.One,
       "You Win",
       "Insert your name",
       "",
       new AsyncCallback(OnEndShowKeyboardInput),
       null);

Con este código lo que estamos haciendo en invocar asíncronamente a la tarea del teclado, hay que tener en cuenta que la aplicación se desactivará en esta ejecución y el código que tengas en el evento se ejecutará. Una vez que el usuario termina de escribir su nombre y hace tap en aceptar volvemos a la aplicación.

image

private void OnEndShowKeyboardInput(IAsyncResult result)
{
   name = Guide.EndShowKeyboardInput(result);
}

Aquí tenemos el string que el usuario ha escrito.

Os podéis descargar una demo desde aquí.

Luis Guerrero.