JeuWeb - Crée ton jeu par navigateur
[étape 2] RPG tactique isométrique -> déplacement du joueur - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [étape 2] RPG tactique isométrique -> déplacement du joueur (/showthread.php?tid=2486)

Pages : 1 2 3 4


RE: [étape 2] RPG tactique isométrique -> déplacement du joueur - X-ZoD - 03-04-2008

je supose que l'on est en js la
c'est parce que ta fonction est interompu par la suivante
il faut retarder la suivante


RE: [étape 2] RPG tactique isométrique -> déplacement du joueur - Lord-Gargoyle - 03-04-2008

Code :
function deplacer_enligne(id,x2,y2)
{
    img = document.getElementById(id);

    // on récupere la valeur du margin left de l'image
    var margin_Left = img.style.marginLeft;
    // le probleme c'est qu'elle renvoie pas un nombre mais du texte sous forme "42px", donc on va recupérer les chiffre et virer les px avec la fonction split de javascript (qui permet de diviser une phrase) dans un tableau (parce que la fonction split renvoie un tableau)
    var tab = margin_Left.split("px");
    // et maintenant on récupere la vraie valeur qui se trouve dans notre tableau
    margin_Left = parseInt(tab[0]); // dans le cas présent il renvoie 10
    // la fonction parseInt est obligatoire pour que l'addition ensuite addition deux nombre sinon il va les concaténer

    var margin_Top = img.style.marginTop;
    tab = margin_Top.split("px");
    margin_Top = parseInt(tab[0]);

    if(Math.abs(margin_Left - x2)>12)
    {
        if(margin_Left < x2) margin_Left = margin_Left+10;
        else margin_Left = margin_Left-10;
        img.style.marginLeft = margin_Left+'px';// on met à jour le style de l'image pour le "téléporter"
   }

    if(Math.abs(margin_Top - y2)>7)
   {
        if(margin_Top < y2) margin_Top = margin_Top+5;
        else margin_Top = margin_Top -5;
        img.style.marginTop = margin_Top+'px';// on met à jour le style de l'image pour le "téléporter"
   }
        
    if(margin_Left != x2 || margin_Top != y2)
    {
        setTimeout('deplacer_enligne("'+id+'", '+x2+', '+y2+');', 25);
    }
}

Oui, voila mon code, ben j'ai essayé de retardé l'appel à ma seconde fonction, mais ça marche toujours pas. Donc le but c'est d'appeller 2 fois cette fonction

Code :
deplacer_enligne(id,0,0);
    deplacer_enligne(id,1000,0);

Si vous arrivez à faire déplacer le perso correctement, je vous donne une glace :glace:


RE: [étape 2] RPG tactique isométrique -> déplacement du joueur - X-ZoD - 04-04-2008

je ne sais pas comment tu retarde l'apelle de ta focntion
moi jte conseille d'utiliser settimeout pour ca


RE: [étape 2] RPG tactique isométrique -> déplacement du joueur - Lord-Gargoyle - 07-04-2008

Oui, c'est avec settimeout que j'avais essayé... Mais ça marchait pas. Bon je vais me repencher sur le problème... Je vous dis si j'y arrive...


RE: [étape 2] RPG tactique isométrique -> déplacement du joueur - X-ZoD - 07-04-2008

moi jle fai avec setimout ... mais je trouve encore bourin
j'envisage de rentrer dans les entraille de jquery poru voir comment ils font eux pour une telle fluidite

je vous tiens au courant


RE: [étape 2] RPG tactique isométrique -> déplacement du joueur - Sephi-Chan - 07-04-2008

Pour de la fluidité, il faut simplement éviter le calcul pour rien.

Par exemple, dans les fonctions, on voit que vous cherchez les coordonnées d'éléments alors que ces derniers ne changent pas. La solution est d'utiliser des variables globales : c'est à dire que vous créez une bonne fois pour toute sur la page un tableau Javascript global qui contient toutes les informations régulièrement utilisées.
Vos fonction iront alors chercher dans ce tableau les informations (à l'aide de l'id de la case) : vous économisez du temps de calcul, et donc améliorez la fluidité.

Bien sur, il faut le faire intelligemment en limitant le calcul des choses qui reviennent souvent. Comment souvent, il ne faut pas abuser des bonnes choses. Bien sur l'autre alternative à global est de créer un objet duquel le tableau contenant la mine d'information sera un attribut.


Sephi-Chan


RE: [étape 2] RPG tactique isométrique -> déplacement du joueur - Lord-Gargoyle - 08-04-2008

Ca y est, j'ai réussi Smile

Voir ici

Le résultat est plutôt sympa :good:


RE: [étape 2] RPG tactique isométrique -> déplacement du joueur - P0ulp0r - 25-04-2008

Yop !

Vraiment bien ces 2 tutos, cela m'aide beaucoup.

Merci et vivement le 3e Smile


RE: [étape 2] RPG tactique isométrique -> déplacement du joueur - Siklaris - 19-05-2008

Bonjour,

Je trouve le script de déplacement intéressant et fonctionnant bien.
Personnellement j'aurais besoin de m'en servir pour déplacer une image, cependant il faudrait que je connaisse les coordonnées de l'image dans la page lorsque l'image a été déplacé afin de pouvoir les récupérer.
Y'a-t-il moyen, par exemple, de les récupérer dans la value deux petits input de texte ?

Merci par avance de votre aide.


RE: [étape 2] RPG tactique isométrique -> déplacement du joueur - keke - 19-05-2008

C'est vrai que c'est joli. Cependant sur FF, j'ai un petit décalage de l'image. J'imagine que le personnage devrait être centré.

Bonne journée à vous.
Kéké.