Messagerie


Gestion des tableaux globaux

Poum
vendredi 3 février 2017 à 20:57
Bonjour @tous,

Je vous sollicite cette fois afin mettre en place mes tableaux. Cela m’amène à vous poser plusieurs questions.
L’idée générale étant que dans mon jeu il existe plusieurs niveaux (scènes).  Dans chaque niveau (scène)  est placé des objets qui peuvent prendre deux états :

  • Présent

  • Détuit


Lors de la création des niveaux, je place visuellement ces objets et pars du principe qu’elles sont présentes.
J’ai créé un tableau regroupant ces objets.  Il a deux dimensions.

La première dimension me permet de stocker les coordonnés en X et Y de chaque objet plus son état (Présent ou détruit). La seconde s’occupe des niveaux (scènes : 1, 2, 3, …).

Ainsi, en jouant, si un objet est détruit dans un niveau, il me suffit de modifier son état dans la case du tableau. Aussi, lorsque le joueur quitte le jeu, je peux juste enregistrer ce tableau et retrouver mes objets en l’état lors de la prochaine session de jeu.

Pour y parvenir, j’ai créé une scène « Initialisation ».
Là, je déclare mon tableau mais surtout, je vérifie que le fichier est bien présent sur le DD. Si non, je le crée (objet Fichier).
Mon tableau est déclaré comme global à l’application.

Or, et c’est ma question, je n’arrive pas à trouver le moyen d’y accéder dans mes niveaux (scènes).

Ce que je comptais faire, est de :
    Créer le fichier s’il n’existe pas, [/li]
  • Charger le fichier dans le tableau au début de chaque scène

  • Si les données sont absentes, remplir le tableau avec les données présentes dans la scène (par défaut).

  • Si les données existent, rafraichir la scène en fonction (détruire les objets déclarés détruits).

  • Modifier le tableau en mémoire en fonction des agissements du joueur.

  • Si on quitte le jeu, enregistrer le tableau sur le DD.



Ce qui m’amène à me seconde question : est-ce la bonne méthode ?





Kloug
1497 messages
Fusion 2.5
vendredi 3 février 2017 à 21:22
Hello!

"Or, et c’est ma question, je n’arrive pas à trouver le moyen d’y accéder dans mes niveaux (scènes)."

Cela passe par la boucle rapide.

Tuto sauvegarde.
https://mega.nz/#!iQpxhIII!cqOMeh89766ZkYdU4d4pQT9RpqeOQ0uUPEU-gtB8i44

"Est-ce la bonne méthode ?"

Essaye d'abord de capter le principe d'un système de sauvegarde.
Un fois le principe acquis, tu seras en mesure de juger de ta méthode.

A+
Poum
vendredi 3 février 2017 à 21:53

Essaye d'abord de capter le principe d'un système de sauvegarde.
Un fois le principe acquis, tu seras en mesure de juger de ta méthode.


Merci pour ça mais j'avoue que tu ne m'aide pas vraiment.
J'ai téléchargé ton jeu mais ... j'en fais quoi ? En plus, une fois lancé le .EXE je ne sais pas quoi faire.
Il faut y voir quoi ?

Je suis certain que c'est très clair pour toi mais de mon côté ...  ???

Je veux bien juste quelques explications et non, "tu verras quand tu sera grand"  :P
Kloug
1497 messages
Fusion 2.5
vendredi 3 février 2017 à 22:41
En gros:

1) On charge le tableau en début de scène.

2) On restitue les valeurs numériques ou alphanumériques aux objets de la scène, via une boucle rapide.

3) On sauve le tableau en cours de jeu (fin d'une scène).

4) On peut mettre un tableau par scène, tout est possible avec CTF .

Si tu as le temps, ouvre le dossier "Inventaire mfa", décortique les mises en pratiques.

Un forum apporte des solutions au coup par coup, pas des notions de programmation. Il me semble que tous les forums traitant d'un langage de programmation sont confrontés à la même problématique.

Le tuto donne des explications importantes à lire, dans les dossiers, il y a des fichiers mfa à ouvrir.

Poum
vendredi 3 février 2017 à 22:51

En gros: ...


Je pense tenir là un début de piste.
Je vais explorer tout ça.

Merci beaucoup.


4) On peut mettre un tableau par scène, tout est possible avec CTF.

J'y avais pensé mais je me demandais si c'était une bonne chose.
Histoire de ne pas en mettre partout mais gérer l'ensemble une fois pour toute.
Kloug
1497 messages
Fusion 2.5
vendredi 3 février 2017 à 23:04
"2) On restitue les valeurs numériques ou alphanumériques aux objets de la scène, via une boucle rapide."

Voilà le point où ta méthode a un petit souci, à mon humble avis "insoluble", même via un objet tableau global, à moins de trouver un moyen simple et optimisé de gérer tous les objets (globaux), de toutes les scènes à la fois.

"4) On peut mettre un tableau par scène, tout est possible avec CTF."

Par expérience, une solution moins prise de tête qu'un tableau global.

Bon courage pour la suite.

Édit:
Logiquement un tableau global gère les données globales d'un jeu, comme un inventaire.

L'objet tableau "non global" gère les objets actifs d'une scène.
Par exemple un coffre ouvert ou fermé dans un rpg.

