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éthode | Retour | Description |
|---|---|---|
save(key, value) | None | Sauvegarde une valeur avec la clé donnée |
load(key) | valeur ou None | Charge une valeur, ou None si la clé n’existe pas |
has(key) | bool | Vérifie si une clé existe |
delete(key) | None | Supprime une clé |
clear() | None | Supprime 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 :
| Type | Exemple |
|---|---|
int | storage.save("score", 100) |
float | storage.save("speed", 2.5) |
str | storage.save("name", "Alice") |
bool | storage.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)