Discuss Scratch
- Discussion Forums
- » Français
- » Comment faire une sauvegarde de progression?
- tux31
-
Scratcher
37 posts
Comment faire une sauvegarde de progression?
Salut a tout le monde , je suis en train de travailler sur un nouveau projet “ scratch city ” un jeu pour créer sa ville dans le style de sims city et j'aimerais savoir comment on fait pour générer un code de cloud pour sauvegarder la partie.
Merci de me répondre si vous voyez ce sujet
tux31
Merci de me répondre si vous voyez ce sujet

tux31
Last edited by tux31 (Dec. 20, 2018 17:22:42)
- tux31
-
Scratcher
37 posts
Comment faire une sauvegarde de progression?
Salut a tout le monde , je suis en train de travailler sur un nouveau projet “ scratch city ” un jeu pour créer sa ville dans le style de sims city et j'aimerais savoir comment on fait pour générer un code de cloud pour sauvegarder la partie.![]()
Merci de me répondre si vous voyez ce sujet
tux31
- rexmine-05
-
Scratcher
50 posts
Comment faire une sauvegarde de progression?
Alors ce n'est pas facile,
Je ne vais pas te donner le code mais je vais te donner les axes de réflections.
Contraintes (je pense que tu le sait déjà mais je préfère le mettre) :
- Le joueur (et toi) doit être scratcheur pour pouvoir avoir accès au données cloud.
- La variable doit être composée uniquement de chiffres.
Protocole :
décoder la variable sur le cloud et placer chaque sauvegarde de joueur dans un élément d'une liste.
récupérer l'élément qui correspond au joueur, si il y en a
le décoder et charger le jeu avec
pour sauvegarder, refaire la même chose (pour être sur que qq'un d'autre n'a pas sauvegardé entre temps) et remplacer l'élément de la liste par le nouveau, recoder la liste pour la remettre dans la variable.
Pour coder les éléments :
Tu dois mettre toutes les données à enregistrer dans une liste, à une place fixe.
ex :
nom de la ville en ligne 1
argent en ligne 2
si tu doit sauvegarder quelque chose comme la position des maisons par exemple,
tu va devoir mettre le nombre de maisons au début pour que le programme puisse savoir jusqu'où il doit lire.
ex :
3 : nombre de batiments
0 : x du batiment 1
0 : y du batiment 1
maison : type du batiment 1
20 : x du batiment 2
0 : y du batiment 2
…
ensuite, tu code ca en une seule variable (ce n'est pas facile et ca va être long a expliquer donc si tu ne sais pas faire, dit le)
et ensuite tu dois rajouter ça a la liste qui contient toutes les données du cloud en utilisant un programme qui le transforme en chiffres (si tu ne sais pas faire, tu peux me demander, j'en ai fait un dans ce projet)
pour décoder, tu fait l'inverse.
J'éspère avoir été clair et t'avoir aidé
Je ne vais pas te donner le code mais je vais te donner les axes de réflections.
Contraintes (je pense que tu le sait déjà mais je préfère le mettre) :
- Le joueur (et toi) doit être scratcheur pour pouvoir avoir accès au données cloud.
- La variable doit être composée uniquement de chiffres.
Protocole :
décoder la variable sur le cloud et placer chaque sauvegarde de joueur dans un élément d'une liste.
récupérer l'élément qui correspond au joueur, si il y en a
le décoder et charger le jeu avec
pour sauvegarder, refaire la même chose (pour être sur que qq'un d'autre n'a pas sauvegardé entre temps) et remplacer l'élément de la liste par le nouveau, recoder la liste pour la remettre dans la variable.
Pour coder les éléments :
Tu dois mettre toutes les données à enregistrer dans une liste, à une place fixe.
ex :
nom de la ville en ligne 1
argent en ligne 2
si tu doit sauvegarder quelque chose comme la position des maisons par exemple,
tu va devoir mettre le nombre de maisons au début pour que le programme puisse savoir jusqu'où il doit lire.
ex :
3 : nombre de batiments
0 : x du batiment 1
0 : y du batiment 1
maison : type du batiment 1
20 : x du batiment 2
0 : y du batiment 2
…
ensuite, tu code ca en une seule variable (ce n'est pas facile et ca va être long a expliquer donc si tu ne sais pas faire, dit le)
et ensuite tu dois rajouter ça a la liste qui contient toutes les données du cloud en utilisant un programme qui le transforme en chiffres (si tu ne sais pas faire, tu peux me demander, j'en ai fait un dans ce projet)
pour décoder, tu fait l'inverse.
J'éspère avoir été clair et t'avoir aidé
Last edited by rexmine-05 (Dec. 20, 2018 18:17:29)
- Itharius
-
Scratcher
1000+ posts
Comment faire une sauvegarde de progression?
un code cloud , c'est quasiment devenu impossible, car dès que tu va atteindre une dizaine d'utilisateur, tu auras atteint les limites des limites, avec un jeu dans le style de simcity, tu va avoir un petit paquet de données à sauvegarder, je te mets en liens l'exemple d'un code pour essayer de maximiser le nombre de données à sauvegarder https://scratch.mit.edu/projects/123690916/
Mais je ne ferais pas ça dans ton cas, le plus approprié serait plutôt de générer un code à rentrer en début de partie et qui chargerait le projet selon toutes les données contenu dans le code.
Un très très gros boulot d'écriture donc
Mais je ne ferais pas ça dans ton cas, le plus approprié serait plutôt de générer un code à rentrer en début de partie et qui chargerait le projet selon toutes les données contenu dans le code.
Un très très gros boulot d'écriture donc
- rexmine-05
-
Scratcher
50 posts
Comment faire une sauvegarde de progression?
sinon, tu peux utiliser d'autres moyens pour contourner le problème :
Le premier, c'est de génerer un code qui contient toutes les informations à garder
Le deuxième qui est moins intuitif, c'est d'utiliser le fait que l'on peut enregistrer le contenu d'une liste et le restituer lorsque l'on fait un clic droit sur une liste (sur la fenêtre de jeu) dans l'éditeur.
Le premier, c'est de génerer un code qui contient toutes les informations à garder
Le deuxième qui est moins intuitif, c'est d'utiliser le fait que l'on peut enregistrer le contenu d'une liste et le restituer lorsque l'on fait un clic droit sur une liste (sur la fenêtre de jeu) dans l'éditeur.
- tux31
-
Scratcher
37 posts
Comment faire une sauvegarde de progression?
Ok merci pour la réponse je ne sais pas vraiment si je vais y arriver car ça a l'air difficile 

- tux31
-
Scratcher
37 posts
Comment faire une sauvegarde de progression?
Pouvez-vous dessiner les scripts pour que ce sois plus facile à comprendre ?


- calimero_fr59
-
Scratcher
68 posts
Comment faire une sauvegarde de progression?
Pouvez-vous dessiner les scripts pour que ce sois plus facile à comprendre ?
Salut,tux31 voici un script simple du wiki pour créer un code de sauvegarde avec les listes.
Étape 1
Créer une liste “Sauvegarder”, une variable “Code” et un bloc customisé(comme en dessous).
définir Sauvegarder (Variable)
ajouter (regroupe (Variable) [;]) à [Sauvegarder v]
/!\ Remarque : Pour le bloc de sauvegarde prend bien soin de prendre une “chaîne de caractères” /!\
A quoi sert ce bloc ? Il te servira a sauvegarder une variable dans le code et l'assemble avec un “;” tu comprendra pourquoi plus tard.
Étape 2
Ensuite utilise
Sauvegarder (Exemple1):: #622C99
Sauvegarder (Exemple2):: #622C99
Sauvegarder (Exemple3):: #622C99
mettre [Code v] à []
répéter jusqu’à <(longueur de [Sauvegarder v] :: list) = [0]>
mettre [Code v] à (regroupe (Code) (élément (1 v) de [Sauvegarder v] :: list))
supprimer l'élément (1 v) de la liste [list v]
end
ajouter (Code) à [Sauvegarder v]
montrer la liste [Sauvegarder v]
Ce script va enfaite sauvegarder avec le bloc créer précédemment la variable “Exemple1”, “Exemple2”, et “Exemple3” et va ensuite réinitialiser le Code. Ensuite il va répéter jusqu'a ce que la liste sauvegarder soit vide de rassembler toutes les variables dans un code. Il va ensuite ajouter le code a la liste et montrer la liste pour permettre au joueur de copier le code.
Étape 3
Maintenant que l'étape de créer le code est fini, il faut permettre au joueur de charger ses données. Nous allons donc utiliser ce script et créer deux nouvelles variables : “Charger#” et “Variable#” et une liste : “Charger”.
définir Charger (Variable)
mettre [Charger# v] à [1]
mettre [Variable# v] à []
répéter jusqu’à <(Charger#) > (longueur de (Variable))>
répéter jusqu’à <(lettre (Charger#) de (Variable)) = [;]>
mettre [Variable# v] à (regroupe (Variable#) (lettre (Charger#) de (Variable)))
ajouter à [Charger# v] (1)
end
ajouter (Variable#) à [Charger v]
ajouter à [Charger# v] (1)
mettre [Variable# v] à []
end
/!\ Remarque: Il faut aussi utiliser une “chaîne de caractères” dans ce bloc. /!\
Ce bloc utilise la variable charger# pour se repérer lorsque il va charger une variable, il va répéter jusqu'a ce que il y ait un “;” de mettre tout ce qui se trouve entre les “;” dans Variable#. Après qu'il ait fini il va ajouter Variable# dans la liste Charger et réinitialiser Variable# pour pouvoir recommencer jusqu'a ce qu'il ait charger le code.
En gros, les “;” servent au script a savoir quand il faut mettre dans une nouvelle variable.
Étape 4
Pour pouvoir demander au joueur le code et finir de charger les données il faut utiliser ce bloc:
demander [Entrez un code.] et attendre
Charger (réponse):: #622C99
mettre [Exemple1 v] à (élément (1 v) de [Charger v] :: list)
mettre [Exemple2 v] à (élément (2 v) de [Charger v] :: list)
mettre [Exemple3 v] à (élément (3 v) de [Charger v] :: list)
Ceci demande au joueur le code , et le charge les éléments dans l'ordre de la sauvegarde: au premier bloc, j'ai sauvegarder Exemple1 puis Exemple2 et enfin Exemple3. Normalement si tu as bien suivi correctement , ça devrait marcher.
Tu peux aussi en apprendre plus a ce sujet ici.
Cordialement.
calimero_fr59
- lieutenant_X
-
Scratcher
500+ posts
Comment faire une sauvegarde de progression?
La réponse de Calimero est très complète mais je me permet de te suggérer ce projet : https://scratch.mit.edu/projects/229777621/ que j'ai créé spécialement pour montrer comment fonctionne la génération de code de sauvegarde. Si ça t'amuse tu peux aussi regarder dans mes projets, certains utilisent la génération de code de sauvegarde.
- Discussion Forums
- » Français
-
» Comment faire une sauvegarde de progression?