JeuWeb - Crée ton jeu par navigateur
Cold War - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Les réalisations de la communauté (https://jeuweb.org/forumdisplay.php?fid=39)
+--- Forum : Jeux jouables (https://jeuweb.org/forumdisplay.php?fid=52)
+--- Sujet : Cold War (/showthread.php?tid=7496)

Pages : 1 2 3 4


RE: Cold War - @lucard - 04-11-2015

J'ai mis mis du temps à poster mon "edit", c'est justement le problème que je soulevais (mais avec la Corée)
le problème dans le jeu c'est que le pays doit correspondre au choix du joueur.
Or, là c'est pas aussi simple.

Car finalement si tu décides de faire d'autres choix (que ceux qui ont déjà été fait) tu crées un paradoxe où tout peut arriver. Là exit les frontières que nous connaissons. donc est-ce encore nécessaire de faire des frontières "dessinée" ?
Avec des "animation de path".
où ne vaut-il mieux pas générer les frontières en dynamique ?

- Si un codeur veux bien répondre à ça.


RE: Cold War - Xenos - 04-11-2015

Là, ce sont des frontières dynamiques si je comprends bien (au sens où elles dépendent des évènements dans le jeu). Pour cela, deux choix: soit 1 pays = 1 ensemble de régions (ensemble pouvant n'avoir qu'un seul élément), et donc tu peux déplacer une région d'un pays à l'autre, soit il te faut générer les frontières en pure dynamique. Cela me semble bien plus difficile.

A mon avis, là, il faut avoir 1 groupe <g> par région, contenant un <path> qui décrit la région et des <path> qui décrivent sa frontière (un par frontière de la région avec une autre région). De cette façon, tu pourras gérer la couleur d'une région avec le 1er path, et la couleur de ses frontières (ainsi que leur affichage ou non) avec les autres paths.
Ensuite, 1 pays = 1 groupe <g> de régions. Si une région change de pays, elle n'aura qu'à changer de groupe dans le code SVG (le SVG, c'est juste un autre langage à balises, donc cela peut se générer comme tu génères ton HTML). Il faudra aussi masquer les frontières intérieurs (la frontière entre deux régions d'un même pays n'a pas lieu d'être affichée).

On doit pouvoir réussir à ne pas dupliquer le code des <path> de frontière et celui du <path> de la région, mais je ne sais pas si ce sera super-pratique... L'idée est alors d'avoir les <path> de frontière d'un coté, et de créer un <polygon> (ou un <path> en forme de polygon) qui bouchera le trou entre ces frontières (un fill des frontières te montrera le polygone à boucher).

Bref, j'ai de la route à faire là, donc j'ai pas le temps de plus détailler, mais @lucard saura surement le faire Wink

Au final, t'auras encore un SVG quasi-statique, et un CSS appliqué dessus dynamique: il masquera les frontières entres les régions d'un même pays. La seule composant dynamique du SVG consiste à mettre chaque région dans le groupe <g> du pays auquel elle appartient.


RE: Cold War - @lucard - 04-11-2015

Si en moyenne un pays à 5 régions (ce qui est peu) on à alors grosso-modo plus de 25 path de "frontières" et 6 "path" de forme... soit plus de 30 path par Pays. Le tout multiplié par le nombre de Pays (~200), ça nous donne +6000 path à dessiner... (trop de travail)
sans compter le faire de trans-vaser les path d'un groupe à un autre (via php sûrement)...

C'est loin d'être un système simple et facilement mis en place rapidement.


RE: Cold War - LARS - 04-11-2015

Merci beaucoup Xenos et @lucard, je transmets vos conseils pour la carte sur le sujet qui va bien : http://forum.reseau-js.com/topic/92864-la-carte-de-cold-war/

Je pense que pour la Corée, on va aller au plus simple pour la guerre de Corée :

Si une Corée gagne, elle annexe l'autre, du coup les deux disparaissent pour laisser place au pays "Corée" (la Corée unie tout bêtement)

Si la guerre ne se déclenche pas, les frontières restent fixées à celles imposées après la WW2.

Si la guerre se finit par un status quo, et que le débarquement à Incheon a réussit (l'un des événements de la guerre dans le jeu), on a les frontières actuelles.

Si la guerre se finit par un status quo, et que le débarquement d'Incheon a échoué, les frontières sont approximativement fixées à ce qui correspond au périmètre de Pusan.

Clairement, le jeu ne consiste pas à annexer des territoires, donc les changements de frontières ont plutôt lieu via des événements et des guerres historiques (Guerre de Corée, du Vietnam, guerre civile chinoise, Inde-Pakistan, etc...), mais il est vrai qu'il faut prévoir certains cas uchroniques


RE: Cold War - LARS - 05-11-2015

Et comme il va surement y avoir un code couleur (genre les pays du bloc américain apparaissent en bleu, ceux du bloc soviétique en rouge, les non-alignés en jaune et les "sans-camp" restent en gris par ex.), est-ce que le changement de couleur en cours de route est simple à coder ?
Par exemple, je joue les USA, je fais rentrer un pays dans mon bloc et du coup la couleur de celui-ci sur la carte change pour le bleu.

Je ne sais pas si je suis clair ^^ ?


RE: Cold War - @lucard - 05-11-2015

  • Soit tu définies une carte avec des frontières dès le départ. avec les pays "Scindés" et "non-scindés" (qu'il faudra masqué via "visibility")

    où il faut un path par pays (avec un id)

    <path id="RU"
            data-code="RU"
            class="jvectormap-region jvectormap-element"
            d="coordonnée du path"/>
    → Pour lui faire changer de couleur
    1. soit tu ajoutes dans le path un attribut "fill"

      <path id="RU"
              data-code="RU"
              class="jvectormap-region jvectormap-element"
              d="coordonnée du path"
              fill="red"/>
    2. soit tu fais le changement de couleur depuis le css

      #RU, #LT, #ET, #CZ, ... {
      fill:red;
      }
    s'il change de couleur, tu change la couleur du "fill"... que ce soit dans le svg ou dans le css.

  • Soit tu crées 4 groupes de path (plus besoin d'Id)

    <g id="American">
      <path data-code="US"
               class="jvectormap-region jvectormap-element"
               d="coordonnée du path"/>
      <path data-code="..." />
    </g>
    <g id="Россия">
      <path data-code="RU"
               class="jvectormap-region jvectormap-element"
               d="coordonnée du path"/>
      <path data-code="..." />
    </g>
    <g id="...">
       ...
    </g>
    → Pour lui faire changer de couleur
    1. soit tu ajoutes dans le groupe un attribut "fill"

      <g id="American" fill="blue">
        ...
      </g>
      <g id="Россия" fill="red">
        ...
      </g>...
    2. soit tu fais le changement de couleur depuis le css

      #Россия{fill:red;}
      #American{fill:blue;}
    Pour changer la couleur d'un pays, il suffit de placer le <path/> dans le bon groupe

- Je t'avoues que j'ai pas envie de commencer l'édition d'une map, alors que la façon dont elle devra évoluée n'est pas encore défini (pas envie de refaire 20x une carte qui ne me servira pas)

voilà un ancien test :
http://codepen.io/CyrilLevallois/pen/Jjakc?editors=110
tu as le nom des pays en "id" essaye d'ajouter dans la partie "css"
genre : "#Belgique, #Irlande{fill:red;}"
et "#Pays-Bas{fill:rgba(0,255,0,0.5};}"


RE: Cold War - LARS - 05-11-2015

T'embêtes pas à remonter la map, tguyon monte un "commando-map" sur son sous-forum Wink


RE: Cold War - LARS - 15-11-2015

Si vous avez d'autres remarques, n'hésitez pas Wink


RE: Cold War - @lucard - 25-11-2015

je viens de faire un tour.
Puis dans l'entête j'ai vu "Nouvelle Partie - Charger Partie"

J'ai cliqué Charger Partie...
puis j'ai vu affiché : Entrez ici le nom de votre sauvegarde

Alors j'ai tapé au hasard "test" O_o
Et paff, j'ai chargé une sauvegarde... qui n'est pas la mienne
j'ai cliqué quelques fois, puis j'ai appuyer sur "Sauvegarder"

Et bien, ça a sauvegardé (toujours sur une partie qui n'est pas la mienne...)

C'est pas dangereux que n'importe-qui puisse faire des modifs ?


RE: Cold War - LARS - 27-11-2015

Ben, pas spécialement, sauf si tu tapes un pseudo du hall of fame au hasard ou test, tu ne devrais pas, sauf coup de bol, ouvrir la partie de quelqu'un.