Donc, après quelques heures de recherche sur Internet, je n'ai pas encore trouvé de réponse agréable sur la façon de gérer les plates-formes mobiles dans un jeu de plate-forme 2D. J'ai donc décidé de faire un prototype simple où vous interagissez avec 2 plates-formes différentes, une qui se déplace verticalement et une horizontalement. J'aimerais de l'aide pour disséquer et voir ce qui ne fonctionne pas et comment les corriger. J'ai soumis le fichier .fla + le fichier .as ci-dessous, accompagné d'un lien vers le .swf jouable.
Le but est de faire interagir le héros avec les plates-formes comme s'il s'agissait d'objets solides sur lesquels il pouvait se tenir debout, poussé à côté, sauter dessus / dessous, etc.
Les problèmes avec mon prototype sont les suivants:
Lorsque vous vous tenez sur la plate-forme se déplaçant horizontalement, sans bouger (sans toucher à aucune touche), le héros se déplace avec la plate-forme, mais avec un léger retard faisant reculer un peu le héros.
Lorsque vous vous tenez sur la plate-forme se déplaçant horizontalement et que vous sautez, vous vous déplacez avec la plate-forme en plein air (certains jeux préfèrent l'avoir comme ça, mais cela ne semble pas naturel et n'est pas souhaité ici). Ce qui pourrait être dû au fait que le héros conserve la vitesse sur l'axe X à partir de la plate-forme.
Lorsque vous sautez vers le bas sur la plate-forme se déplaçant verticalement, tandis que la plate-forme se déplace vers le bas, vous vous enfoncez à l'intérieur pendant une brève seconde. Le héros pénètre comme si la collision était inexistante pendant un moment.
Lorsque vous sautez sur une plate-forme se déplaçant verticalement, la vélocité sur l'axe Y est conservée, donc lorsque vous quittez la plate-forme, vous tombez à une vitesse plus élevée. Avec la vitesse de la vitesse retenue, + la gravité qui est ajoutée (c'est principalement parce que je ne peux pas trouver un moyen de réinitialiser la vitesse sur l'axe Y à 0 lorsque vous atterrissez sur la plate-forme, sans que le joueur ne gèle en plein air).
Je suis un programmeur débutant, donc je suis sûr qu'il existe de MEILLEURES façons de le faire, et j'aimerais tous les entendre. Toutes les idées sur la façon d'améliorer le code ou d'autres méthodes dans lesquelles vous pouvez implémenter des plates-formes mobiles dans un jeu basé sur Tile sont les bienvenues. En fin de compte, j'essaie de trouver un moyen solide de gérer les plates-formes mobiles dans les plates-formes 2D.
SWF jouable: http://dl.dropbox.com/u/28271061/PlatformerhowtoFLA.html (Déplacer avec les touches fléchées, sauter avec la touche X, exécuter avec la touche Z)
Fichier AS de code source: http://dl.dropbox.com/u/28271061/Platformerhowto.as
Fichier sourceFLA: http://dl.dropbox.com/u/28271061/PlatformerhowtoFLA.fla
Si vous préférez simplement lire le code via Pastie en ligne: http://pastie.org/2266764