как отрисовывать прогресс бары (gauge) с анимацией заполнения\опустошения?
если можно, то покажите пример кода
как отрисовывать прогресс бары (gauge) с анимацией заполнения\опустошения?
если можно, то покажите пример кода
Последний раз редактировалось kiha; 16.05.2018 в 02:38.
Два сверхторжественно одетых человека в почтительном ожидании сидели перед терминалом.
– Время почти пришло, семьдесят пять тысяч поколений назад наши предки запустили эту программу, и нам выпала честь быть первыми, кто услышит, как компьютер заговорит.
– Мы первые, кто услышит, – продолжал Фуугх, – Ответ на Великий Вопрос о Жизни!…
– Вселенной!… – подхватил Лунккуоол.
– И Всяком Таком!
– Шшш, – Лунккуоол произвел еле заметное предупреждающее движение, – кажется, Глубокий Мыслитель собирается заговорить!
Наступила напряженная пауза, во время которой постепенно оживали передние панели на консоли компьютера. Огоньки пробно поморгали и наконец загорелись ровным деловитым светом. Канал связи тихо загудел.
– Доброе утро, – в конце концов сказал Глубокий Мыслитель.
– Э… доброе утро, о Глубокий Мыслитель, – дрожащим голосом произнес Лунккуоол, – есть ли у тебя…э…
– Ответ для вас? – величественно прервал Глубокий Мыслитель. – Да. Есть.
Двое мужчин не могли унять нервную дрожь. Они ждали не напрасно!
– Настоящий Ответ?
– Настоящий, – подтвердил Глубокий Мыслитель.
– На все? На Великий Вопрос о Жизни, Вселенной и Всяком Таком?
– Да.
Всю жизнь обоих ученых готовили к этому моменту, им еще при рождении было суждено стать свидетелями Великого Ответа, но, невзирая на это, они дрожали и задыхались от волнения.
– И ты готов дать нам этот Ответ? – спросил Лунккуоол.
– Готов.
– Сейчас?
– Сейчас, – ответил Глубокий Мыслитель.
Мужчины облизали пересохшие губы.
– Хотя мне не кажется, – добавил Глубокий Мыслитель, – что он вам понравится.
– Неважно! – закричал Фугх. – Мы должны узнать его! Сейчас же!
– Сейчас же? – переспросил Глубокий Мыслитель.
– Да! Сейчас!
– Ладно, – сказал компьютер и снова замолчал. Ученые нервничали. Напряжение стало невыносимым.
– Вам действительно не понравится Ответ, – предупредил Глубокий Мыслитель еще раз.
– Говори же!
– Хорошо, – решился Глубокий Мыслитель. – Ответ на Великий Вопрос…
– СОРОК ДВА, – величаво изрек Глубокий Мыслитель.
...
— Сорок два! — взвизгнул Лунккуоол. — И это всё, что ты можешь сказать после семи с половиной миллионов лет работы?
— Я всё очень тщательно проверил, — сказал компьютер, — и со всей определённостью заявляю, что это и есть ответ. Мне кажется, если уж быть с вами абсолютно честным, то всё дело в том, что вы сами не знали, в чём вопрос.
— Но это же великий вопрос! Окончательный вопрос жизни, Вселенной и всего такого! — почти завыл Лунккуоол.
— Да, — сказал компьютер голосом страдальца, просвещающего круглого дурака. — И что же это за вопрос?
Ученые отупело посмотрели сначала на компьютер, потом друг на друга.
– Ну вы же знаете… это же Всякое Такое… все такое, – неуверенно промямлил Фугх.
– Вот именно! – сказал Глубокий Мыслитель. – Как только вы узнаете, в чем вопрос, вы поймете, что означает ответ.
*Дуглас Адамс, Автостопом по галактике.
Последний раз редактировалось PanzerCat; 16.05.2018 в 10:31.
Это и есть код рисования прогресс-бара, взято из класса Windows_base, мейкер VX Ace. Если тебе нужен MV, то поищи сам...Код:def draw_gauge(x, y, width, rate, color1, color2) fill_w = (width * rate).to_i gauge_y = y + line_height - 8 contents.fill_rect(x, gauge_y, width, 6, gauge_back_color) contents.gradient_fill_rect(x, gauge_y, fill_w, 6, color1, color2) end
В общих чертах: тебе надо создать окно, в нём создать этот самый гауг. В него подать координаты бара относительно левого верхнего угла (x, y), ширину (width), степень заполненности (rate) и цвета начала и конца (color1, color2). Эту же функцию надо вызывать в апдейте, либо в редрау с очисткой окна. Пример смотри в том же классе.
1. Прогресс бар на основе значения перменной. Допустим это $gameVariables.value(1), она меняет значение от 0 до 100.
2. Анимация полосы заполнения. Наример, красная полоса была на значении 5 а потом плавно растягивается до значения 40.
https://youtu.be/Uym-fJcDqlc?t=205 вот на примере получения опыта.
3. MV.
Для остальных мейкеров есть свои разделы, методом исключения было принято, что эта ветка для MV
4. Нужен ответ, желательно с примером.
5. Не нужно удалять, она хорошая
А можно сделать без окна, просто в любом месте экрана?
Последний раз редактировалось Пётр; 16.05.2018 в 12:12.
Насчет Sprite не понял.
Нашел вот такой код в базовом классе
Я могу просто вызвать Window_Base.prototype.drawGauge(10, 10, 600, 0.5, 1, 2); ?Код:Window_Base.prototype.drawGauge = function(x, y, width, rate, color1, color2) { var fillW = Math.floor(width * rate); var gaugeY = y + this.lineHeight() - 8; this.contents.fillRect(x, gaugeY, width, 6, this.gaugeBackColor()); this.contents.gradientFillRect(x, gaugeY, fillW, 6, color1, color2); }
Ну покажите пример кода, я адаптирую под свои нужды >_>
чет все равно не рисует >_>Код:var test = new Window_Base; test.drawGauge(10,10,600,0.5,'red','red');
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)
Социальные закладки