ImageBuilder (велосипед для полноценных прямоугольников в Phaser)

У меня был простой глобальный объект для создания прямоугольников на лету. Он использовал Phaser.Graphics для рисования, а затем рендерил текстурку. Все было хорошо, но когда я захотел собрать из текстурок индикатор — пошла такая невыносимая и тупая пурга, что хотелось напиться.

Оказалось, что Phaser.graphics, когда рисует и рендерит — создает текстурку размером во весь экран. И пофиг, что у вас там крохотный прямоугольник, в свойствах все равно будет FullHD. Пришлось переделать генератор на BitmapData. Выглядит он сейчас таким образом:

Это удобно для минималистичного дизайна. Слишком жирно для таких вещей отдельные текстурки в фотошопе выводить — как и для равномерных заливок.

2017-11-24_204025

Я создаю фон и полоску  с помощью ImageBuilder

И когда меняю показания — меняю масштаб полоски

На этом изменении масштаба все и ломалось раньше. Теперь все норм, полоски работают.

Странно, что в игровых фреймворках часто нет таких элементарных вещей, как сгенерировать цветной квадрат на правах полноценного объекта. Плохо, когда куча времени уходит на борьбу с недокументированной фигней.

Резал бы прямоугольники в фотошопе — не терял бы время. Иногда, похоже, проще работать, как китайский (индусский) кодер.

 

ImageBuilder (велосипед для полноценных прямоугольников в Phaser): 4 комментария

  1. Тебе как любителю настоящей оптимизации пойдет на пользую NineSlice плагин. Я правда его сегодня переделал в одну функцию и добавил своему UI генератору, что бы он все за меня делал, если имя файл кончается на .9 Могу на почту кинуть рабочий код.

  2. а может, лучше на GitHub положить?
    я заметил, что с него даже Яндекс ссылки индексирует (если в README.md в корне написать ссылку).

    Я вообще думаю некоторые общие функции так собрать и пакетом на GitHub выложить, со ссылкой, что мол используется в таких-то проектах. Я не жду, что это даст заметный эффект в плане продвижения игры, но все равно собираюсь сделать.

  3. Я меньше всего рассчитываю что гугл что-то пришлет. Игроков буду тупо покупать… На вот эту оч полезную функцию я потратил пару часов, так как были сложности с PIXI и ни как не удавалось скопировать куски битмапа. При этом все надо было делать быстро… сейчас я генерю спраит попап любого размера без каких либо задержек (тестировал на своем старом смартфоне). Выложить то мне не жалко, но обидно когда даже спасибо не говорят =)

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">