Sujet: Sprite qui disparait Dim 25 Oct 2015 - 23:09
J'ai rencontré un problème assez étrange hier. Certains sprites ont disparus au bout d'un moment pendant un lancement test (via gamemaker, pas en version .exe).
A noter que ces sprites étaient chargés via des fichiers externes dans "included files" et bien visible au lancement du jeu. Je dirai qu'il s'est écoulé 10 ou 15 min avant leur disparition.
Est-ce que cela serait du à une suppression automatique des fichiers temporaires lors d'un lancement test ? Ou alors j'ai une erreur dans mon code que je n'ai pas identifiée ?
Si c'est déjà arrivé à quelqu'un ici, merci de m'aider.
Kabcorp Utilisateur confirmé: Rang **
Messages : 315 Localisation : Savoie Projet Actuel : trop...
Sujet: Re: Sprite qui disparait Lun 26 Oct 2015 - 11:22
Si tu les charges au début, normalement elles doivent rester en mémoire.
-Si tes fichiers temporaires se vident avant la fermeture du programme (ce qui m'étonnerai), es-tu sûr que tu ne viens pas recharger les sprites en cours de jeu?
-Tu as quelle version de GM?
_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
Herdge Très bonne participation
Messages : 164
Sujet: Re: Sprite qui disparait Lun 26 Oct 2015 - 14:52
J'utilise la version studio 1.4.
Les sprites sont effectivement chargés régulièrement lorsqu'un joueur change de personnage entre 2 parties. (ex : global.perso[i] = sprite_add(working_directory + "\Sprites\Perso\" + "\spr_perso1_strip2.png", 2, false, false, 0, 0) , i == numéro du joueur
C'est pourquoi je suspecte les fichiers temporaires de disparaitre au bout d'un moment...
Sujet: Re: Sprite qui disparait Lun 26 Oct 2015 - 15:09
working_directory est le path d'un dossier temporaire?
A la limite tu fais une fonction workingDirectory() et dedans tu mets: -si jeu en "release", working_directory -si jeu en mode edition, le path vers ton projet (je sais pas si GMS fournit une constante pour ça)
_________________
Herdge Très bonne participation
Messages : 164
Sujet: Re: Sprite qui disparait Lun 26 Oct 2015 - 15:33
Oui je vais essayer ça, mais comment je code le test pour savoir si je suis en release ou edition ?
Kabcorp Utilisateur confirmé: Rang **
Messages : 315 Localisation : Savoie Projet Actuel : trop...
Sujet: Re: Sprite qui disparait Lun 26 Oct 2015 - 15:37
working_directory est le Répertoire de ton binaire. La ou le programme Work
_________________
Vous voulez un jeu pas comme les autres? Voici DeFRaG :
Sujet: Re: Sprite qui disparait Mar 27 Oct 2015 - 9:36
Herdge a écrit:
Oui je vais essayer ça, mais comment je code le test pour savoir si je suis en release ou edition ?
Ça c'est a toi de le définir, genre via une constante par exemple.
_________________
Herdge Très bonne participation
Messages : 164
Sujet: Re: Sprite qui disparait Mar 27 Oct 2015 - 10:22
Oui mais je n'arrive pas à comprendre quelle condition il faut mettre dans le "if" de la fonction pour vérifier si je suis en release ou edition (même avec des constantes).
Est ce que vous auriez un exemple sinon ? (ça ne doit pas être très long)
Et tant que t'es pas en mode "release du jeu" tu mets les constantes release_mode = 0 gms_project_directory = "path/de/ton/projet/gms"
Bref, c'est manuel, obligé de mettre release_mode a 1 quand tu veux publier le jeu. C'est pas trop grave si tu publies pas le jeu trop régulièrement après :p
_________________
Herdge Très bonne participation
Messages : 164
Sujet: Re: Sprite qui disparait Mar 27 Oct 2015 - 11:55
Ha oui d'accord vu que c'est en manuel je comprends mieux du coup . Je vais surtout tester que les textures ne disparaissent pas en release c'est le plus important !
Herdge Très bonne participation
Messages : 164
Sujet: Re: Sprite qui disparait Mar 27 Oct 2015 - 12:08
Bon fin de l'histoire ! Je viens de me rendre compte que ça disparaissait aussi en release... Du coup j'ai vérifier via le gestionnaire des processus pour me rendre compte que le moment de sélection des persos bouffait quasi toute la ram de mon PC et pas mal de cpu... Et effectivement mon code réassignait tous les sprites une fois par frame quand je l'ai relu XD. Du coup j'ai modifié ce qu'il fallait et ça marche impec !