MCpPaladian Débutant
Messages : 29
| Sujet: [Résolu] Tableau de conversion de masse Mar 8 Juil 2014 - 21:24 | |
| Bonjour à vous, alors voici mon problème.
J'aimerais inclure dans mon jeu des masses sur des objets de toutes sortes. Par exemple, afficher à l’écran que tel ou tel matériau à une masse de 5 kg. Bon l'affichage ce n'est pas trop un problème, mais don je n'ai aucune idée de comment m'y prendre, c'est pour créer la conversion.
Exemple, si je me base sur les grammes à chaque fois, un objet qui pèse 2000 grammes, pourrait s’écrire aussi 2 kg. Et c'est là que je suis embêté. L'idée serait, par exemple, de créer un script qui récupère la valeur de masse de mon objet, pour la convertir en kg (ou autres selon mon choix) pour l'afficher dans l'unité de masse que je souhaite.
Valeur réel de l'objet = 2 000g -- Script de conversion -- Valeur afficher dans le pop-up = 2kg
Pourriez-vous m'aider à réaliser cela ? Je vous en serai très reconnaissant. |
|
[TheDarkTiger] Modérateur
Messages : 7420 Localisation : Essonne
| Sujet: Re: [Résolu] Tableau de conversion de masse Mar 8 Juil 2014 - 23:25 | |
| Bonjour ,
Alors, c'est 'simple', tu fait comme toi tu ferait dans la réalité. Tu change ton nombre en string, et tu compte le nombre de zéro. Ensuite, tu met le texte qui va bien. Mais bon, à coder, c'est long et ******...
Sinon, ya plus simple, voici l'algo :
Ton nombre est dans la plus petite unitée. Divise ton nombre par 1000. Le reste est il supérieur à zéro ? Si oui, recommence. Sinon, affiche le résultat avant division avec l'unité adéquate.
Code non testé :
Val = argument0;
Unite[0] = 'g'; Unite[1] = 'kg'; Unite[2] = 't';
i = 0; continue = 1;
while(continue) { if((Val/1000) < 0) { continue = 0; }else{ Val = Val / 1000; i += 1; } if(i>=2) { continue = 0; } }
show_message(string(Val)+Unite[i]); _________________ Bonne chance pour vos projets actuels ! Prêt à aider ceux qui en ont besoin ^^ l'antiqueBienvenue au 2629eme utilisateur : Mike Jones ! |
|
Asu Utilisateur confirmé: Rang ****
Messages : 895
| Sujet: Re: [Résolu] Tableau de conversion de masse Mer 9 Juil 2014 - 11:11 | |
| - [TheDarkTiger] a écrit:
- Bonjour ,
Alors, c'est 'simple', tu fait comme toi tu ferait dans la réalité. Tu change ton nombre en string, et tu compte le nombre de zéro. Ensuite, tu met le texte qui va bien. Mais bon, à coder, c'est long et ******...
Sinon, ya plus simple, voici l'algo :
Ton nombre est dans la plus petite unitée. Divise ton nombre par 1000. Le reste est il supérieur à zéro ? Si oui, recommence. Sinon, affiche le résultat avant division avec l'unité adéquate.
Code non testé :
Val = argument0;
Unite[0] = 'g'; Unite[1] = 'kg'; Unite[2] = 't';
i = 0; continue = 1;
while(continue) { if((Val/1000) < 0) { continue = 0; }else{ Val = Val / 1000; i += 1; } if(i>=2) { continue = 0; } }
show_message(string(Val)+Unite[i]); Ouais bon ça peut être largement amélioré je pense. - Code:
-
// Script convert(real);
var Val, Unite, i;
Val = argument0;
Unite[0] = 'g'; Unite[1] = 'kg'; Unite[2] = 't';
while(true) { if((Val/1000) < 0) { break; } else { Val /= 1000; // A vérif. si ça marche, sinon Val = Val / 1000; } if ( i >= 2 ) { break; } }
return string(Val)+Unite[i]; Disons que ça évite de faire des calculs superflus, puisque dans tous les cas si (Val/1000) est plus petit que zéro, dans ce cas aucune chance que la boucle soit relancée. Autant faire break tout de suite que d'utiliser une autre variable. J'ai settées les variables avec var, comme ça elles sont temporaires et ne bouffent pas de mémoire inutilement. PS : J'ai pas testé non plus et je n'ai fait que des optimisations, je n'ai pas corrigé d'éventuelle erreur. Si tu veux utiliser ce script, il suffira de faire : - Code:
-
valeurconvertie = convert(valeurnonconvertie); Edit : Code corrigé, j'ai failli faire une boucle infinie _________________ <Cysteine> nON mais la touche maj s'active/se désactive toute seule <Cysteine> et a du mal à réponDRE QUANd j'appuie dessus <Cysteine> et je l'ai démont2? IL Ny a rien DEDANs
|
|
MCpPaladian Débutant
Messages : 29
| Sujet: Re: [Résolu] Tableau de conversion de masse Mer 9 Juil 2014 - 11:32 | |
| Je vous remercie pour votre aide, et je vais tester votre code afin de voir si tout fonctionne bien. EDIT : Arf j'ai une erreur, lorsque j’appelle le script. Le jeu plante. Voici l'erreur que j'obtiens. - Code erreur:
___________________________________________ ############################################################################################ FATAL ERROR in action number 1 of Draw Event for object obj_minerai_charbon:
Push :: Execution Error - Variable Get -7.i(100004, -1) at gml_Script_scr_convert (line 23) - if ( i >= 2 ) ############################################################################################ -------------------------------------------------------------------------------------------- stack frame is gml_Script_scr_convert (line 23) called from - gml_Object_obj_minerai_charbon_DrawEvent_1 (line 3) - valeurconvertie = scr_convert(charbon[0]);
|
|
Térence Utilisateur confirmé: Rang *****
Messages : 2213 Localisation : Oui
| Sujet: Re: [Résolu] Tableau de conversion de masse Mer 9 Juil 2014 - 11:58 | |
| Faut faire un i=0 au début du code et soundii a oublié le i+=1 après le val/=1000. M'enfin après j'ai pas cherché à comprendre le truc. _________________ Je suis partie sur les ailes du vent et la tempête m'a ramenée.
|
|
MCpPaladian Débutant
Messages : 29
| Sujet: Re: [Résolu] Tableau de conversion de masse Mer 9 Juil 2014 - 12:21 | |
| Ah merci à toi, maintenant ça fonctionne. |
|
Contenu sponsorisé
| Sujet: Re: [Résolu] Tableau de conversion de masse | |
| |
|