AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment :
Code promo Nike : -25% dès 50€ ...
Voir le deal

 

 Une variable dans une expression

Aller en bas 
4 participants
AuteurMessage
sagix
Utilisateur confirmé: Rang **
sagix


Messages : 498
Localisation : Essonne

Une variable dans une expression Empty
MessageSujet: Une variable dans une expression   Une variable dans une expression EmptyJeu 17 Aoû 2006 - 17:50

En fait voila mon probleme c'est que je suis un peu feignant et j'ai pas envie de taper plein de ligne pour un truc "simple", donc j'explique le probleme :
je crée un perso avec différentes armes qui sont numérotés par une variable que j'ai créer (choix_arme) et aussi qui sont dans un autre object que le perso (heros),
et tous mes sprites d'armes sont només ainsi :
pour l'arme n°1
spr_arme_1_left , spr_arme_1_right , ...
pour l'arme n°2
spr_arme_2_left , spr_arme_2_right , ...

et j'ai écrit un script comme ça


Code:
if heros.can_shot_arme=true
{
    if image_angle>90 && image_angle<270
    {sprite_index=spr_arme_1_left;}
    else
    {sprite_index=spr_arme_1_right;}
}
else
{
    if image_angle>90 && image_angle<270
    {sprite_index=spr_arme_1_left_shot;}
    else
    {sprite_index=spr_arme_1_right_shot;}
}

