so i add a js file into Gdevelop and i want to get the variable of a scene into another variable of my js file . Is that possible ?
There is a doc for the GDJS engine (the HTML5/JS games runtime engine) :
4ian.github.io/GD-Documentation/ … mentation/
To get a Variable, you have to use the getVariables() method of the scene, which returns a gd.VariablesContainer. Then, use the get method from this container to get a gd.Variable. The doc of gd.Variable :
4ian.github.io/GD-Documentation/ … iable.html
In my js file i have that :
var GJAPI = {};
in my scene gameOver, i have the bestScore of the player(scene variable bestScore1) and i tried to get the bestscore.
I have in this scene a js event :
GJAPI.bestScore = runtimeScene.bestScore1.getVariables().getAsNumber();
i think that’s not correct because my game crashed.
I suggest you to learn JS before as the correct instruction is :
myVar = MyScene.getVariables().get("myVariable").getAsString();
(change MyScene to the name of the variable containing the scene)
Maybe i have to learn it but just wanted to use a js api
I recap where am i and i am going to speak in french because it’s more easy to me to explain and victor is also french .
Victor j’ai feuilleter la programmation javascript, et j’ai corriger par ta réponse mais mon jeu se crashe toujours( je suis quasi sur que c’est à cause du bout de code javascript que je rajoute pour recuperer le score ).
Donc je veut recuperer la valeur d’ une variable de scène dans une variable js pour pouvoir l’utiliser dans un fichier html.
J’ai la scène GameOver qui contient la variable de scène scoreSave qui contient le score du joueur a chaque fois qu’il perd.
J’ai ajouter un fichier js au projet Gdevelop, c’est l’api qui contient pleins de fonctions utiles pour les scores, Dans ce fichier on a au debut du fichier la declaration suviante :
var GJAPI = {};
D’après ce que j’ai compris c’est une variable objet et on peut ajouter des variables propre a l’objet( comme les structures en c je crois ).
Dans ce fichier ci il y a plein de variable associé a l’objet , exemple :
GJAPI.sAPI = “http://gamejolt.com/api/game/v1”;
GJAPI.sLogName = “[Game Jolt API]”;
GJAPI.iLogStack = 20;
Donc je voulais faire la meme chose en déclarant GJAPI.Score;
Est-ce que declarer une variable dans un bout de code javascript d’une scène et une variable du fichier que j’ai rajouter ont le meme environnment ?
Sinon voilà ce que j’ai utiliser comme code javascript :
GJAPI.Score = GameOver.getVariables().get(“scoreSave”).getAsNumber();
GJAPI.Score c’est la variable associé à l’objet présent dans le fichier que j’ai ajouté declaré et initialisé dans le obut de code js
GameOver c’est la scène se trouvant la variable de scène scoreSave contenant le score.
Je ne sais d’où vient le début de ton script. Il y a des exemples très clairs fournis avec GDevelop. Le principe des fichiers js externes consiste à créer une fonction js qui prend la scène en paramètre puis utiliser un événement JS dans GDevelop pour exécuter cette fonction (en passant le scène en paramètre).
EDIT : Bon anniversaire !
Daccord je vais voir. Merci
Je suis arrivé presque à la fin c’est-à-dire mon bout de code javascript fonctionne correctement( en utilisant soit getAsString() ou getAsNumber() j’ai le meme resultat) Est-ce normale ?. Mais le probleme se situe au niveau de mon fichier html dans lequel je dois passez le score qui va etre transmis ( le score est sous la variable GJAPI.sScore).
Pour faire simple j’arrive a ecrire comme valeur 5 dans le fichier html mais je n’arrive pas a avoir la valeur de mon bout de code. Victor tu ne veut pas que je t’envois les fichiers pour que tu jete un oeil ?
En résumé j’ai trois choses.
fichier javascript que j’ai ajouter au projet Gdevelop :
Il y a deja une déclaration d’objet ici que je vais me servir (var GJAPI = {};).
bout de code javascript dans ma scène GameOver pour recuperer le score:
GJAPI.Score = runtimeScene.getVariables().get(“scoreSave”).getAsNumber();
Ici j’ajoute l’element Score a l’objet GJAPI que j’initialise au passage. Quelle est la diférence entre getAsNumber() et getAsString() ? car en faisant un alert juste apres l’instruction j’obtenais la meme valeur.
fichier html de mon jeu exporté :
C’est dans ce fichier que je veut utilisé GJAPI.Score, mais je n’y arrive pas. Ce que je ne comprend pas c’est que d’autre element de l’objet sont utilisé ici.
Est-ce que le probleme peut venir du faite que j’ajoute un nouvel element dans le bout de code javascript et non dans le fichier( car les autres elements utilisé était dans le fichier )?
Sinon comment faire en sorte que la valeur d’une variable soit recuperer par une variable du fichier et non par un bout de code javascript ?
Est-ce que cela fonctionnerai ? ajouter mon bout de code javascript directement dans mon fichier javascript en mettant ça : (GJAPI.Score = GameOver.getVariables().get(“scoreSave”).getAsNumber(); ) j’ai remplacé runtimeScene par le nom de la scène, et c’est logique .