Je te conseille de bien séparer tes données.
Globales et spécifiques à chaque scène, autrement tu risques de galérer (perdre du temps).

Qu'on le veuille ou non on doit faire avec la structure de l'objet tableau, pour ma part j'utilise le plus souvent possible, la sauvegarde intégrée CTF.



Kloug
1497 messages
Fusion 2.5
samedi 4 février 2017 à 00:14
Voici un exemple de sauvegarde intégrée.
Au cas où...
Pièces jointes
Poum
samedi 4 février 2017 à 01:05
pour ma part j'utilise le plus souvent possible, la sauvegarde intégrée CTF.


J'avais commencé par là.

En voyant cette option j'ai crié victoire mais j'ai déchanté car le fait d'enregistrer sur le DD nécessite un micro temps qui est assez important pour créer une saccade dans le jeu.
C'est à partir de ce moment que j'ai cherché comment sauvegarder en mémoire et si besoin, le faire sur le DD mais en dehors des phases du jeu.
Emmanuel
2412 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
samedi 4 février 2017 à 11:50
Bonjour Poum
je c est pas si dont jeux et pour androïde si c est pour PC  il y a une extension Level-Save Object qui et pas mal et très rapide et simple a utilise.
si non il y aussi les bon vieux ini ou le ini++
Emmanuel
2412 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
samedi 4 février 2017 à 12:13
il y aussi (Save Game Object) luis il sauvegarder en mémoire les objet.
Poum
samedi 4 février 2017 à 13:47

il y aussi (Save Game Object) luis il sauvegarder en mémoire les objet.


Ca, ça m’intéresse.
J'avoue, qu'à part lorsque vous les utilisez, je n'ai pas encore fait le tour des extensions.
Je vais voir ça rapidement, merci.

Sinon le jeu est sur PC. Peut-âtre sur Mac si cela est possible :-)
J'ai testé rapidement pour Flash, HTML5, il y a trop de trucs qui ne sont pas compatibles  ::)


Edit : je n'arrive pas à mettre la main sur ces extensions.
Ca se passe où ?  :P
Emmanuel
2412 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
samedi 4 février 2017 à 13:58
Pour MAC le Module d’exportation et tout jour pas sortie je trouve qu il traîne un peu trop longtemps. Au moins qu'il vont plutôt l'inclure dans Fusion 3
Emmanuel
2412 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
samedi 4 février 2017 à 14:04
A tu clique comme si tu voulait ajouter un objet et la du clique sur le bouton gestionnaire la il aura tout l extension que du pourra telecharge.
Poum
samedi 4 février 2017 à 14:44
Bien évidement  :P Overdose je vous dis  ;)

J'ai installé mais je n'arrive pas à le faire fonctionner.
Cela dit, ça parait simple mais il ne réagit pas



Je dois peut-être boucler sur ces objets (il y en a plusieurs copies), il n'intervient peut-être pas sur l'ensemble des objets mais sur un seul.
L'idée étant que si elles ont été détruites, qu'elles réapparaissent. Et inversement, si elle n'existaient pas, quelles disparaissent.
Emmanuel
2412 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
samedi 4 février 2017 à 14:52
attention la il save en mémoire la position de l objet  (476) et quand du le rappel il vas retourne a ça position de ça sauvegarder

tu a regarde si il y a pas un exemple ?

Emmanuel
2412 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
samedi 4 février 2017 à 14:56
la commande et  (setup objet from memory) pour que l objet retourne a ça place
Poum
samedi 4 février 2017 à 15:07

tu a regarde si il y a pas un exemple ?


Oui et je n'ai pas trouvé d'exemple.
Juste son fichier d'aide en anglais.

Sinon, il y a sa configuration :




la commande et  (setup objet from memory) pour que l objet retourne a ça place

J'ai tenté d'utiliser la commande SETUP mais il plante l'application  :P


Il n'y a pas non plus 150.000 possibilités :
Kloug
1497 messages
Fusion 2.5
samedi 4 février 2017 à 16:54
Hello!

Il existe une petite règle d'or concernant la sauvegarde, priorité aux extensions natives.

Extensions externes à ses risques et périls.

La sauvegarde intégrée n'est pas la panacée universelle, mais ça dépanne.

Suivant le projet on adapte le système de sauvegarde.

Un "gros" projet ce sont des compromis à prévoir, donc d'emblée, il est besoin d'un schéma de programmation.

Si dans le schéma de programmation, il n'y a pas de prévu un système de sauvegarde fiable, tout-terrain, c'est déjà mal engagé (lol).

Bref un projet sérieux (pas un bug), c'est beaucoup de tests, il existe des extensions "boguées", on le découvre lors de mises en pratique, sans parler des mystères CTF.

A+
Emmanuel
2412 messages
Fusion 2.5 Dev Fusion 2.5
Firefly Exporteur UWP Exporteur iOS Exporteur Android Exporteur HTML5 Fusion 2.5+
samedi 4 février 2017 à 18:05
Zouuu voila l'exemple
Pièces jointes
Poum
samedi 4 février 2017 à 19:23

Zouuu voila l'exemple


Merci beaucoup.
Je vais approfondir ça. A première vue, ça à l'air d'être ce que je cherche à faire sans les tableaux :-)

Merci 1.000 fois.
Utilisateurs en ligne
  • Aucun utilisateur en ligne
  • 13 visiteurs au total

Derniers messages