Transformation dynamique de décor à bases de tuiles

leo552
Messages postés
13
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
8 octobre 2008
- 24 sept. 2008 à 13:48
leo552
Messages postés
13
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
8 octobre 2008
- 29 sept. 2008 à 17:36
Bonjour,

J'ai un soucis avec la fonction pour faire une transformation dynamique d'un décor à bases de tuiles.

J'ai une fonction que j'ai trouvé sur un bouquin qui se résume à :





code:
<hr />
carte[i][j]=10;
<hr />







Je n'ai pas plus d'explication sauf que cette formule peut s'ecrire comme n'importe quelle varialbe et il marque au dessus que connaissant la position du personnage sur le tableau représentant le décor, il suffir de changer la valeur dans le tableau et d'afficher la bonne image dans la brique modifiée.

Est ce que quelqu'un peut m'éclairer car je n'arrive pas à comprendre le sens de cette phrase.

Merci d'avance pour voqtre aide

19 réponses

Teclis01
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
24 sept. 2008 à 14:16
N'étant pas un grand fan de flash, je vais me mouiller quand même...
Ta fonction ressemble à tout sauf une fonction... j'appelle ceci une affectation ...
Plus exactement j'affecte la valeur 10 au tableau multidimensionnel référencé carte aux (couple) index i;j
Ceci dit je suis un peu bête surement

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0
leo552
Messages postés
13
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
8 octobre 2008

24 sept. 2008 à 17:27
C'est un peut etre une affectation comme tu dis mais cela ne me permet pas plus de comprendre le fonction, je suis débutant en flash et il possible que je me plante dans les thermes, je voudrais que l'on m'explique clairement comment je peux faire pour que ma tuiles décor change.

Merci d'avance
0
webcrea92
Messages postés
88
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
1 novembre 2009

25 sept. 2008 à 12:02
Bonjour,

Tu n'as pas grand chose mais on va essayer de faire avec

Ta carte fait 10 x 10 par exemple, cela signifie que tu as une carte de 100 tuiles
i et j dans ton tableau carte sont les coordonnées de la tuile
Pour atteindre la tuile x=3 et y=5   (intersection de la 3ème colonne et de la 5ème lignes)
carte[3][5]
La valeur que tu as : 10 dans ton exemple
fait probablement référence à un autre tableau qui stocke les type de tuiles

tuiles[1]  =   espace vert
tuiles[2] =    montagne
tuiles[3] =    sable
...etc

Christophe
Webcréa sarl
http://www.webcrea.fr
0
Teclis01
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
25 sept. 2008 à 12:20
Reste encore la problématique de placement de tuiles et là ça depend du style de map qu'on utilise. plate ? isometrique? hexagonale ? Autant de question sans réponse qui ne permettent de résoudre la problématique.
En gros ...
Donnes plus de détails

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
webcrea92
Messages postés
88
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
1 novembre 2009

25 sept. 2008 à 12:41
Tu ne passes pas pour bête mais pour quelqu'un qui a envie de trouver quelqu'un pour faire le boulot à ta place

Tu trouveras sur flashkod pas mal de map, fais ton choix et adapte le...

Christophe
Webcréa sarl
http://www.webcrea.fr
0
Teclis01
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
25 sept. 2008 à 14:24
Après si tu veux la tienne, tout est question de prix

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
0
webcrea92
Messages postés
88
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
1 novembre 2009

25 sept. 2008 à 14:44
Christophe
Webcréa sarl
http://www.webcrea.fr
0
leo552
Messages postés
13
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
8 octobre 2008

25 sept. 2008 à 17:55
Merci pour les infos, je vais essayer de me debrouiller avec cela.

En ce qui me concerne,j'ai fait un carte avec des tuies plate de dimension de 32 par 32. Et ma carte se présente ainsi :

