- 101
- 4
Подскажите пожалуйста ,каким способом при использовании рендера можно вызвать кнопку на экране ?
Делаю рендер картинки на экране ,а вместе с этим рендером картинки я должен рендерить как-то кнопки на экране .Не могу найти способ,как можно сделать кнопки не прибегая к GuiScreen и т.пПоточнее вопрос бы
Можно отрендерить GuiButton, как это делается - можно в GuiScreen посмотреть, можно сделать свою реализацию кнопок (это даже лучше)..Не могу найти способ,как можно сделать кнопки не прибегая к GuiScreen и т.п
Способ реализаций огромное множество. Сделать свой TaskSheduller нацеленный на главный игровой поток.В джаве это происходит через Thread.sleep .
Можешь использовать клиентские тики.определенное действие спустя время
Если культурно, то это просто плохой код. Эта проверка срабатывает только один раз.Почему это не работает
Почему ты так боишься GuiScreen? Если ты всё ещё пытаешься сделать оверлей, то рендерить кнопки там бессмысленно. Это приведёт лишь к багам.Делаю рендер картинки на экране ,а вместе с этим рендером картинки я должен рендерить как-то кнопки на экране .Не могу найти способ,как можно сделать кнопки не прибегая к GuiScreen и т.п
Теперь о тиках.можно в GuiScreen посмотреть, можно сделать свою реализацию кнопок
Оно срабатывает каждый тик (ты буквально написал решение в своём вопросе). Зачем тебе сторонние методы расчёта времени, вроде System@currentTimeMills()?Почему это не работает ,оно же должно срабатывать каждый тик
int tick = 0;
public void onTick(Ticker ticker) {
tick++;
if(tick % (20*40) == 0) {//20 тиков в 1 секунде => 40 секунд это 20 * 40 тиков
tick = 0;
//some code
}
}
Игрок всё равно в таком случае будет стопаться - невозможно управлять персонажем.Очень хороший совет на самом то деле .Просто GuiScreen когда вызывается,то стопается персонаж пока ты не закроешь этот GUI,а вот рендер - он уже работает так,как я вижу.Рассматривал создания кнопки через картинку ) но вот просто не мог прийти к решению.Как можно проверить находится ли мышь на картинке,и нажато ли на картинку
Написал в точности как ты - ничего не сработало .Только вместо 40 поставил 4
Никакого Ticker не существует. Я привёл пример того, как выглядит алгоритм в коде. А вот как и где, зачем и что пихать в метод/сам метод решаешь уже ты. В твоём случае вместо Ticker должен быть эвент клиентских тиков, а над методом аннотация @SubscriveEvent.Псевдокод по работе с тиками: