Snake7 : Algorithme du mouvement du serpent

Voici comment j’ai développé le mouvement du serpent dans Snake7. Pour rappel, le serpent va dans toutes les directions de manière fluide (à l’inverse du serpent classique qui va de « carré en carré » dans 4 directions).

[youtube=http://www.youtube.com/watch?v=CbzXohlMvMc]

Situation de base : Le serpent est constitué de plusieurs tronçons et de la tête. Le joueur contrôle uniquement le déplacement de la tête, et les tronçons doivent suivre.

Problématiques : 

  • Un tronçon ne connait que le tronçon qui le précède. Il n’y a pas d’intérêt à ce qu’il connaisse la position ou le comportement de la tête.
  • Pas question non plus qu’un tronçon suive exactement le même chemin que le tronçon précédent (A l’instant t, la position du tronçon x ne sera pas la position du tronçon x-1 à l’instant t-1) : Cela donnerai un mouvement trop rigide !

Solution : A chaque instant, un tronçon doit toujours se trouver la même distance du tronçon précédent. Si le tronçon précédent s’éloigne, le tronçon doit s’en approcher par le chemin le plus court.

Voici un schéma de la structure du serpent , ici composé de 4 tronçons :

… où tous les segments rouges sont de la même longueur.

Scénario 

Prenons 2 tronçons A et B, séparés de la longueur « d ». B se déplace, A doit suivre et venir se « coller » à B en gardant la même distance « d » :

Comment déterminer le chemin que doit prendre A ? Schématisons un peu mieux la situation :

d, x1 et y1 sont connus ! Reste à connaitre x2 et y2 (déplacement horizontal et vertical de A)

Et bien pour cela, on ressort nos bons vieux théorèmes de Pythagore et Thalès !

Snake7

MAJ septembre 2011 : MAJ pour Mango.

Depuis le 1er juin, mon nouveau jeu « Snake7 » est disponible sur le MarketPlace WP7 !

Il a reçu de très bonnes critiques des joueurs (après un début difficile à cause du contrôle au « joystick »).

C’est un jeu de serpent classique (dans le principe), mais moderne (dans le contrôle et les mouvements du serpent).

Je voulais vraiment changer du déplacement classique « haut, bas, gauche, droite » linéaire. Au lieu de cela, le serpent bouge dans tous les sens. Toutes les 15 secondes, une alarme retentit, et voilà les murs mouvants qui arrivent. Il faut alors attraper toutes les pommes bonus pour avoir des points.

Nouveauté de développement : les points sont enregistrés en ligne, ce qui permet d’avoir un classement des joueurs mondial.

ColorSeeds pour Windows Phone 7

ColorSeeds pour WP7 disponible depuis novembre 2010.

## UPDATE 18/02/2011

La version 1.1 a été mise à jour en 2.0 (avec le fameux mode « infini »).

Une version debuggée de la 1.1 passe en gratuit sur le Marketplace (version 1.2). En 3 jours de présence, déjà 600 exemplaires téléchargés !

## UPDATE 23/12/2010

Blog officiel du jeu : http://colorseeds.wordpress.com

## UPDATE 19/11/2010

Voici donc « ColorSeeds » disponible sur le MarketPlace Zune !

Je voulais le proposer gratuitement, mais impossible d’insérer une bannière pub pour les développeurs européens !
Le jeu propose une version d’essai de 15 niveaux, puis 0.99€ pour les 56 niveaux 😉

Pourquoi ce changement de nom de ColorVirus à ColorSeeds ? J’avais peur que le terme « Virus » effraie le comité de validation des appli et la ménagère de moins de 50 ans lol

##

 

Me voilà reparti depuis 2 mois sur le portage de ColorVirus pour mobile.

J’avais déjà fait un essai infructeux pour Android (Eclipse + plugins = l’enfer !). Et puis Microsoft se décide à offrir tout un toolkit de développement pour Windows Phone 7 :

  • Visual Studio 2010 Express pour Windows Phone
  •  Emulateur Windows Phone
  •  Silverlight pour Windows Phone
  •  XNA Game Studio 4.0

Une aubaine !

J’espère pouvoir soumettre mon appli sur market place à l’automne, quand les premiers smartphones débarqueront.