Celà fait longtemps que je veux réaliser un jeu du royaume, c'est à dire un jeu où l'on gère un domaine quelconque (oui, c'est le nom originel de ce genre de jeux). Eh bon, après environ 25 ans, me voilà à l'ouvrage.

jeudi 19 avril 2012

Garder les données en mémoire

Ayant multiplié les scripts comme d'autres les pains, je me suis retrouvé face à un autre problème : Comme on garde les variables, en fait ?

La solution que j'ai trouvée, est toute simple : Je les mets en attribut des images présentes sur l'écran.

En effet, on peut donner n'importe quel attribut à un élément HTML (au moins les images). Il faut juste éviter de donner un nom "réservé" (c'est à dire qui à un sens pour le navigateur lorsqu'il le trouve comme attribut).

Un navigateur qui ne reconnaît pas un attribut se contente de l'ignorer.
J'ai donc placé comme attribut aux villes des choses comme leur nom, le joueur auxquelles elles appartiennent, leur population, etc.

Sur le bouton de passage de tour, j'ai mis des données plus générales (comme le tour en cours, bien sûr).

Ensuite, comme je sais évidemment où je place quoi, il suffit à un script en ayant besoin d'aller chercher l'attribut voulu.

Par exemple :

    document.getElementById('case8[2]').setAttribute('bloquer','1');

Au début du script se chargeant d'afficher la "fenêtre" de ville, cette commande change l'attribut "bloquer" du bouton de passage de tours ('case8[2]', c'est son nom, pour le moment).

Quand le joueur clique sur le bouton de sortie de cette fenêtre, le script commence par :

    document.getElementById('case8[2]').setAttribute('bloquer','0');

En clair, il remet l'attribut "bloquer" du bouton de passage de tour à 0.

À quoi ça sert ?

Eh bien quand le joueur clique sur le bouton de passage de tour, son script fait ça :

    var bloquer = document.getElementById('case8[2]').getAttribute('bloquer');
    if (bloquer =='0')
    { reste du script }

Il lit la valeur de l'attribut "bloquer", toujours au même endroit, et la place dans une variable, simplement appelée "bloquer" aussi.

Puis il vérifie si "bloquer" vaut 0. Si tel est le cas, il exécute le reste du script, sinon ben il va tout de suite à la fin du "if", et là il n'y a plus rien, donc le script s'arrête.

En pratique, du point de vue du joueur tout au moins, celà désactive le bouton de passage de tour lorsque la fenêtre des villes est affichée.


Aucun commentaire:

Enregistrer un commentaire