Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: как рисовать прогресс бар

  1. #1

    По умолчанию как рисовать прогресс бар

    как отрисовывать прогресс бары (gauge) с анимацией заполнения\опустошения?
    если можно, то покажите пример кода
    Последний раз редактировалось kiha; 16.05.2018 в 02:38.

  2. #2
    Администратор Аватар для Пётр
    Информация о пользователе
    Регистрация
    24.04.2014
    Адрес
    Краснодар
    Сообщений
    3,994
    Записей в дневнике
    6
    Репутация: 132 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от kiha Посмотреть сообщение
    как отрисовывать прогресс бары (gauge) с анимацией заполнения\опустошения?
    если можно, то покажите пример кода
    Прогресс бары чего? Опыта?
    Анимация чего? Полосы? Ещё чего? Пример?
    Для какого макера?
    Тебе вообще нужен ответ? Или ты спросил чтобы спросить?
    Хоть бери и удаляй такие мусорные темы.

  3. #3
    Бывалый Аватар для PanzerCat
    Информация о пользователе
    Регистрация
    09.04.2017
    Адрес
    Тула
    Сообщений
    806
    Репутация: 60 Добавить или отнять репутацию

    По умолчанию


    Два сверхторжественно одетых человека в почтительном ожидании сидели перед терминалом.
    – Время почти пришло, семьдесят пять тысяч поколений назад наши предки запустили эту программу, и нам выпала честь быть первыми, кто услышит, как компьютер заговорит.
    – Мы первые, кто услышит, – продолжал Фуугх, – Ответ на Великий Вопрос о Жизни!…
    – Вселенной!… – подхватил Лунккуоол.
    – И Всяком Таком!
    – Шшш, – Лунккуоол произвел еле заметное предупреждающее движение, – кажется, Глубокий Мыслитель собирается заговорить!
    Наступила напряженная пауза, во время которой постепенно оживали передние панели на консоли компьютера. Огоньки пробно поморгали и наконец загорелись ровным деловитым светом. Канал связи тихо загудел.
    – Доброе утро, – в конце концов сказал Глубокий Мыслитель.
    – Э… доброе утро, о Глубокий Мыслитель, – дрожащим голосом произнес Лунккуоол, – есть ли у тебя…э…
    – Ответ для вас? – величественно прервал Глубокий Мыслитель. – Да. Есть.
    Двое мужчин не могли унять нервную дрожь. Они ждали не напрасно!
    – Настоящий Ответ?
    – Настоящий, – подтвердил Глубокий Мыслитель.
    – На все? На Великий Вопрос о Жизни, Вселенной и Всяком Таком?
    – Да.
    Всю жизнь обоих ученых готовили к этому моменту, им еще при рождении было суждено стать свидетелями Великого Ответа, но, невзирая на это, они дрожали и задыхались от волнения.
    – И ты готов дать нам этот Ответ? – спросил Лунккуоол.
    – Готов.
    – Сейчас?
    – Сейчас, – ответил Глубокий Мыслитель.
    Мужчины облизали пересохшие губы.
    – Хотя мне не кажется, – добавил Глубокий Мыслитель, – что он вам понравится.
    – Неважно! – закричал Фугх. – Мы должны узнать его! Сейчас же!
    – Сейчас же? – переспросил Глубокий Мыслитель.
    – Да! Сейчас!
    – Ладно, – сказал компьютер и снова замолчал. Ученые нервничали. Напряжение стало невыносимым.
    – Вам действительно не понравится Ответ, – предупредил Глубокий Мыслитель еще раз.
    – Говори же!
    – Хорошо, – решился Глубокий Мыслитель. – Ответ на Великий Вопрос…
    – СОРОК ДВА, – величаво изрек Глубокий Мыслитель.
    ...

    — Сорок два! — взвизгнул Лунккуоол. — И это всё, что ты можешь сказать после семи с половиной миллионов лет работы?
    — Я всё очень тщательно проверил, — сказал компьютер, — и со всей определённостью заявляю, что это и есть ответ. Мне кажется, если уж быть с вами абсолютно честным, то всё дело в том, что вы сами не знали, в чём вопрос.
    — Но это же великий вопрос! Окончательный вопрос жизни, Вселенной и всего такого! — почти завыл Лунккуоол.
    — Да, — сказал компьютер голосом страдальца, просвещающего круглого дурака. — И что же это за вопрос?
    Ученые отупело посмотрели сначала на компьютер, потом друг на друга.
    – Ну вы же знаете… это же Всякое Такое… все такое, – неуверенно промямлил Фугх.
    – Вот именно! – сказал Глубокий Мыслитель. – Как только вы узнаете, в чем вопрос, вы поймете, что означает ответ.

    *Дуглас Адамс, Автостопом по галактике.

    Последний раз редактировалось PanzerCat; 16.05.2018 в 10:31.

  4. #4
    Пользователь Аватар для Urban Wolfling
    Информация о пользователе
    Регистрация
    07.10.2016
    Сообщений
    62
    Записей в дневнике
    7
    Репутация: 4 Добавить или отнять репутацию

    По умолчанию

    Код:
      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
    Это и есть код рисования прогресс-бара, взято из класса Windows_base, мейкер VX Ace. Если тебе нужен MV, то поищи сам...

    В общих чертах: тебе надо создать окно, в нём создать этот самый гауг. В него подать координаты бара относительно левого верхнего угла (x, y), ширину (width), степень заполненности (rate) и цвета начала и конца (color1, color2). Эту же функцию надо вызывать в апдейте, либо в редрау с очисткой окна. Пример смотри в том же классе.

  5. #5

    По умолчанию

    Цитата Сообщение от Пётр Посмотреть сообщение
    Прогресс бары чего? Опыта?
    Анимация чего? Полосы? Ещё чего? Пример?
    Для какого макера?
    Тебе вообще нужен ответ? Или ты спросил чтобы спросить?
    Хоть бери и удаляй такие мусорные темы.
    1. Прогресс бар на основе значения перменной. Допустим это $gameVariables.value(1), она меняет значение от 0 до 100.
    2. Анимация полосы заполнения. Наример, красная полоса была на значении 5 а потом плавно растягивается до значения 40.
    https://youtu.be/Uym-fJcDqlc?t=205 вот на примере получения опыта.
    3. MV.
    Для остальных мейкеров есть свои разделы, методом исключения было принято, что эта ветка для MV
    4. Нужен ответ, желательно с примером.
    5. Не нужно удалять, она хорошая

    Цитата Сообщение от Urban Wolfling Посмотреть сообщение
    В общих чертах: тебе надо создать окно, в нём создать этот самый гауг.
    А можно сделать без окна, просто в любом месте экрана?
    Последний раз редактировалось Пётр; 16.05.2018 в 12:12.

  6. #6
    Пользователь Аватар для Urban Wolfling
    Информация о пользователе
    Регистрация
    07.10.2016
    Сообщений
    62
    Записей в дневнике
    7
    Репутация: 4 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от kiha Посмотреть сообщение
    А можно сделать без окна, просто в любом месте экрана?
    Можно, через Sprite.

    К слову, примеры можно найти в стандартных файлах. Открываешь любым редактором (Notepade++ например) и используешь глобальный поиск. Тот же gauge есть и в Ace, и в MV, его использование можно таким образом отследить.

  7. #7

    По умолчанию

    Насчет Sprite не понял.

    Нашел вот такой код в базовом классе
    Код:
    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);
    }
    Я могу просто вызвать Window_Base.prototype.drawGauge(10, 10, 600, 0.5, 1, 2); ?

  8. #8
    Пользователь Аватар для Urban Wolfling
    Информация о пользователе
    Регистрация
    07.10.2016
    Сообщений
    62
    Записей в дневнике
    7
    Репутация: 4 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от kiha Посмотреть сообщение
    Насчет Sprite не понял.

    Я могу просто вызвать Window_Base.prototype.drawGauge(10, 10, 600, 0.5, 1, 2); ?
    Ты явно не знаешь про классы и наследование... Нет, не можешь, так как для начало нужно инициализировать класс окна, наследовав его от Window_Base, а затем уже вызвать функцию отрисовки, ту самую drawGauge. Короче, матан тебе в помощь. Классы и наследование.

  9. #9

    По умолчанию

    Ну покажите пример кода, я адаптирую под свои нужды >_>

  10. #10

    По умолчанию

    Код:
    var test = new Window_Base;
    test.drawGauge(10,10,600,0.5,'red','red');
    чет все равно не рисует >_>

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
как рисовать прогресс бар