JeuWeb - Crée ton jeu par navigateur
Positionner bâtiments sur carte, faisable ? - 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 : Positionner bâtiments sur carte, faisable ? (/showthread.php?tid=4939)

Pages : 1 2


Positionner bâtiments sur carte, faisable ? - dryzd - 24-06-2010

Bonsoir,

J'aimerai bien proposer un système de positionnement de bâtiments sur un damier.
Certains bâtiments font une case, d'autres 2,4 ou 6.

Il faudrait donc pouvoir sélectionner un bâtiment puis le positionner sur un damier en distinguant les cases occupées (pas d'autres bâtiments) des cases libres. Éventuellement passer en vert les cases libres et en rouges si occupées au survol des cases par le bâtiment.

Vous verriez quelle solution technique ? Flash ?

Si oui, comment vous y prendriez-vous (niveau méthodo) ?

Merci de votre aide à tous

Dryzd


RE: Positionner bâtiments sur carte, faisable ? - php_addict - 24-06-2010

pas certain de comprendre...

tu veux un truc dans le genre drag n' drop ???

dans tout les cas cela se fait du cote client, donc faut communiquer avec le serveur pour savoir si tu peut deplacer un batiment

connaissant pas le flash, je dirais un drag n' drop en javascript et AJAX pour communiquer avec le serveur, mais j'ai peur de te dire une betise...


RE: Positionner bâtiments sur carte, faisable ? - Globe - 25-06-2010

Ouais si tu veux poser tes bâtiments comme sur un RTS Vidéo "en temps réel" tu dois utiliser du javascript ou faire ta map entière en flash enfin il me semble.


RE: Positionner bâtiments sur carte, faisable ? - dryzd - 25-06-2010

Oui, comme un RTS vidéo en temps réel.

En flash, j'ai déjà la carte avec les déplacements et le zoom. Les bâtiments seront chargés sur une requête sql via une page php (je sais faire).

Je voudrais faire un drag&drop (ça je sais comment faire aussi, j'ai trouvé des tutos sur le web) mais où ça manque, c'est pour détecter si les cases sont vides (movieclip) quand ce sont des bâtiments de tailles différentes.

Flash me semble plus adapté que Js. Déjà parce que je maitrise mieux, et ensuite parce que les capacités d'évolution me semble plus souples (animations des bâtiments, effets visuels ...). Mais je ne veux pas lancer de débat entre les deux technos !!!

Je vais allé faire un tour sur les forums flash Wink


RE: Positionner bâtiments sur carte, faisable ? - Shudrum - 25-06-2010

Perso, mon projet est full flash, et l'on place les bâtiments comme tu aimerais faire.

Une base fait une certaine taille, avec des bâtiments d'1x1 case, 2x2 ou 3x3 cases.

Ce que j'ai fait, c'est différents "calques" sur cette base :
_ Au plus haut niveau, lors de la construction : des tuiles invisible renvoyant l'id de la case survolée pour tester dans le tableau contenant la base s'il est possible de construire.
_ Des tuiles transparentes pour le survol et l'infobulle par exemple, le clic
_ Le visuel des bâtiments
_ Le sol
_ Un background spécifique au plus bas niveau.


RE: Positionner bâtiments sur carte, faisable ? - dryzd - 25-06-2010

oui, au niveau des calques, c'est ça :p
Mais comment faits-tu pour savoir si on peut y mettre un bâtiment de 1x1 2x2 ou 3x3, et pourquoi pas 3x1 par exemple ?


RE: Positionner bâtiments sur carte, faisable ? - Shudrum - 25-06-2010

Quand tu survols, tu récupères ton Id.

Donc, à ce moment, ce que tu sais :
_ Quel bâtiment tu cherches à construire
_ A quel endroit le joueur survol

Donc, tu as toutes les informations en main, il te suffit de tester toutes les cases concernées en fonction de la taille du bâtiment.


RE: Positionner bâtiments sur carte, faisable ? - dryzd - 25-06-2010

Qu'est-ce que tu fais exactement ?

1 - Je sélectionne le bâtiment. Ex : une usine
2 - Je récupère le nombre de cases de ce bâtiment. Ex: 4 cases
3 - Au survol, je récupère l'id de la case survolée. Ex : id=58
4 - Je regarde si les cases aux alentours sont libres ==> comment ? Tu as un tableau avec toutes les combinaisons possibles ? Tu faits comment ?

Dans l'idée, la matrice pourrait faire 100 cases donc faire un tableau de toutes les combinaisons possibles (avec le cas des cases en bordures), ça me semble complexe.


RE: Positionner bâtiments sur carte, faisable ? - Shudrum - 25-06-2010

Bah, ta base, par si elle fait par exemple 5x5, tu as donc :

Code :
-       1   2   3   4   5
-     +---+---+---+---+---+
-   1 |   |   |   |   |   |
-     +---+---+---+---+---+
-   2 |   |   |   |   |   |
-     +---+---+---+---+---+
-   3 |   |   |   |   |   |
-     +---+---+---+---+---+
-   4 |   |   |   |   |   |
-     +---+---+---+---+---+
-   5 |   |   |   |   |   |
-     +---+---+---+---+---+

Quand le joueur survol une case, tu as l'id, il est donc super facile (j'vais pas mâcher le travail) de récupérer les coordonnées, donc par exemple s'il survol la vas x=3, y=2 :

Code :
-       1   2   3   4   5
-     +---+---+---+---+---+
-   1 |   |   |   |   |   |
-     +---+---+---+---+---+
-   2 |   |   | X |   |   |
-     +---+---+---+---+---+
-   3 |   |   |   |   |   |
-     +---+---+---+---+---+
-   4 |   |   |   |   |   |
-     +---+---+---+---+---+
-   5 |   |   |   |   |   |
-     +---+---+---+---+---+

Et qu'il a choisi un bâtiment qui fait 3x3, tu testes donc, par rapport à la position choisie les cases alentour, par exemple pour la selection en 3|2 :

Code :
-       1   2   3   4   5
-     +---+---+---+---+---+
-   1 |   | ? | ? | ? |   |
-     +---+---+---+---+---+
-   2 |   | ? | X | ? |   |
-     +---+---+---+---+---+
-   3 |   | ? | ? | ? |   |
-     +---+---+---+---+---+
-   4 |   |   |   |   |   |
-     +---+---+---+---+---+
-   5 |   |   |   |   |   |
-     +---+---+---+---+---+

Tu testes si en 2|1, 3|1, 4|1, 2|2, 4|2, 2|3, 3|3, 4|3 les emplacements sont libre, et hop : le tour est joué.


RE: Positionner bâtiments sur carte, faisable ? - dryzd - 25-06-2010

Ok, je vois le principe, y'a plus qu'a faire le code Wink

Merci !