Everydayyyyy, Girl's Day ! - Bibi/Ssozi
mer. 27 août 2014 - 21h27
BONSOIR ! Voilà longtemps que je suis pas passé sur ce forum, personne doit se souvenir de moi QQ (j'ai remporté le dernier concours Touhou Wandering Soul *-*) MAIS BREF c'est pas pour pleurnicher que je reviens, mais je fais face à un problème MAJEUR !! [u]En gros :[/u] J'utilise un script permettant de ne plus se déplacer case par case machin bon tout le monde connait ce genre de script. Le souci, c'est que lorsque j'enregistre dans les variables les coordonnées x et y du héros, j'ai des nombres décimaux. [b]LA QUESTION[/b] [i]oui parce que le reste pas besoin de lire[/i] [b]Est-ce qu'il est possible de tronquer ou éventuellement arrondir le résultat d'une variable décimale ?[/b] (j'pense que oui parce que VX ACE est connu pour avoir le script pratique mais j'ai pas trouvé [sans avoir trop cherché aussi hem]) JE VOUS REMERCIE
mer. 27 août 2014 - 21h42
Est-ce que tu pourrais nous filer le script que tu utilises ? :-)
mer. 27 août 2014 - 21h52
Voui voui je l'ai trouvé ici : http://area91.multiverseworks.com/blog/rmvxa_script/gameplay/free_movement le script est au bas de la page EDIT : il a peut être précisé comment s'y prendre dans ce cas, mais j'avoue j'ai eu un peu la flemme de me concentrer pour comprendre l'anglais hem
mer. 27 août 2014 - 23h23
Tiens, normalement c'est bon : [url=https://github.com/Biwy/RMVXAce/blob/master/Map/Patch%20Free%20Movement%20v0.87/script.rb]Script[/url]
jeu. 28 août 2014 - 00h08
De cette façon, ça marche ! A la base au cas où l'utilisation des coordonnées précises pourraient être utiles, je me demandais s'il était pas possible d'effectuer cette opération sur la variable depuis le menu de modification de variable via script, mais bon au final je pense pas me servir d'une aussi grosse précision donc bon. [b]Merci Biward pour cette réponse fulgurante et efficace.[/b]
jeu. 28 août 2014 - 14h16
il suffit de faire ".to_i" pour transformer en entier (integer) avec .to_f pour transformer en décimale (float) et .to_s pour transformer en chaîne de caractère (string) exemple : [code]x = 1.234 x.to_i renverra "1"[/code]
jeu. 28 août 2014 - 17h51
Ouais, mais : [code]x = 1.99 p x.to_i # affiche 1, et pas 2.[/code] Et il a demandé un arrondi, pas la valeur entière d'un nombre. Du coup ça passe par une petite condition en fonction de la partie flotante. Mon ptit patch permet seulement de faire le calcul automatiquement. C'est bien sûr faisable en event. D'ailleurs, si tu veux vraiment avoir la possibilité de pouvoir récupérer soit la position exacte soit la position arrondie, je te conseille de supprimer mon patch et de faire ceci : [spoiler][img]http://i.gyazo.com/b2893d87ffc3fc839e5e098ac6a80957.png[/img][/spoiler] Et dans tes events tu appelles cet event commun et hop, tu as ta position arrondie. :ange:
ven. 29 août 2014 - 10h17
Théoriquement, tronquer et arrondir c'est différent. Tronquer c'est carrément supprimer les chiffres qui ne t'intéresses pas. Donc Joke a bien raison. ;)
ven. 29 août 2014 - 11h09
En fait je demandais tronquer ou éventuellement arrondir, mais [b]HELL YEAH[/b] Tout est bon à prendre merci
ven. 29 août 2014 - 14h32
[quote=Prof.G]Théoriquement, tronquer et arrondir c'est différent. Tronquer c'est carrément supprimer les chiffres qui ne t'intéresses pas. Donc Joke a bien raison. [/quote] Ouais, sauf si t'as pas lu le topic où il dit qu'il aimerait tronquer ou éventuellement arrondir. Et je suis désolée, mais pour moi, un perso qui est à la position 1.99 n'est pas sur la case 1 mais sur la case 2. :D) Et je vois surtout pas l'intérêt d'en rajouter une couche, surtout si Arkain dit que ça lui va et que son problème est résolu. :-)
ven. 29 août 2014 - 15h12
Oui bien sûr. Grâce à toi et à Joke, Arkain peut maintenant arrondir ou tronquer selon son envie, c'est l'essentiel ! J'ai fais cette remarque car en tant que futur prof de maths je voulais éviter la confusion troncature/arrondi. :D)
sam. 30 août 2014 - 16h52
Ok, j'ai cru qu'il voulait simplement tronquer... Donc pour arrondir à l'entier le plus proche, c'est .round : [code]x = 2.83 p x.round # affiche 3 p x.to_i # affiche 2[/code] Arrondir à l'entier supérieur c'est ".ceil" Arrondir à l'entier inférieur c'est ".floor" Tronquer c'est ".truncate" Mais il semblerait que .floor, .truncate et .to_i fassent la même chose, pour le coup... Jetez un coup d’œil dans la doc de RM, des fois. ^^
dim. 31 août 2014 - 01h42
Comment je savais pas ça :wouah: Mais il y a toujours pas de méthode existante pour faire un arrondi à l'unité la plus proche.. :D)
dim. 31 août 2014 - 10h50
Stop lire les messages à 1h42 du mat Ssozi, il l'a dit dans sa deuxième phrase, c'est [b].round[/b]
dim. 31 août 2014 - 16h24
La fatigue ça arrive D: Du coup, je dois me corriger un peu partout lolol