carte=[
[15,15,15,15,25,15,15,15,15,15,30,15,15,15,21,14,14,14,14,14],
[11,2,2,4,24,5,2,2,2,5,29,2,4,2,21,14,14,14,14,14],
[11,2,10,2,7,2,2,3,2,2,29,10,10,2,21,14,14,14,14,14],
[11,2,15,15,25,15,15,19,4,2,29,10,10,2,21,14,14,14,14,14],
[11,2,10,2,24,2,2,22,2,2,7,2,10,2,21,14,14,14,14,14],
[11,3,2,2,7,2,2,22,5,2,29,2,2,3,21,14,14,14,14,14],
[11,15,15,15,25,15,8,19,15,15,30,15,15,15,21,14,14,14,14,14],
[11,5,2,2,24,3,2,22,2,2,29,4,2,2,21,14,14,14,14,14],
[11,2,10,2,24,2,2,22,15,8,30,15,8,15,15,15,15,15,15,19],
[11,2,10,2,24,2,2,22,2,2,29,2,2,2,2,2,2,2,2,22],
[11,2,10,2,24,4,2,2,2,5,29,2,3,2,18,15,15,15,20,19],
[11,2,10,10,26,27,9,27,27,27,28,10,10,2,16,6,6,6,6,17],
[11,2,2,2,2,2,2,2,2,2,2,2,2,2,16,6,6,6,6,17],
[11,2,2,5,2,2,2,3,2,2,2,4,2,2,16,6,6,6,6,17],
[13,12,12,12,12,12,12,12,12,12,12,12,12,12,15,15,15,15,15,15]]// trace le décor au démarrage


Je déjà essayer la solution décrite mais j'ai du me planter dans la fonction quio me permet de l'amener car je n'ai aboutit à rien, je vais refaire de essais.

Merci pour votre aide est bonne continuation

Je ne sais pas comment mettre un fichier en pièce joint sur ce forum autrement j'aurais mis mon anim.

Je vous mets un lien ou il est possible de télécharger mon anim

lien
0
leo552
Messages postés
13
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
8 octobre 2008

25 sept. 2008 à 17:57
Désoler le lien n'a pas était pris en compte dans le post précédent et comme je ne peut pas edit mes messages.lien
0
webcrea92
Messages postés
88
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
1 novembre 2009

25 sept. 2008 à 18:10
A ce stade pour afficher la carte tu dois faire 2 boucles du style
prof = 1;
for(i=0 ; i<32 ; i++){
    for(j=0 ; j<32 ; j++){
       // Calcul des coordonnées où il va falloir afficher la tuile
       x1 = largeurTuile * i + positionAbsolueCarte_X;
       y1 = hauteurTuile * j + positionAbsolueCarte_Y;
        typeTuile = "tuile" + carte[i][j];     // où tuile1, tuile2, tuile3...etc sont des clips de tuiles
        nom = "tuile"+"_"+n+"_"+m;        // tu génères un nom pour ta nouvelle tuile
        attachMovie(typeTuile, nom, prof++, {_x:x1, _y:y1});     // affiche la tuile sur la carte à la position x1,y1
    }
}

Christophe
Webcréa sarl
http://www.webcrea.fr
0
leo552
Messages postés
13
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
8 octobre 2008

25 sept. 2008 à 18:13
Merci pour ta réponse, je vais voir ce que je peux faire avec cela mais pour dire vrai je n'y piège pas grand chose, je vais m'y plonger pour essayer de comprendre un peu mieux.
0
leo552
Messages postés
13
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
8 octobre 2008

25 sept. 2008 à 18:24
Je crois que je vais laisser mon animation dans le sens ou je voulais la faire et trouver un autre moyen d'arriver à un but presque identique car je n'ai pas accés de connaissance pour faire les choses que je voudrais faire, je ne sais même pas ou mettre le code que tu viens de me donner et je me demande si celui-ci ne pas intervenir dans le reste.

Merci pour votre aide et bonne continuation
0
webcrea92
Messages postés
88
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
1 novembre 2009

25 sept. 2008 à 18:31
Le tableau carte contient le type de clip tuile à afficher pour chaque case de ta carte

carte de 5 tuiles sur 3

0 1 0 0 0
0 1 0 2 2
0 1 0 2 2

0 = plaine
1 = chemin
2 = forêt

tu as ainsi un chemin avec un petit bosquet à droite

