You are not logged in.
Pages: 1
Здраствуйте.
У меня вот какой вопрос.
Я когда-то написал код для отображения ккординат игрока по Х Y Z. Они отображались в виде FLOAT чисел (с плавующей запятой). Сейчас решил написать код заново, но он либо показывает координаты в INTEGER (целое число) формате (после преобразования) либо показывает гигантские несоответствующие числа если без преобразования.
Скорректируйте кто-нибудь чтобы выводилось не целое число, а с плавующей точкой.
04C4: store_coords_to $MYX $MYY $MYZ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0 008E: $INTX = float $MYX to_integer 008E: $INTY = float $MYY to_integer 008E: $INTZ = float $MYZ to_integer 02FF: show_text_3numbers GXT 'XYZPOS' numbers $INTX $INTY $INTZ time 100 flag 1
И, кстати, как установить определённое количество символов после запятой?
Offline
Ну так а зачему тебя вот это?
008E: $INTX = float $MYX to_integer 008E: $INTY = float $MYY to_integer 008E: $INTZ = float $MYZ to_integer
преобразования float в integer? Удали это.
Offline
Выводить на экран можно только целые числа, чтобы вывести дробное число его нужно представить в виде двух целых чисел, одно число будет отвечать за целую часть, другое за дробную. Вот код для вывода дробного числа (в 0@), в 2@ запишется целая часть в 0@ дробная, для вывода на экран нужно использовать строку вида "~1~.~1~".
008E: 1@ = float 0@ to_integer // 2@ 0@ 0085: 2@ = 1@ // (int) 1@ *= 1000 // кол-во цифр в дробной части (1000 - 3 цифры) 0@ *= 1000.0 // кол-во цифр в дробной части (1000 - 3 цифры) 008E: 0@ = float 0@ to_integer 0062: 0@ -= 1@ // (int) 0095: make 0@ absolute_integer 045B: draw_text_2numbers 320.0 390.0 GXT 'TXT' numbers 2@ 0@ // ~1~.~1~
Last edited by Fess (04-06-2008 11:41)
Offline
flashTrash, если удалить, как я говорил выше, то цифры получаются некорректные.
Fess, спасибо - это действительно работает, только вот два момента:
1. помню в вайс сити точно делал через флоаты (не разбивая отдельно на целую и дробную), но это не важно, важно второе:
2. как сделать, чтобы дробная часть была всегда из трёх цифр, то есть не 0.10, а 0.100... ну вообщем с заполняющим нулём.... а то как-то дрыгается ширина строчки........
Last edited by AlphaOmega (04-06-2008 14:05)
Offline
Pages: 1