Ca y est le jour que certains attendaient depuis longtemps est enfin arrivé, les outils pour développer en XNA sur une plateforme mobile sont enfin arrivés.

image

Comme il ne faut pas perdre de temps je vous propose donc ce petit tuto, qui vous permettra d’installer tous les outils nécessaires au développement sur Windows Phone 7 Series, mais aussi et surtout de coder votre premier projet XNA utilisant une spécificité du développement sur mobile à savoir le touch.

La première chose a faire est de télécharger le kit de développement Windows Phone disponible à cette adresse.

clip_image002

Une petite chose avant de commencer le framework n’est pas finalise et même si les changements seront mineurs, il se peut que ce que nous voyons ensemble aujourd’hui ne soit plus tout à fait valable dans 6 mois.

Une fois le kit téléchargé et installé vous pouvez lancer Visual 2010 express ou Visual 2010 RC si vous l’avez déjà installer sur votre machine.

Nous allons donc lancer un nouveau projet qui sera du type Windows Phone Game 4.0.

clip_image004

Je vous propose d’utiliser ce petit sprite pour représenter notre personnage. Ici nous n’utiliserons pas de classe spécifique tout se fera dans le game1.

Bien entendu la détection du touch à l’écran se fera dans la méthode update.

La première chose à faire sera de récupérer l’état de l’écran tactile pour connaitre les endroits où le doigt est posé, pour ce faire nous utilisons la méthode suivante.

   1: TouchCollection touches = TouchPanel.GetState();

Vous noterez que la méthode nous renvoi une collection de point en effet les devices étant multitouch vous pourrez avoir plusieurs points a gérer simultanément. Ici nous ne prendront en compte que le premier point d’appui. Nous le récupérons de cette manière :

   1: TouchLocation touch0 = touches[0];

Il ne nous reste plus qu’a vérifier la coordonnées de ce point afin de faire bouger notre personnage dans la direction voulue :

   1: if (touches.Count != 0)

   2: {

   3:     TouchLocation touch0 = touches[0]; // 1 on the assumption that there is a second touch 

   4:     if (touch0.Position.X > 300)

   5:         persRect.X += 5;

   6:     if (touch0.Position.X < 100)

   7:         persRect.X -= 5;

   8:     if (touch0.Position.Y > 600)

   9:         persRect.Y += 5;

  10:     if (touch0.Position.Y < 200)

  11:         persRect.Y -= 5;

  12: }

Et voilà c’est tout ce dont vous avez besoin, vous pouvez maintenant compiler et déployer vers votre émulateur. Nous verrons plus tard comment gérer plusieurs points en même temps.

Si vous avez des questions, comme d’habitude n’hésitez pas, et l’archive contenant tout le projet se trouve ici : myfirst .