Sauvegarder et charger dans un dossier spécifique avec NW.js

2

Taggé

Statistiques

2,150 visites, 2,456 vues

Outils

Partager

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Bonjour tout le monde !

NW.js (Node-Webkit) est une version autonome de Google Chrome.

Cela vous permet de créer des applications autonomes pour bureau (Le jeu ne se lance pas dans le navigateur du joueur mais dans une fenêtre séparée à la place. De plus, les applications pour bureau ont des privilèges uniques qui ne sont pas disponibles pour les application web par raison de sécurité, comme la possibilité d'écrire des fichiers directement sur le disque dur de l'utilisateur)

Pour plus de renseignements, je vous recommande de jeter un œil à ce lien :

https://www.scirra.com/tutorials/1276/exporting-desktop-apps-with-node-webkit

/!\ Cette méthode ne fonctionnera pas si vous essayez de prévisualiser votre projet dans un navigateur classique tel que Firefox ou Google Chrome, c'est là tout l'intérêt... Donc vérifiez bien que votre navigateur de prévisualisation (preview browser) est réglé sur "NW.js" dans les propriétés de votre projet. Si cette option n'est pas disponible pour vous, alors suivez le lien au-dessus pour apprendre comment l'installer. /!\

Dans ce tutoriel, je vais vous expliquer comment sauvegarder et charger votre jeu dans un dossier spécifique en utilisant NodeWebkit :

Pour commencer

D'abord, vous allez devoir insérer l'objet NWjs dans votre projet.

Ensuite, vous allez devoir créer le dossier dans lequel vous voulez sauvegarder le jeu. Dans cet exemple je vais le nommer "Test".

Comme expliqué dans le manuel de Construct 2, il est fortement recommandé de sauvegarder les fichiers dans le dossier de l'utilisateur, pour lequel vous avez presque à coup sûr les droits en écriture. C'est ce que nous allons faire ici :

J'ai utilisé la condition "on loader layout complete" ici, afin que le jeu créé le dossier "Test" s'il n'existe pas encore au moment où le jeu est lancé.

La fonction de sauvegarde

Comme expliqué dans le tutoriel "How to make savegames"

"Pour les deux conditions "On save complete" et "On load complete", l'expression système SaveStateJSON retourne une chaîne de caractères de toutes les données JSON pour la sauvegarde. Notez que l'expression SaveStateJSON retourne une chaîne vide en dehors de ces conditions; les conditions sont votre unique opportunité d'accéder aux données directement."

C'est pourquoi vous allez devoir utiliser l'action "save" pour récupérer la chaîne de caractères contenant toutes les données JSON pour la sauvegarde, et ensuite seulement vous pourrez l'enregistrer dans un fichier.

J'ai nommé le fichier dans lequel j'ai sauvegardé les données JSON "Slot1.save", mais si vous voulez mettre en place plusieurs emplacements de sauvegarde vous allez devoir créer une variable globale pour stocker le numéro de l'emplacement de sauvegarde actuel.

Aussi, j'ai nommé "test" l'emplacement pour l'action "save", mais ce n'est pas important.

La fonction de chargement

Pour charger le jeu, il suffit d'utiliser l'action "System | load game from JSON string" et d'utiliser l'expression "NWjs.readFile" pour lire les données dans le fichier que vous avez créé avec la fonction de sauvegarde :

Tester vos fonctions

Vous pouvez tester vos fonctions à l'aide du clavier :

Conclusion

Et voilà ! Maintenant vous savez comment sauvegarder et charger votre jeu dans un dossier spécifique à l'aide de Node-Webkit.

Le principal souci de cette méthode est que vous devez utiliser l'action système "save", ce qui signifie qu'il y a une autre sauvegarde du jeu quelque part sur l'ordinateur. Je ne sais pas comment l'effacer, mais si quelqu'un parvient à m'éclairer à ce sujet je mettrai à jour ce tutoriel avec grand plaisir pour régler le problème !

N'oubliez pas d'ajouter le comportement No Save partout où vous pouvez pour rendre vos sauvegardes plus petites et rapides à sauvegarder et charger !

  • 0 Comments

  • Order by
Want to leave a comment? Login or Register an account!