Annonces générales, discussions et feedbacks sur GDevelop.
By pppplus
#66625 Je me suis retrouvé confronté à quelques problèmes, en publiant sur un site web, un jeu fait avec gdevelop, que j'utilise depuis peu (c'est mon premier jeu).

Les problèmes
1- la compilation gdevelop met tout à la racine du dossier
2- le jeu est placé en position : absolute, et placé par rapport à la fenêtre du navigateur
3- effet de scroll du navigateur (lorqu'il la page web dépasse le navigateur), avec les flèches de navigations utilisées pour le jeu
4- impossible de cliquer à l'extérieur du jeu, sur les liens, boutons...

Mes solutions
1- Rangement des fichiers
- J'envoie tout dans un répertoire (pour moi, jeux/monjeu/)
- Je modifie l'appel des fichiers javascripts, en ajoutant jeux/monjeu/)
- je modifie le fichier data.js qui appelle les images.
En gros, modifier toutes les occurences de "file": "imageN" en "file": "jeux/monjeu/imageN"

2- pour le placement
- je suppirme le style canvasArea en dur dans le fichier index.html
- je place <div id="canvasArea"></div> dans une autre div (du coup, canvasArea, sera placée en relatif dans cette div)
- je modifie le fichier runtimegame-pixi-renderer.js
canvasArea.style["position"] = "aboslute"; devient canvasArea.style["position"] = "relative";
- je commente les lignes :
/*this._canvasArea.style["top"] = ((marginTop+(maxHeight-height)/2)+"px");
this._canvasArea.style["left"] = ((marginLeft+(maxWidth-width)/2)+"px");
this._canvasArea.style.width = width+"px";
this._canvasArea.style.height = height+"px";*/

3- je modifie le même fichier runtimegame-pixi-renderer.js, la fonction document.onkeydown
//Keyboard
document.onkeydown = function(e) {
manager.onKeyPressed(e.keyCode);
if(e.keyCode>=37 && e.keyCode<=40) {// Bloquer le défilement du navigateur
return false;
};
};

4- je modifie la fonction principale (de la page du jeu)
Ligne : game.getRenderer().bindStandardEvents(game.getInputManager(), window, document);
devient : game.getRenderer().bindStandardEvents(game.getInputManager(), canvasArea, document);
Donc, on limite l'action à canvasArea, au lieu du document. Et les clics à l'extérieur du jeu deviennent possibles !

Voilà pour mes petites modifs.
Ce sont des choses qui sont peut-être gérables ailleurs, mais je n'ai pas trouvé.
Si ce n'est pas prévu, ce serait intéressant d'ajouter ces petits trucs (à moins que je sois tout seul à galérer avec ça).

Du coup, j'apprécie maintenant pleinement le développement avec gdevelop !
Me reste la partie communication PHP à faire, et à voir comment limiter la triche...