JeuWeb - Crée ton jeu par navigateur
[Nouveau probleme dans l'editeur] Editeur de map - 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 : [Nouveau probleme dans l'editeur] Editeur de map (/showthread.php?tid=4143)

Pages : 1 2 3 4 5 6 7 8 9 10 11


RE: [Nouveau probleme dans l'editeur] Editeur de map - NicoMSEvent - 04-10-2009

je crois que ne prends pas ça par le bon bout.

En fait, d'après moi, il faudrait vérifier ça avec du SQL/PHP (au choix), et retourner dans du html cherché via ajax, ou par la manière classique, peu importe, les images correspondantes. Bref, fais un maximum coté serveur!


RE: [Nouveau probleme dans l'editeur] Editeur de map - nialcen - 04-10-2009

Je posterais l'algorithme demain, si quequ'un peux m'aider a la transcrire en javascript, ça sera supper ^^


RE: [Nouveau probleme dans l'editeur] Editeur de map - Maz - 05-10-2009

(04-10-2009, 09:04 PM)NicoMSEvent a écrit : je crois que ne prends pas ça par le bon bout.

En fait, d'après moi, il faudrait vérifier ça avec du SQL/PHP (au choix), et retourner dans du html cherché via ajax, ou par la manière classique, peu importe, les images correspondantes. Bref, fais un maximum coté serveur!

S'il fait ça, les cases alentours qui auront été modifié dans la session courante(donc pas encore enregistrées dans la BDD) seront ignorés.
En fait ce qu'il faut faire c'est:
Définir le point de départ de ce que l'on appelleras "le carré de 9":
[Image: carre9_u1254761154.png]
pour ça rien de plus simples:
dans l'évènement:
Code :
$(".tuile").mousedown(function(eventObject){
});
Il faut rajouter quelque chose comme:
Code :
var regexCoord = /(\d+);(\d+)/;
var currentCoord = regexCoord.exec($(this).attr("id"));
var OriginCarreNeuf = [currentCoord[1]-1, currentCoord[2]-1];
Ensuite on exécutes une boucle sur chacune des cases comprises dans le carré de neuf (avec deux instructions "for" imbriquées) pour récupérer l'image de chacune d'elle et exécuter les modifications si nécessaire.

PS: le code que j'ai cité n'as pas été testé.


RE: [Nouveau probleme dans l'editeur] Editeur de map - nialcen - 05-10-2009

C'est exactement ça MAZ,

un truc du genre

Code :
// on a donc deux variables : posx et posy deja presente

var ordonnée = 0 ;
var abscisse = 0 ;

for (ordonnée=0;ordonnée<=17;ordonnée++)
    {for (abscisse=0;abscisse<=17;abscisse++)
         {if (ordonnée==0 && abscisse==0)
             {if (/* background_de_la_tuile_avec_id(posx+abscisse;posy+ordonnée)== herbe */)  //c'est ici que je ne sait pas rédiger.   ****
                 {if ((/* background_de_la_tuile_avec_id(posx+abscisse + 1 ;posy+ordonnée)== herbe */) && (/* background_de_la_tuile_avec_id(posx+abscisse + 1 ;posy+ordonnée + 1)== herbe */) && (/* background_de_la_tuile_avec_id(posx+abscisse;posy+ordonnée +1)== herbe */))
                     {// background_de_la_tuile_avec_id(posx+abscisse;posy+ordonnée) = herbe_pleine;
                     }
                 else if ((/* background_de_la_tuile_avec_id(posx+abscisse + 1 ;posy+ordonnée)== herbe */) && (/* background_de_la_tuile_avec_id(posx+abscisse + 1 ;posy+ordonnée + 1)== eau */) && (/* background_de_la_tuile_avec_id(posx+abscisse;posy+ordonnée +1)== herbe */))
                     {// background_de_la_tuile_avec_id(posx+abscisse;posy+ordonnée) = herbe_sans_bord_droit;
                     }
                     [...]    etc   [...]  mais tout ça ne je sais pas comment le coder en JS corectement.
                 }
             }
         }
    }
C'est juste le tout debut de l'algorithme, mais en js je peine .... mais c'est tout a fait le principe que je veux, tu peux m'aider pour juste le code que j'ai fais , de sorte a que je m'occupe du reste seul ?


EDIT : un cop col sous notepad++ rendra le tout plus lisible ^^


RE: [Nouveau probleme dans l'editeur] Editeur de map - Maz - 05-10-2009

Déjà, tu ne définis pas le carré de neuf, donc à chaque changement de tuile tu va analyser toute la map: pas très optimisé.
Ensuite tu part de 0;0 jusqu'à 17;17, il faut que X et Y soit des variables et que les boucle ne parcours que ce qui est nécessaire.
Enfin pour la modification des tuiles adjacentes en elles-mêmes, j'ai pas le temps d'y réfléchir, j'ai retrouvé un job donc j'ai beaucoup moins de temps d'y réfléchir...


RE: [Nouveau probleme dans l'editeur] Editeur de map - nialcen - 05-10-2009

J'ai defini cela autrement, une fois ma map faite, je verifie chaque case de sorte a modifier l'image, d'ou le 17.
au lieu de modifier a chaque changement d'image une fois tout definis en terre ou eau pure, jaffine en fonction des case qui encadre.
Si tu peux juste m'aider a traduire mon pseudo coed en js, je t'en serais tres reconnaissant, et cela devrait me suffire a achever mon editeur


RE: [Nouveau probleme dans l'editeur] Editeur de map - Maz - 06-10-2009

(05-10-2009, 08:41 PM)nialcen a écrit : J'ai defini cela autrement, une fois ma map faite, je verifie chaque case de sorte a modifier l'image, d'ou le 17.
au lieu de modifier a chaque changement d'image une fois tout definis en terre ou eau pure, jaffine en fonction des case qui encadre.
Si tu peux juste m'aider a traduire mon pseudo coed en js, je t'en serais tres reconnaissant, et cela devrait me suffire a achever mon editeur

Ton pseudo-code est déjà en JS, ce qu'il faut maintenant c'est remplir les instructions for par les changements de tuiles.


RE: [Nouveau probleme dans l'editeur] Editeur de map - nialcen - 07-10-2009

Citation :/* background_de_la_tuile_avec_id(posx+abscisse;posy+ordonnée)== herbe */) //c'est ici que je ne sait pas rédiger. ****

ça c'est pas tres tres javascript et c'est bien ça le probleme

de meme que ça

Citation : {// background_de_la_tuile_avec_id(posx+abscisse;posy+ordonnée) = herbe_pleine;

bref le test et le remplacement ...