Сменяющийся текст.

Версия Minecraft
1.7.10
Здравствуйте форумчане. Как можно реализовать сменяющийся текст на экране? Нужно чтобы каждые 5 секунд изменялась надпись на экране. Заранее всем спасибо !
 
1,198
31
183
rendergameoverlayevent.post
тут с помощью mc.fontrenderer.drawString рисуешь текст

нужно, чтобы она сменялась каждые 5 секунд на следующую
массив со стрингами. Каждые 5 секунд рендерим следующий элемент из массива. Это вообще мать его самое просто
сложносделать проверку mc.thePlayer.ticksExisted % 100 == 0 ?
 
Я сделал массив со строками и если рендерить по одному элементу, то будет выводится данный элемент из массива.
Но самое главное, как сделать задержку, и чтобы сменялся индекс элемента из массива?
И куда нужно записывать проверку?
 
rendergameoverlayevent.post
тут с помощью mc.fontrenderer.drawString рисуешь текст


массив со стрингами. Каждые 5 секунд рендерим следующий элемент из массива. Это вообще мать его самое просто
сложносделать проверку mc.thePlayer.ticksExisted % 100 == 0 ?
String[] masive = {"Первый", "Второй", "Третий", "Четвертый"};
Minecraft.getMinecraft().fontRenderer.drawStringWithShadow(masive[2], (int) 1, 1, 0xe51717);
 
7,099
324
1,510
Но самое главное, как сделать задержку, и чтобы сменялся индекс элемента из массива?
Можно делать без явного отсчета задержки.
Текущее время в миллисекундах можно получить так System.currentTimeMillis()
Остаток от деления этого времени на размер массива будет соответствовать индексу в массиве, который циклически изменяется
(int) (System.currentTimeMillis() % masive.length)

Чтобы увеличить интервал смены индекса можно поделить время на значение интервала в мс
(int) (System.currentTimeMillis() / 5000L % masive.length)

~~~
Немножко про таймеры на коленке

Майнкрафт отсчитывает количество прошедших тиков(20 тиков = 1 сек). Minecraft.getMinecraft().thePlayer.ticksExisted, например.
Далее можно использовать операцию взятия остатка от деления чтобы получить только каждые n тиков
ticksExisted % n == 0

Еще можно добавить смещение отсчета, если "таймер" нужно начинать с определенного момента
ticksExisted % n + offset == 0
В момент начала отсчета
int offset = -(ticksExisted % n)

Полученное условие просто применяем каждый тик, сработает оно только каждые n тиков
 
Сверху