Christophe
Webcréa sarl
http://www.webcrea.fr
0
leo552
Messages postés
13
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
8 octobre 2008

25 sept. 2008 à 18:36
Ce principe la j'ai compris, tu as lien qui voir mon animation que j'ai créer.

Le problème vient que je ne vois pas ou je dois mettre le code que tu m'as donné et aussi de trouver la bonne fonction pour que le changement s'effectue quand le nombre de clé est à zero

J'ai mis ce code la :

function interaction_objets(){
       
        for (n=0; n<liste_objets.length; n++) {
               
                nom="objet_"+n;
                type= liste_objets[n][0] ;
               
                if (objets[nom].hitTest(heros)){
                        if (type==1){
                                nombre_tresor +=-1;
        affichage_nombre_tresor();
   objets[nom].removeMovieClip();
                                if(nombre_tresor==4){
        carte[20][8]=8;


        }
      }




        }
}
}
0
leo552
Messages postés
13
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
8 octobre 2008

25 sept. 2008 à 18:38
J'ai mis 4 pour les essais, je dois être bizarre mais pour comprendre quelque chose, je dois faire des test pour voir ce que cela change.
0
webcrea92
Messages postés
88
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
1 novembre 2009

25 sept. 2008 à 18:44
ça c'est ta routine de jeu, elle vient après l'affichage de la carte.

a ce stade je te suggère de télécharger un jeu de ce type sur ce site pour te familiariser avec le principe

Christophe
Webcréa sarl
http://www.webcrea.fr
0
leo552
Messages postés
13
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
8 octobre 2008

25 sept. 2008 à 18:49
J'ai cherche pas mal de temps et j'ai pas trouver un jeu de même type avec le même problème, n'aurais tu pas un lien me permettant une recherche plus rapide, autrement oui je vais faire ainsi car c'est galère la, de plus je ne sais pas si tu as vu j'ai aussi un problème avec la princese qui ne prend pas en compte les cases infranchissable et après de la faire tourner d'une direction.

Merci pour tes conseils et bonne continuation. Je vais essayer de trouver un jeu avec le meme principe et voir comment cela marche et j'espère trouver une solution.
0
leo552
Messages postés
13
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
8 octobre 2008

25 sept. 2008 à 19:10
Je viens de regarder rapidement et je n'ai pas trouver grand chose et le peu que j'ai trouver, c'est hyper complexe pour moi, et il utlise le code citez ci dessus, donc je vais essayer de voir si je peux l'adapté à mon animation autrement je ferais une autre type de fin.

Merci et bonne soirée
0
leo552
Messages postés
13
Date d'inscription
vendredi 25 avril 2008
Statut
Membre
Dernière intervention
8 octobre 2008

29 sept. 2008 à 17:36
J'ai trouver une solution pour remplacer la tuile avec la fonction :

if(nombre_tresor==4){
        image=carte[18][10]=8;
        decor[id].gotoAndstop(8);

L'image s'affiche bien ou moment souhaiter mais je n'ai pas encore trouver le moyen de la faire venir au bonne endroit.

Si quelqu'un peu m'aider.

J'avance aussi dans mon animation et maintenant j'ai des soucis avec l'interation et le type1, type 2, etc

Ma formule marche quand mon type est unique mais dès que je passe au type 2 plus rien n'est pris en compte même pas le type 1.

Je vous mets ma formule

function interaction_diamants(numero){
       
        for (n=0; n<liste_diamants.length; n++) {
               
                nom="diamant_"+numero;
                type= liste_diamants[numero][0] ;
    if (diamants[nom].hitTest(heros)){
    if (type==1){
     nombre_garde1 +=-1;
    garde1.removeMovieClip();
    diamants[nom].removeMovieClip();


    if (type==2){
     nombre_garde2 +=-1;
    garde2.removeMovieClip();
    diamants[nom].removeMovieClip();
    
    if(nombre_diamant==0){
    initialise_objets() ;
    }
    }
    }
    }
    }
    }

Merci d'avance pour votre aide car j'ai cherché toute l'apm et j'ai pas trouver d'ou venez les problèmes
0