pyxen.storage

Persiste des données entre les sessions de jeu. Sauvegardez les meilleurs scores, les paramètres, la progression, ou toute valeur qui doit survivre lorsque le jeu est fermé puis rouvert.

storage.save("high_score", 9500)
storage.save("player_name", "Alice")
storage.save("sound_on", True)

score = storage.load("high_score")   # 9500
name = storage.load("player_name")   # "Alice"
missing = storage.load("no_key")     # None

Les valeurs sont stockées sous forme de int, float, string ou bool. Les autres types (listes, dictionnaires, objets) ne sont pas supportés.


Fonctionnement

Sur iPad et Mac, le stockage est sauvegardé dans un fichier storage.json à l’intérieur du fichier de projet .pyxen. Les données voyagent avec le projet — si vous partagez le fichier, les données sauvegardées l’accompagnent.

Sur le lecteur web, le stockage utilise le localStorage du navigateur, indexé par jeu.

Le stockage est écrit lorsque le jeu s’arrête. Vous n’avez pas besoin de forcer l’écriture manuellement.


Méthodes

MéthodeRetourDescription
save(key, value)NoneSauvegarde une valeur avec la clé donnée
load(key)valeur ou NoneCharge une valeur, ou None si la clé n’existe pas
has(key)boolVérifie si une clé existe
delete(key)NoneSupprime une clé
clear()NoneSupprime toutes les clés

save(key, value)

storage.save("score", 100)
storage.save("name", "Alice")
storage.save("ratio", 3.14)
storage.save("completed", True)

Sauvegarde une valeur avec la clé de type chaîne de caractères donnée. Si la clé existe déjà, sa valeur est écrasée.

Types supportés :

TypeExemple
intstorage.save("score", 100)
floatstorage.save("speed", 2.5)
strstorage.save("name", "Alice")
boolstorage.save("muted", False)

Passer tout autre type (liste, dictionnaire, etc.) lève une TypeError.


load(key)

score = storage.load("high_score")

Retourne la valeur associée à la clé, ou None si la clé n’existe pas.

La valeur retournée conserve le type avec lequel elle a été sauvegardée — un int revient sous forme d’int, une chaîne sous forme de chaîne.

score = storage.load("high_score")
if score is None:
    score = 0  # première partie

has(key)

if storage.has("high_score"):
    log("Welcome back!")

Retourne True si la clé existe, False sinon.


delete(key)

storage.delete("old_setting")

Supprime une clé du stockage. Ne fait rien si la clé n’existe pas.


clear()

storage.clear()

Supprime toutes les clés du stockage. À utiliser avec précaution.


Exemples

Meilleur score

from pyxen import *

best = storage.load("best") or 0
score = 0

def update():
    global score, best
    score += 1
    if score > best:
        best = score
        storage.save("best", best)

Paramètres

from pyxen import *

sound_on = storage.load("sound") is not False

def update():
    global sound_on
    if input.keyboard.m.pressed:
        sound_on = not sound_on
        storage.save("sound", sound_on)

Progression de niveau

from pyxen import *

level = storage.load("level") or 1

def next_level():
    global level
    level += 1
    storage.save("level", level)