AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
-14%
Le deal à ne pas rater :
Apple MacBook Air (2020) 13,3″ Puce Apple M1 – RAM 8Go/SSD 256Go
799 € 930 €
Voir le deal
-55%
Le deal à ne pas rater :
Coffret d’outils – STANLEY – STMT0-74101 – 38 pièces – ...
21.99 € 49.04 €
Voir le deal

 

 Problème d'affichage des sprites...

Aller en bas 
3 participants
AuteurMessage
LittleHat
Nouveau
LittleHat


Messages : 5

Problème d'affichage des sprites... Empty
MessageSujet: Problème d'affichage des sprites...   Problème d'affichage des sprites... EmptyMer 29 Juin 2011 - 23:07

Bonsoir ! hap

Tout d'abord merci à tous ceux qui ont répondu à mes précédents posts ! Cela m'a permis de beaucoup avancer sur mon projet et de creuser énormément de points sur le GML !

Mais à toute avancée ses nouveaux problèmes... Et pour celui-là, je crois que je suis encore un peu rouillé sur le système d'affichage des sprites. J'ai beau tourner et retourner mon code, je n'arrive pas à m'en défaire. Si quelqu'un a une piste...

L'idée est simple : sur l'écran doivent s'afficher une dizaine de sprites que le logiciel va chercher aléatoirement dans un dossier contenant des centaines d'images (par l'intermédiaire d'un document texte qui contient la liste).

Pour ce résultat, l'essentiel de mon code repose sur une boucle "for" qui relance une dizaine de fois l'action "piocher une image au hasard, l'ajouter en sprite dans les ressources, afficher le sprite à x/y" avec un décalage régulier de x/y pour que les images s'affichent successivement".

Sur le plan du code, tout est ok... Le seul problème c'est que :
- soit je place ce code en entier dans un event "draw", ce qui permet d'afficher toutes les images à l'écran MAIS la boucle est relancée à chaque rafraîchissement (avec nouveau tirage au sort, ce qui encombre rapidement la mémoire par ailleurs).
- soit je place le code dans un autre événement MAIS aucune image n'apparaît malgré la fonction draw_sprite
- soit je place la partie de calcul dans un événement quelconque, et la partie de dessin dans un événement "draw" MAIS dans ce cas les sprites sont effacés au fur et à mesure qu'un nouveau apparaît (car la variable qui détermine le chemin du sprite est toujours la même à chaque tour de la boucle "for", et donc la valeur précédente est effacée au tour suivant).

Comment puis-je donc faire pour qu'un sprite affiché reste affiché même si le chemin qui a permis d'aller le chercher n'existe plus (conséquence de ma boucle, à laquelle je tiens ^^)... Une fois toutes les images affichées, je n'ai pas besoin d'un rafraîchissement régulier, l'écran devant rester fixe.

En espérant avoir été clair. gha
Merci d'avance pour vos lumières !
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Problème d'affichage des sprites... Empty
MessageSujet: Re: Problème d'affichage des sprites...   Problème d'affichage des sprites... EmptyMer 29 Juin 2011 - 23:18

1) Choper la liste de toutes les images disponibles => game start
2) Choisir au hasard 5 index pas la liste du dessus=> exécuté 1 fois
3) Charger chaque image dans une surface adaptée, mais avec pour nom sf_image1, sf_image2 etc... =>exécuté 1 fois
4) Afficher les surfaces (si elles existent) => DRAW

5)eventuellement, changer les images dans les surfaces (pas oublier de DETRUIRE puis recréer les surfaces)

_________________
Problème d'affichage des sprites... Control-commentTous les icones de gm utilisables sur le cbna ICI  Problème d'affichage des sprites... Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
glcraft
Utilisateur confirmé: Rang *****
glcraft


Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

Problème d'affichage des sprites... Empty
MessageSujet: Re: Problème d'affichage des sprites...   Problème d'affichage des sprites... EmptyJeu 30 Juin 2011 - 2:42

Citation :
(par l'intermédiaire d'un document texte qui contient la liste)
les fonctions file_find sont normalement faites pour eviter de mettre 3000 lignes de chemins de fichiers dans un fichiers txt...
le but de ces fonctions sont de recuperer tout les chemin de fichiers dans un dossier prédéfinie automatiquement jusqu'a ce qu'il tombe sur le dernier fichier.
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
LittleHat
Nouveau
LittleHat


Messages : 5

Problème d'affichage des sprites... Empty
MessageSujet: Re: Problème d'affichage des sprites...   Problème d'affichage des sprites... EmptyJeu 30 Juin 2011 - 15:13

Merci pour ces réponses !

Effectivement, je n'avais pas pensé aux surfaces que je n'ai pas l'habitude d'utiliser.
En fait, j'ai créé une surface de la taille de l'écran puis draw_sprite(image tirée au sort,x,y) dans ma boucle (tout cela dans un event à exécution unique), et enfin la commande draw_surface placée dans l'évent draw. Ca marche, mais je ne sais pas si c'est très correct comme utilisation. J'ai l'impression que cela prends de la mémoire inutile.

Pour le file_find, c'est sympa d'avoir noté cela. Mais en fait le fichier texte contient surtout un ensemble de données relatives à chaque objet tiré au sort (nom, caractéristiques, description...etc). Le chemin est recréé automatiquement à partir du nom. Bref, je ne peux pas me passer du document.

Je vais essayer d'analyser d'un peu plus près mon code, voir si tout est logique.

happy1
Revenir en haut Aller en bas
Contenu sponsorisé





Problème d'affichage des sprites... Empty
MessageSujet: Re: Problème d'affichage des sprites...   Problème d'affichage des sprites... Empty

Revenir en haut Aller en bas
 
Problème d'affichage des sprites...
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Probleme d'animation avec les sprites.
» Problème Sprites
» Probleme sprites
» Probléme de sprites sur mon perso
» probleme qualité graphique sprites pdt le jeu...

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide confirmés-
Sauter vers: