Hello conceptgame Alors oui l'exemple est top! les mouvements propre, gestion clavier etc.. Par contre j'aimerais bien progresser un peu en comprenant ce que tu as fais! Tu voudrais pas expliquer? Merci
Merci à tous. Voici le template fini. Il pourrait être encore plus propre mais je faire une pause avant de finir cette exemple avec un mini jeu pour les joutes.
@Pit73: j'avoue que c'est plus un exemple d'optimisation qu'un tutoriel. Je me suis basé sur le Klik Défi que j'avais déjà réalisé puis j'ai ajouté les autres fonctions du Sokoban.
Comme promis, j'ai simplifié. En fait, je ne vois pas trop l’intérêt d'utiliser un objet actif différent par box, ça alourdi inutilement le code, alors qu'un seul objet suffit pour l’ensemble des box. D'autant plus que c'est le même sprite. Normalement y'a pas de bug :D
En tout cas GG concept :bravos
Modifié le vendredi 23 août 2019 à 15:30
par Cyberclic
Tu as raison Cyberclic, les différent objets actifs ne sont pas nécessaires. Peut-être que dans le mini-jeu pour les joutes, je ferai des sprites différents pour les objets à pousser, qui sait. Je ne n'ai pas encore regardé ta simplification mais je suis sûr que c'est du tout bon. Merci, ça me fera gagner du temps.
Peut-être pour démystifier un peu les formules et répondre plus en détails à la question de Pit73, j'ai utilisé plusieurs principes a priori simples: - Quand je voulais inverser une expression pour remplacer un booléen vrai (1) par faux (0) ou l'inverse, le calcul (Valeur + 1) mod 2 donne exactement le résulat souhaité. Valeur=0 donne 1 et Valeur = 1 donne 0. J'aurais tout aussi bien pu utiliser Not. Ce serait peut-être plus explicite mais je n'y ai pas pensé. :P - Pour le calcul de la direction dans laquelle je devais déplacer un objet, ma composante en X devait me donner -1 pour aller vers la gauche et +1 pour aller vers la droite, tout en donnant 0 si le joueur va vers le haut ou le bas. (( Direction - 8 )/8) mod 2 donne +1 si vers la gauche et -1 si vers la droite, 0 si vers le haut et vers le bas. En multipliant par -1, on a le résultat souhaité.
Les 2 seules npouvelles astuces algorithmiques (par rappor au Klik défi du déplacement case par case) sont dans l'utilisation d'une même boucle pour faire 2 choses différentes(d'abord détecter les collisions et ensuite bouger) et utiliser les masques de collisions "échelle" qui donne 2 pour les croix au sol pour éviter une collision mais quand même comptabiliser le nombre de caisses au bon endroit sans avoir à tester toutes les combinaisons.
Modifié le vendredi 23 août 2019 à 15:30
par conceptgame
Hello, voici quelques capture d'écran d'un clone de Mario que je suis en train de faire. Plus de dix ans que je souhaite faire un clone de super Mario avec Fusion Cette fois je vais y arriver :)