Bon, déjà MERCI à tous ceux qui m'ont répondu, c'est vraiment sympa!
Il y a une solution très simple à ton problème. Tu déplaces d'un premier pixel (sans afficher! Et sans toucher aux autres personnages!), tu testes, tu déplaces vers le haut si nécessaire, tu déplaces d'un deuxième pixel (encore sans afficher ni toucher aux autres personnages!), tu testes, tu déplaces vers le haut si nécessaire, tu refais ça encore 3 fois et ce n'est qu'après avoir fait ça 5 fois que le déplacement de Mario est complété et que tu peux toucher aux autres personnages et à l'affichage.
Ben justement ce n'est pas ce que je fais... C'est ce que j'entendais par "pixel par pixel". Mais de faire 5 fois le déplacement c'est terriblement lent. Mais ce que je disais c'est que c'est bien la seule manière d'avoir VRAIMENT quelque chose de stable. C'est ce que tu fais PpHd?
Kevin> ou alors coder le niveau en dur dans le programme
Ceci dit il est important de simuler le déplacement par plus petite unité de contact envisageable (on parle ici de pixels par exemple) sinon l'exemple type est le passage au travers d'une platte-forme lors d'une retombée de saut parabolique (à vitesse variable)
Ben voilà! Tu as compris mon problème. Mais mon moteur est la preuve que c'est possible d'envisager des déplacements de plus (ici 5 pixels) et

! J'ai aussi la définition de chaque "tile", et le tout est géré de cette manière (16x16 pour chaque "tile"). Pixel par pixel pour moi ça signifie que le perso avancera d'environ un pixel par frame, et plus seulement dans des cas exceptionnels. Mais ça ne veut pas dire que si ma map fait 1600 par 800 pixels j'aurai une matrice de 1600*800 octets (pas fou!) Dans ce cas-là, mes map font 100x50x3 (3 plans) (mais c'est possible de paramétrer cela dans l'en-tête du niveau)
Cependant mon perso avance jusqu'à 7 pixels par frame (aïaïaïaïaïaïïïïïïïïï, après je m'étonne que j'ai des problèmes)
>>SMA ne fait pas du pixel par pixel, d'ou l'horreur que j'ai eu a coder ce *ù*ù^$ de moteur de Sonic (Dites vous qu'un Mario a cote, meme avec les plans inclines c'est du gateau !):
Je signale quand-même que mon Mario était un Sonic à la base. Mais j'ai été découragé à l'époque où je faisais les pans inclinés qui marchaient pas très bien. Mais il ne restait plus qu'à "faire coller sonic au plafond" dans les cas où cela s'appliquait.
J'ai même du supprimer (!) des trucs qui fonctionnaient niquel pour que ça aille avec mario. Heureusement Sonic traine toujours dans un coin. Lorsque je lui aurai mis à jour son moteur des pans inclinés (maintenant il est bon). Sinon je serai curieux de savoir comment du simules les "décollages" de Sonic lorsqu'il court sur certaines plates-formes...
Type:

(Sonic est justement au pied d'une de ces plate-formes...
>>Je rappelle que Sonic court, bondit, vole, et fait des loopings...
Mario ne court pas? Mais pour le bondissement je vois de quoi tu parles (saut lorsqu'on quitte des pans inclinés avec beaucoup de vitesse). La technique est implémentée mais inactive dans le cas de Mario. Mais elle n'est pas parfaite quand-même dans mon Sonic.
Pour les loopings... C'est ce qu'il reste.
De toutes façons Sonic sera toujours mieux que Mario mais pour un débutant, Mario c'est sympa à programmer (ça faisait pas une année que je connaissait le mot programmation lorsque j'ai commencé Sonic, et j'ai bossé 2 mois sur un moteur abstrait duquel je n'ai pas vu de résultat satisfaisant, alors c'est normal que j'ai abandonné)
Mais ne vous inquiétez pas, Sonic c'est mon rêve et il VA VENIR, c'est sûr ça!
En tous cas encore merci à tous et @+!