Sushidestroy Petit bavard
Messages : 53
| Sujet: [Résolu]Sprites aléatoires Ven 10 Aoû 2012 - 0:15 | |
| Bonjour, Je cherche a faire en sorte que lorsqu'un objet soit créé il mix plusieurs sprites aléatoirement. Pour cela, tout les sprites lui correspondant sont nommés, par exemple : 'sp_CorpMonstre1', 'sp_CorpMonstre2' etc... Un monstre est composé de trois sprites, un pour la tête, un pour le corps et un pour les pieds, tout les trois sont aléatoirement associés, exemple : sp_TeteMonstre2 avec sp_CorpMonstre3 et sp_PiedMonstre9. Pour cela, dans create je ramdomise trois variables (ttt,ccc,ppp), puis dans l'event Draw : - Code:
-
tete = 'sp_TeteMonstre' + string(ttt) corp = 'sp_CorpMonstre' + string(ccc) pied= 'sp_PiedMonstre' + string(ppp)
draw_sprite(tete,0,x,y) draw_sprite(corp,0,x,y) draw_sprite(pied,0,x,y)
Mais tout ça ne fonctionne pas, et pourtant si j'observe mes variables tete, corp et pied en debug, je vois bien un 'sp_CorpMonstreX', idem si je fait un draw_text ... Si quelqu'un a une idée je suis preneur, merci d'avance.
Dernière édition par Sushidestroy le Ven 10 Aoû 2012 - 11:33, édité 1 fois |
|
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: [Résolu]Sprites aléatoires Ven 10 Aoû 2012 - 0:29 | |
| Parce que GM ne gère pas les ressources par chaînes de caractères, mais par constantes. C'est ce qu'il se passe quand tu utilises le nom d'un objet : ce nom est une constante ayant une valeur entière qui indexe l'objet. Dans ton cas, tu peux contourner ceci avec la fonction execute_string() : - Code:
-
execute_string( "tete = sp_TeteMonstre" + string(ttt) + "; corp = sp_CorpMonstre" + string(ccc) + "; pied= sp_PiedMonstre" + string(ppp)) _________________ Home is not a place, it's a feeling.
|
|
stermi59 Débutant
Messages : 24 Localisation : Nord Projet Actuel : Apprendre
| Sujet: Re: [Résolu]Sprites aléatoires Ven 10 Aoû 2012 - 3:24 | |
| |
|
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [Résolu]Sprites aléatoires Ven 10 Aoû 2012 - 11:24 | |
| Tu peut faire tete = choose(sprTete1, sprTete2, sprTete3) par exemple. Et si t'as beaucoup de sprites a ta place j'utiliserais des sprite sheets, ça te permettrait de faire ça de manière plus simple, et plus propre Petit exemple de sprites sheets: http://www.host-a.net/u/onilink_/spriteSheet_Anim.gm6 |
|
Sushidestroy Petit bavard
Messages : 53
| Sujet: Re: [Résolu]Sprites aléatoires Ven 10 Aoû 2012 - 11:33 | |
| Merci Oni (pour changer ) !!! Ça fonctionne, bizarrement (je pige pas la diff entre ttt = 'sp_CorpMonstre' + string(X) et ttt = choose(sp_CorpsMonstre1,sp_CorpsMonstre2) ...), mais ça fonctionne, et comme je compte pas dépasser les 15 sprites ça me va ! S'habituer a utilisé des sprites sheets doit être une bonne chose, mais pour le moment je ne suis pas encore assez organisé pour ça ! |
|
onilink_ Modérateur
Messages : 9180 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: [Résolu]Sprites aléatoires Ven 10 Aoû 2012 - 11:40 | |
| En fait 'sp_CorpMonstre' + string(X) te donne une chaine de caractères, hors un sprite est identifié par un id, qui est un nombre entier. Met toi en debug mode et tape sprTete1 par exemple, tu verras que c'est une constante et qu'elle te donne un nombre entier et non pas une chaine de caractères.
|
|
Contenu sponsorisé
| Sujet: Re: [Résolu]Sprites aléatoires | |
| |
|