et mon but serait de le transformer pour qu'à chaque fois que je veuille changer d'arme les sprites changent sans devoir taper ce code à chaque fois donc je voudrais faire comme ceci en changeant le numero par ma variable choix_arme (qui est dans l'objet heros )

Code:
if heros.can_shot_arme=true
{
    if image_angle>90 && image_angle<270
    {sprite_index='spr_arme_' heros.choix_arme '_left';}
    else
    {sprite_index='spr_arme_ 'heros.choix_arme '_right';}
}
else
{
    if image_angle>90 && image_angle<270
    {sprite_index='spr_arme_' heros.choix_arme '_left_shot';}
    else
    {sprite_index='spr_arme_' heros.choix_arme '_right_shot;}
}

mais évidement ce code ne marche pas beh
c'est la que j'ai besoin de votre aide happy1
Revenir en haut Aller en bas
http://sagix.free.fr/
Bast
Administrateur
Bast


Messages : 20024
Localisation : Alsace

Une variable dans une expression Empty
MessageSujet: Re: Une variable dans une expression   Une variable dans une expression EmptyJeu 17 Aoû 2006 - 18:13

Wow c'est déjà un système assez tarabiscoté noel

J'ai donc cru comprendre que tu ne veut pas copier-coller ce script là pour changer à chaque fois le nom des sprites:
Code:
if heros.can_shot_arme=true
{
    if image_angle>90 && image_angle<270
    {sprite_index=spr_arme_1_left;}
    else
    {sprite_index=spr_arme_1_right;}
}
else
{
    if image_angle>90 && image_angle<270
    {sprite_index=spr_arme_1_left_shot;}
    else
    {sprite_index=spr_arme_1_right_shot;}
}
Dans ce cas tu n'a qu'à remplacer dans le code les noms de sprites en question par des variables stockant des chaines de carractères. Ces variables se baseraient sur la variable qui définit l'index de l'arme à partir d'un numéro différent pour chaqune. Tu voit ce que je veut dire ?

Il suffit d'intégrer dans le code, à la place des noms de sprites, des noms de variables. Ces variables stockeront à chaque fois un nom de sprite différent selon l'index d'arme sélectionné. Exemple:

Code:
if var_index_arme=1
{var_arme_right="spr_arme_right1"
 var_arme_left="spr_arme_left1"}
else
if var_index_arme=2
{var_arme_right="spr_arme_right2"
 var_arme_left="spr_arme_left2"}
else
if var_index_arme=3
{var_arme_right="spr_arme_right3"
 var_arme_left="spr_arme_left3"}

etc..

Tu peut placer ça dans un code se trouvant dans l'event Event - Step Step, juste avant celui ci:

Code:
if heros.can_shot_arme=true
{
    if image_angle>90 && image_angle<270
    {sprite_index=spr_arme_1_left;}
    else
    {sprite_index=spr_arme_1_right;}
}
else
{
    if image_angle>90 && image_angle<270
    {sprite_index=spr_arme_1_left_shot;}
    else
    {sprite_index=spr_arme_1_right_shot;}
}

Comprendo quoi je y'en a dire avec mon clavier ? :-D
Revenir en haut Aller en bas
http://www.lecbna.org/
sagix
Utilisateur confirmé: Rang **
sagix


Messages : 498
Localisation : Essonne

Une variable dans une expression Empty
MessageSujet: Re: Une variable dans une expression   Une variable dans une expression EmptyJeu 17 Aoû 2006 - 22:47

j'ai compris où tu voulais en venir, mais ça fait écrire pas mal de chose, et je voulais faire le feignant mais je ne crois pas que ce soit impossible ce que je demande ou alors les ordis ne seraient pas aussi pas intelligent que je le pensais ❓

Bon je vais reprendre le probleme en l'extraillant de mon jeu.

On a donc une variable "X" que l'on peut incrémenter et décrémenter par exemple de 0 à 9 avec les touches " - " et "+" .
On a aussi des sprites représentant les 10 numéros allant donc de 0 à 9,
et dont leur nom se présentent comme ceci :

spr_numero_0
spr_numero_1
spr_numero_2
spr_numero_3
spr_numero_4
spr_numero_5
spr_numero_6
spr_numero_7
spr_numero_8
spr_numero_9

Le but est d'affiché le sprite correspondant à la valeur de la variable "X"
sans taper un code de ce style :

Code:

if X=0
sprite_index=spr_numero_0
if X=1
sprite_index=spr_numero_1
if X=2
sprite_index=spr_numero_2
if X=3
sprite_index=spr_numero_3
if X=4
sprite_index=spr_numero_4
if X=5
sprite_index=spr_numero_5
if X=6
sprite_index=spr_numero_6
if X=7
sprite_index=spr_numero_7
if X=8
sprite_index=spr_numero_8
if X=9
sprite_index=spr_numero_9


Mais plustot un code de ce style :

Code:


sprite_index=spr_numero_"X"


Voila mais ce résultat n'a pas lire facile à obtenir.
Revenir en haut Aller en bas
http://sagix.free.fr/
Bast
Administrateur
Bast


Messages : 20024
Localisation : Alsace

Une variable dans une expression Empty
MessageSujet: Re: Une variable dans une expression   Une variable dans une expression EmptyJeu 17 Aoû 2006 - 23:03

Ah oui, bon dans ma logique habituelle je ne voit pas ce que ça peut changer a part quelques copier-coller d'utiliser un script ou l'autre, mais bon tant que c'est possible c'est la demande de la personne qui demande qui supplante les autres demandes. Enfin voila quoi, euhm .. :gniah:

Bon je n'ai jamais fait ce genre de choses, mais tu as déjà essayé ça ?
Code:
sprite_index=spr_numero_"le_nom_de_la_var_chiffree"

Sinon, en toute théorie improvisée, on peut essayer de composer une chaâne de caractères à partir des deux valeurs, et donc d'obtenir un nom de sprite, un peu de cette manière:

Code:
var_sprite=string("spr_numero_"+le_nom_de_la_var_chiffree);
sprite_index=var_sprite;

Enfin actuellement je ne m'y connait pas suffisament en associations de strings et de valeurs ..
Revenir en haut Aller en bas
http://www.lecbna.org/
[TheDarkTiger]
Modérateur
[TheDarkTiger]


Messages : 7420
Localisation : Essonne

Une variable dans une expression Empty
MessageSujet: Re: Une variable dans une expression   Une variable dans une expression EmptyJeu 17 Aoû 2006 - 23:43

je ne pense pas que ca marche ...

mais je ne sait comment te dire de faire :snif2:

si tes armes ne sont pas annimées , et qu'elle font la même taille (ce qui m'étonnerais) , tu peux peut etre toutes les metre dans un seul sprite, et utiliser ta variable d'arme pour afficher les sous image...

vala un GM6 :b.gm6 - 0.01MB
Revenir en haut Aller en bas
http://www.tdms.fr
sagix
Utilisateur confirmé: Rang **
sagix


Messages : 498
Localisation : Essonne

Une variable dans une expression Empty
MessageSujet: Re: Une variable dans une expression   Une variable dans une expression EmptyVen 18 Aoû 2006 - 10:34

merci [TDT], mais je crois que ta solution ne soit plus compliqué que de faire tous les copiers-collés.

Sinon ton idée Bast avec les strings à l'ai pas mal je l'ai essayé tout fonctionne, mais on ne peut pas afficher le sprite

voila le .gm6
test.gm6 - 0.01MB
Revenir en haut Aller en bas
http://sagix.free.fr/
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

Une variable dans une expression Empty
MessageSujet: Re: Une variable dans une expression   Une variable dans une expression EmptyVen 18 Aoû 2006 - 18:00

Mais en fait ce que tu veux c'est afficher un sprite selon le numéro qui est à la fin de la variable? Bah alors c'est simple, avec ton truc déjà fait ou avec un tableau, mettons qu'on prenne le truc que tu as fait, ce qui est plus simple peut être: sprite_index = "spr_numero_"+string(X); Juste ça et c'est bon. clinoeuil
Revenir en haut Aller en bas
http://lecbna.org/
sagix
Utilisateur confirmé: Rang **
sagix


Messages : 498
Localisation : Essonne

Une variable dans une expression Empty
MessageSujet: Re: Une variable dans une expression   Une variable dans une expression EmptyDim 20 Aoû 2006 - 10:27

voila j'ai essayer de faire comme tu as dit mais ça ne marche pas snif

si tu pouvais corriger le gm6 que je comprenne s'il te plait.

test2.gm6 - 0.01MB
Revenir en haut Aller en bas
http://sagix.free.fr/
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

Une variable dans une expression Empty
MessageSujet: Re: Une variable dans une expression   Une variable dans une expression EmptyDim 20 Aoû 2006 - 14:14

Tiens c'est intriguant, parce qu'il ne reconnaît pas le nom de la sprite, et donc assigne l'id 0, et il n'y a pas de fonctions pour trouver à partir d'une string l'id d'une sprite, or on peut le faire pour les variables avec variable_local_get, mais là... Je vais réflechir, il doit y avoir une parade. happy1
Revenir en haut Aller en bas
http://lecbna.org/
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

Une variable dans une expression Empty
MessageSujet: Re: Une variable dans une expression   Une variable dans une expression EmptyLun 21 Aoû 2006 - 19:14

J'y ai réflechi lorsque je travaillai ce matin, et en fait je ne sais pas pourquoi je n'y ai pas pensé de suite, on peut passer ce problème aisément en mettant juste ça dans step: execute_string("sprite_index=spr_num_"+string(X));

Cela fonctionne j'ai essayé, et tanpis pour le double post. happy1
Revenir en haut Aller en bas
http://lecbna.org/
[TheDarkTiger]
Modérateur
[TheDarkTiger]


Messages : 7420
Localisation : Essonne

Une variable dans une expression Empty
MessageSujet: Re: Une variable dans une expression   Une variable dans une expression EmptyLun 21 Aoû 2006 - 22:16

ouh gha
Daminetreg, t'est un Dieu coeur
Revenir en haut Aller en bas
http://www.tdms.fr
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

Une variable dans une expression Empty
MessageSujet: Re: Une variable dans une expression   Une variable dans une expression EmptyLun 21 Aoû 2006 - 22:31

Bah c'était pas très compliqué, fallait juste être faineant. :hehe: heheh rire

Mais merci tout de même. coeur Cela fait toujours plaisir. :fier:
Revenir en haut Aller en bas
http://lecbna.org/
sagix
Utilisateur confirmé: Rang **
sagix


Messages : 498
Localisation : Essonne

Une variable dans une expression Empty
MessageSujet: Re: Une variable dans une expression   Une variable dans une expression EmptyVen 25 Aoû 2006 - 17:56

Merci j'avais pas vu ton message avant et c'est vrai que ça marche happy1
Revenir en haut Aller en bas
http://sagix.free.fr/
Contenu sponsorisé





Une variable dans une expression Empty
MessageSujet: Re: Une variable dans une expression   Une variable dans une expression Empty

Revenir en haut Aller en bas
 
Une variable dans une expression
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» variable dans le nom d'une variable
» variable dans un message
» image dans une variable
» Plus de choix dans une variable
» Une variable dans du texte, en GML [résolu]

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