2015-06-24 3 views
-2

Я пытаюсь отображать секунды на экране, другими словами плавать, но я просто знал, что это невозможно:Как отображать float на экране? Libgdx

font.draw(batch,float,x,y); 

Кроме того, как вы вычислить для второго, я wan't напечатать что-то как это на экране: 1.2sec, 3.2seconds. Это то, что я делаю вместо этого, что дает мне много десятичных знаков.

seconds+=1*deltaTime; 
+0

Что представляет ваша секундная переменная? означает ли это количество времени с момента ввода экрана? – user2641570

+0

Да, когда вы начинаете игру, секунды должны начинаться с подсчета. –

ответ

1

Просто конвертировать поплавок в строку:

Float.toString(seconds) 

Для ваших "секунд" переменная просто сохранить время, когда ваша игра начать

long startTime = System.currentTimeMillis(); 

Затем покажите, как это

font.draw(batch,Float.toString((Float)((System.currentTimeMillis() -startTime)/1000f),x,y); 

Вы должны называть его ev eryframe, иначе он будет удален, когда будет создан новый кадр.

+0

Я сделал это, но я получаю сообщение об ошибке, этот код следует вызывать один или несколько кадров? –

0

Чтобы отформатировать float в String с определенным количеством знаков после запятой, вы должны использовать класс DecimalFormat.

float x = 2.3456; 
DecimalFormat df = new DecimalFormat("0.0"); 
String formatted = df.format(x); 
font.draw(batch, formatted, x, y); 

Вы можете проверить, что это работает, когда вы экспортируете в JavaScript и Android через libGDX, но это стандартный Java подход.