JeuWeb - Crée ton jeu par navigateur
Dimensions et affichage, quelle méthode ? - 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 : Dimensions et affichage, quelle méthode ? (/showthread.php?tid=4254)

Pages : 1 2 3


Dimensions et affichage, quelle méthode ? - Argorate - 03-08-2009

Bonsoir,

Je vais d'ici quelques jours m'attaquer à un gros morceau dans mon jeu: l'affichage des bâtiments sur la map.

Mon problème se pose sur le fait que les bâtiments font au moins du 2x2 cases et non une seule comme un objet ou un personnage.

Il y a donc selon moi deux façons de faire:

-Mettre l'image dans la case haut-gauche et faire déborder l'image sur les 3 cases adjacentes -en les considérants comme occupé.

-Soit faire au préalable une fusion des cellules du tableau pour y placer l'image.

Je n'ai aucune idée des éventuels avantages/inconvenants de ces deux méthodes. Je souhaiterais donc que ceux qui ont déjà étudié le problème m'en parle pour m'aider à faire le bon choix de conception.

Evidement si vous avez d'autres solutions n'hésitez pas non plus! Wink

Merci.


RE: Dimention et affichage, quel methode? - Sephi-Chan - 03-08-2009

Pour avoir pas mal réfléchi aux systèmes de carte, je ne peux que te conseiller de ne pas encombrer ton code avec des tests pour générer le HTML qui va bien.

L'idéal, pour être à la fois performant, simple et souple, c'est de générer un conteneur qui contient donc tous tes objets par couche, ainsi, sur ta couche bâtiments, tu n'a qu'à lister des bâtiments. Il te suffit ensuite de les positionner à ta guise avec CSS. Les informations concernant la disponibilité de la case est effectivement un attribut de la case et non de sa représentation graphique (et encore moins de la représentation du bâtiment).


Sephi-Chan, depuis son téléphone...


RE: Dimensions et affichage, quelle méthode ? - Blarg - 03-08-2009

Tu pourrais diviser l'image de tes batiments en 4, une image par case, ainsi pas besoin de concaténer les cellules de ton tableau et pas besoin de tour de passe-passe pour considérer des cases vides comme occupées.

Évidamment, ça force à avoir 4 images par batiments, alors ce n'est pas idéal non plus.


RE: Dimensions et affichage, quelle méthode ? - Argorate - 03-08-2009

Je note Séphi Wink

Blarg: le problème de cette technique c'est qu'il faut ce taper la division de toutes les images, c'est assez lourd, puis comme tu le dis ça multiplie par 4 le n de fichiers...

Je n’aime pas trop^^


RE: Dimensions et affichage, quelle méthode ? - Sephi-Chan - 03-08-2009

C'est infiniment plus compliqué qu'un système de couches agencées par CSS. La maintenance devient vachement lourde. Confused


RE: Dimensions et affichage, quelle méthode ? - Cartman34 - 03-08-2009

Sephi-Chan, Je suis intéressé par ta réponse, comment tu gères ca en CSS ?


RE: Dimensions et affichage, quelle méthode ? - keke - 03-08-2009

(03-08-2009, 01:34 AM)Argorate a écrit : Je note Séphi Wink

Blarg: le problème de cette technique c'est qu'il faut ce taper la division de toutes les images, c'est assez lourd, puis comme tu le dis ça multiplie par 4 le n de fichiers...

Je n’aime pas trop^^

Bien que je ne trouve pas cette solution comme étant la plus évidente non plus, je souhaite juste dire qu'il n'y a rien de lourd à automatiser un découpage d'image en case. Je le fais dans mon jeu pour découper des sols.
Citation : Le dernier découpage en date ayant été fait hier à minuit suite à l'envoie d'une image par un joueur.
Pour être exact, Une image m' été envoyé par un joueur, et je l'ai améliorée en utilisant une image de notre ami Greywolf :
http://www.magdales.com/pub-greywolf.html
Les credits doivent donc lui revenir.

[Image: image_tour.PNG]

C'est ni compliqué à mettre en oeuvre, ni contraignant.

Après avoir dit cela, je trouve néanmoins + intelligent dans le cas de batiment, d'utiliser la solution de Séphi-Chan.

Kéké
<edit pour prendre en compte le commentaire pour greywolf>


RE: Dimensions et affichage, quelle méthode ? - Roworll - 03-08-2009

Le positionnement par CSS est effectivement l'un des moins lourds. Moins d'images (et donc de hits) à charger, un contrôle au pixel près du positionnement et de la taille des éléments. On peut même simuler le découpage d'images.
Par exemple, avec des cases de 30 pixels de coté en partant d'un bâtiment s'étendant sur 2x2 bases (soit 60x60 pixels)
Code PHP :
<?php 
div
.bat_NE {
position:absolute;
background:0px 0px url(./images/bat1.png);
width:30px;
height:30px;
}

div.bat_NW {
position:absolute;
background:0px -30px url(./images/bat1.png);
width:30px;
height:30px;
}

div.bat_SE {
position:absolute;
background:-30px 0px url(./images/bat1.png);
width:30px;
height:30px;
}

div.bat_SW {
position:absolute;
background:-30px -30px url(./images/bat1.png);
width:30px;
height:30px;
}

Reste à positionner les DIVs dans la page en leur affectant la bonne classe.
Je trouve cela plus simple et efficace.

Roworll, depuis sa WII dans son canapé

(Notez comme au passage, je glisse subrepticement dans la conversation que je possède un canapé et une WII capable de surfer sur le net.)

(Non je déconne mais quand j'ai vu "Sephi-Chan, depuis son téléphone...", j'ai pas pu résister ^^)


RE: Dimensions et affichage, quelle méthode ? - Morningkill - 03-08-2009

(03-08-2009, 10:45 AM)Roworll a écrit : Le positionnement par CSS est effectivement l'un des moins lourds.

En fait, c'est ce que nos amis anglo saxons appellent "CSS sprite", non ?


RE: Dimensions et affichage, quelle méthode ? - Argorate - 03-08-2009

Bien, bien.

Je superpose déjà des objets/ressources/persos/vehicules avec des div & CSS, alors continuons gaiement avec les bâtiments n'es-ce pas? Big Grin

Merci Wink